Skip to content

Commit

Permalink
The visibility status of a Matrix Column appears as selected in Prope…
Browse files Browse the repository at this point in the history
…rty Grid despite being set to false in a survey JSON fix #8246 (#8247)
  • Loading branch information
andrewtelnov committed May 7, 2024
1 parent 7da0272 commit 7d17819
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/question_matrixdropdowncolumn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,9 @@ export class MatrixDropdownColumn extends Base
* @see isRequired
* @see readOnly
*/
public get visible(): boolean { return this.getPropertyValue("visible"); }
public get visible(): boolean { return this.templateQuestion.visible; }
public set visible(val: boolean) {
this.setPropertyValue("visible", val);
this.templateQuestion.visible = val;
}
public get hasVisibleCell(): boolean {
return this._hasVisibleCell;
Expand Down
28 changes: 27 additions & 1 deletion tests/editingObjectTests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1630,4 +1630,30 @@ QUnit.test("survey, complete text & locale", function (assert) {
assert.equal(commentHtml.value, "html:de", "comment #4");
assert.equal(survey.description, "text:de", "description #3");
assert.equal(commentText.value, "text:de", "commentText #4");
});
});
QUnit.test("Column visible property", function (assert) {
var question = new QuestionMatrixDynamicModel("q1");
const column = question.addColumn("col1");
column.visible = false;
const survey = new SurveyModel({
elements: [
{ type: "text", name: "name" },
{ type: "boolean", name: "visible" },
],
});
survey.editingObj = column;
assert.equal(column.visible, false, "column visible property");
assert.equal(Serializer.getObjPropertyValue(column, "visible"), false, "Serializer.getObjPropertyValue");
const nameQuestion = survey.getQuestionByName("name");
const visibleQuestion = survey.getQuestionByName("visible");
assert.equal(nameQuestion.value, "col1", "column name");
assert.equal(visibleQuestion.value, false, "column visible");
visibleQuestion.value = true;
assert.equal(visibleQuestion.value, true, "column visible, #2");
assert.equal(column.visible, true, "column visible property, #2");
assert.equal(Serializer.getObjPropertyValue(column, "visible"), true, "Serializer.getObjPropertyValue, #2");
column.visible = false;
assert.equal(visibleQuestion.value, false, "column visible, #3");
assert.equal(column.visible, false, "column visible property, #3");
assert.equal(Serializer.getObjPropertyValue(column, "visible"), false, "Serializer.getObjPropertyValue, #3");
});

0 comments on commit 7d17819

Please sign in to comment.