Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…rary - A header should't appear on a Thank You (Complete) page
  • Loading branch information
tsv2013 committed Oct 31, 2023
1 parent 20ed95f commit 4621aa4
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 19 deletions.
42 changes: 23 additions & 19 deletions src/survey.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1182,26 +1182,26 @@ export class SurveyModel extends SurveyElementCore
@property({
onSet: (newValue, target: SurveyModel) => {
if (newValue === "advanced") {
const layoutElement = target.layoutElements.filter(a => a.id === "cover")[0];
const layoutElement = target.layoutElements.filter(a => a.id === "advanced-header")[0];
if (!layoutElement) {
var cover = new Cover();
cover.logoPositionX = target.logoPosition === "right" ? "right" : "left";
cover.logoPositionY = "middle";
cover.titlePositionX = target.logoPosition === "right" ? "left" : "right";
cover.titlePositionY = "middle";
cover.descriptionPositionX = target.logoPosition === "right" ? "left" : "right";
cover.descriptionPositionY = "middle";
cover.survey = target;
var advHeader = new Cover();
advHeader.logoPositionX = target.logoPosition === "right" ? "right" : "left";
advHeader.logoPositionY = "middle";
advHeader.titlePositionX = target.logoPosition === "right" ? "left" : "right";
advHeader.titlePositionY = "middle";
advHeader.descriptionPositionX = target.logoPosition === "right" ? "left" : "right";
advHeader.descriptionPositionY = "middle";
advHeader.survey = target;
target.layoutElements.unshift({
id: "cover",
id: "advanced-header",
container: "header",
component: "sv-header",
data: cover,
processResponsiveness: width => cover.processResponsiveness(width)
data: advHeader,
processResponsiveness: width => advHeader.processResponsiveness(width)
});
}
} else {
target.removeLayoutElement("cover");
target.removeLayoutElement("advanced-header");
}
}
}) headerView: "advanced" | "basic";
Expand Down Expand Up @@ -7337,6 +7337,10 @@ export class SurveyModel extends SurveyElementCore
containerLayoutElements.push(layoutElement);
}
}
} else if (isStrCiEqual(layoutElement.id, "advanced-header")) {
if (this.state === "running" && layoutElement.container === container) {
containerLayoutElements.push(layoutElement);
}
} else {
if (Array.isArray(layoutElement.container) && layoutElement.container.indexOf(container) !== -1 || layoutElement.container === container) {
containerLayoutElements.push(layoutElement);
Expand All @@ -7360,15 +7364,15 @@ export class SurveyModel extends SurveyElementCore

Object.keys(theme).forEach((key: keyof ITheme) => {
if (key === "header") {
this.removeLayoutElement("cover");
const newCoverModel = new Cover();
newCoverModel.fromTheme(theme);
this.removeLayoutElement("advanced-header");
const advHeader = new Cover();
advHeader.fromTheme(theme);
this.layoutElements.push({
id: "cover",
id: "advanced-header",
container: "header",
component: "sv-header",
data: newCoverModel,
processResponsiveness: width => newCoverModel.processResponsiveness(width)
data: advHeader,
processResponsiveness: width => advHeader.processResponsiveness(width)
});
}
if (key === "isPanelless") {
Expand Down
51 changes: 51 additions & 0 deletions tests/surveytests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17194,6 +17194,57 @@ QUnit.test("getContainerContent - do not show buttons progress on completed page
assert.deepEqual(getContainerContent("left"), [], "");
assert.deepEqual(getContainerContent("right"), [], "");
});
QUnit.test("getContainerContent - do not advanced header on completed page", function (assert) {
const json = {
pages: [
{
"elements": [
{
"type": "text",
"name": "q1",
},
]
},
]
};

let survey = new SurveyModel(json);
survey.headerView = "advanced";
function getContainerContent(container: LayoutElementContainer) {
let result = survey.getContainerContent(container);
result.forEach(item => {
delete item["data"];
delete item["processResponsiveness"];
});
return result;
}

assert.deepEqual(getContainerContent("header"), [{
"component": "sv-header",
"container": "header",
"id": "advanced-header"
}], "header for running survey");
assert.deepEqual(getContainerContent("footer"), [], "");
assert.deepEqual(getContainerContent("contentTop"), [], "");
assert.deepEqual(getContainerContent("contentBottom"), [{
"component": "sv-action-bar",
"id": "navigationbuttons"
}], "");
assert.deepEqual(getContainerContent("left"), [], "");
assert.deepEqual(getContainerContent("right"), [], "");

survey.doComplete();

assert.deepEqual(getContainerContent("header"), [], "header on complete page");
assert.deepEqual(getContainerContent("footer"), [], "");
assert.deepEqual(getContainerContent("contentTop"), [], "");
assert.deepEqual(getContainerContent("contentBottom"), [{
"component": "sv-action-bar",
"id": "navigationbuttons"
}], "");
assert.deepEqual(getContainerContent("left"), [], "");
assert.deepEqual(getContainerContent("right"), [], "");
});

const structedDataSurveyJSON = {
pages: [
Expand Down

0 comments on commit 4621aa4

Please sign in to comment.