This commit is contained in:
Jeremy Zimmerman 2022-12-01 14:38:41 -05:00
parent 07a01cd2f8
commit a575ca628d

View file

@ -6,53 +6,54 @@ export function fetchCmsContentForPage(issPage) {
const clientName = store.issConfig.clientName;
const pageName = issPage + (clientName.length == 0 ? "" : "_" + clientName);
return store.getPageData(pageName)
.then(
// Get the client specific page if it exists.
(response) => { return processPageData(response); },
(error) => {
// If the client specific page does not exist, get the base page.
if ( clientName.length > 0 )
{
return store.getPageData(issPage)
.then((response) => {
return processPageData(response);
});
}
return store.getPageData(pageName)
.then(
// Get the client specific page if it exists.
(response) => { return processPageData(response); },
(error) => {
// If the client specific page does not exist, get the base page.
if ( clientName.length > 0 )
{
return store.getPageData(issPage)
.then((response) => {
return processPageData(response);
});
}
);
}
}
);
}
function processPageData(response) {
const pageDataFromCms = {};
response.data.Result.forEach((widget) => {
let widgetWithReplacements = findAndReplaceGlobalStateValues(
widget.Model,
widget.Name
// Support method for processing the page data from the CMS call.
function processPageData(response) {
const pageDataFromCms = {};
response.data.Result.forEach((widget) => {
let widgetWithReplacements = findAndReplaceGlobalStateValues(
widget.Model,
widget.Name
);
// If we already have this widget, push it on the collection
if (widgetWithReplacements.Name in pageDataFromCms) {
pageDataFromCms[widgetWithReplacements.Name].push(
widgetWithReplacements.Model
);
// If we already have this widget, push it on the collection
if (widgetWithReplacements.Name in pageDataFromCms) {
pageDataFromCms[widgetWithReplacements.Name].push(
widgetWithReplacements.Model
);
return;
}
pageDataFromCms[widgetWithReplacements.Name] = [
widgetWithReplacements.Model,
];
});
Object.keys(pageDataFromCms).forEach((key) => {
if (pageDataFromCms[key].length === 1) {
pageDataFromCms[key] = pageDataFromCms[key][0];
}
});
return pageDataFromCms;
}
return;
}
pageDataFromCms[widgetWithReplacements.Name] = [
widgetWithReplacements.Model,
];
});
Object.keys(pageDataFromCms).forEach((key) => {
if (pageDataFromCms[key].length === 1) {
pageDataFromCms[key] = pageDataFromCms[key][0];
}
});
return pageDataFromCms;
}
// Parent function for processWidgetItemForReplacement. This will loop through the parent
// object and pass any objects that need additional processing to the processWidgetItemForReplacement function.