Skip to content

Commit

Permalink
Resolved Work for surveyjs/survey-creator#1606 - fixed rendering inv…
Browse files Browse the repository at this point in the history
…isible row becomes visible
  • Loading branch information
T_S_V committed Aug 10, 2021
1 parent ff595c3 commit 93b5990
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/panel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1033,6 +1033,9 @@ export class PanelModelBase extends SurveyElement
var row = rows[i];
if (row.elements.indexOf(element) > -1) {
row.updateVisible();
if(row.visible && !row.isNeedRender) {
row.isNeedRender = true;
}
break;
}
}
Expand Down
53 changes: 52 additions & 1 deletion tests/paneltests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1522,4 +1522,55 @@ QUnit.test(
settings.lazyRowsRendering = prevLazyRowsRendering;
settings.lazyRowsRenderingStartRow = prevStartRowInLazyRendering;
}
});
});

QUnit.test(
"row.isNeedRender for question invisible -> visible",
function(assert) {
var json = {
pages: [
{
name: "page1",
elements: [
{
type: "text",
name: "q1",
},
{
type: "text",
name: "q2",
},
{
type: "text",
name: "q3",
visibleIf: "{q1} == 'a'"
},
],
}
],
};

const prevLazyRowsRendering = settings.lazyRowsRendering;
const prevStartRowInLazyRendering = settings.lazyRowsRenderingStartRow;
settings.lazyRowsRenderingStartRow = 2;
try {
var survey = new SurveyModel(json);
survey.lazyRendering = true;
const page1: PageModel = survey.pages[0];
page1.setWasShown(false);
page1.onFirstRendering();
assert.equal(page1.rows.length, 3, "There are 3 rows");
assert.equal(page1.rows[0].isNeedRender, true, "isNeedRender rows[0]");
assert.equal(page1.rows[1].isNeedRender, true, "isNeedRender rows[1]");
assert.equal(page1.rows[2].isNeedRender, false, "isNeedRender rows[2]");

survey.data = { q1: "a" };

assert.equal(page1.rows[2].isNeedRender, true, "isNeedRender rows[2]");

} finally {
settings.lazyRowsRendering = prevLazyRowsRendering;
settings.lazyRowsRenderingStartRow = prevStartRowInLazyRendering;
}
}
);

0 comments on commit 93b5990

Please sign in to comment.