From 27e51873ed3ee14bbac350959aa8cd5e40de733d Mon Sep 17 00:00:00 2001 From: Jeremy Zimmerman Date: Tue, 21 Mar 2023 13:32:38 -0400 Subject: [PATCH] Fixed issue where client customized widgets were not being added to the page widget collection. --- src/helpers/cms-content-helper.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/helpers/cms-content-helper.js b/src/helpers/cms-content-helper.js index 30255527..36bf7c70 100644 --- a/src/helpers/cms-content-helper.js +++ b/src/helpers/cms-content-helper.js @@ -37,6 +37,7 @@ export function fetchCmsContentForPage(issPage) { }; // Support method for processing the page data from the CMS call. +// widgets = current widget collection used by page. // baseResponse = contains the widgets from the base page. // clientResponse = contains the widgets from the client override page. (null if none) function processPageData(baseResponse, clientResponse) { @@ -49,7 +50,7 @@ function processPageData(baseResponse, clientResponse) { } else { - // Overide any base widgets with the client override widgets if found. + // Override any base widgets with the client override widgets if found. baseResponse.data.Result.forEach((baseWidget) => { let found = false; clientResponse.data.Result.forEach((clientWidget) => { @@ -62,11 +63,30 @@ function processPageData(baseResponse, clientResponse) { }); if ( !found ) + { widgets.push(baseWidget); + } }); + + // Add any unique client widgets that does not exist in the current main widgets collection. + clientResponse.data.Result.forEach((clientWidget) => { + let found = false; + widgets.forEach((currentWidget) => { + + if ( clientWidget.Name == currentWidget.Name ) + { + found = true; + } + }); + + if ( !found ) + { + widgets.push(clientWidget); + } + }); } - + widgets.forEach((widget) => { // Global state value replacement. let widgetWithReplacements = findAndReplaceGlobalStateValues(