Adding ability to have page overrides per client.

This commit is contained in:
Jeremy Zimmerman 2022-12-01 14:25:11 -05:00
parent d572e03827
commit cdc8d00fa0

View file

@ -2,37 +2,56 @@ import { dynamicStrings } from "@/constants/dynamic-strings";
import { useMainStore } from '@/store'; import { useMainStore } from '@/store';
export function fetchCmsContentForPage(issPage) { export function fetchCmsContentForPage(issPage) {
return useMainStore().getPageData(issPage) const store = useMainStore();
.then((response) => { store.order.accountNumber = 10;
const pageDataFromCms = {}; const pageName = issPage + (store.order.accountNumber == 0 ? "" : store.order.accountNumber);
response.data.Result.forEach((widget) => { return store.getPageData(pageName)
let widgetWithReplacements = findAndReplaceGlobalStateValues( .then(
widget.Model, // Get the client specific page if it exists.
widget.Name (response) => { return processPageData(response); },
); (error) => {
// If the client specific page does not exist, get the base page.
// If we already have this widget, push it on the collection if ( store.order.accountNumber != 0 )
if (widgetWithReplacements.Name in pageDataFromCms) { {
pageDataFromCms[widgetWithReplacements.Name].push( return store.getPageData(issPage)
widgetWithReplacements.Model .then((response) => {
); return processPageData(response);
return; });
} }
}
);
}
function processPageData(response) {
const pageDataFromCms = {};
response.data.Result.forEach((widget) => {
let widgetWithReplacements = findAndReplaceGlobalStateValues(
widget.Model,
widget.Name
);
pageDataFromCms[widgetWithReplacements.Name] = [ // If we already have this widget, push it on the collection
widgetWithReplacements.Model, if (widgetWithReplacements.Name in pageDataFromCms) {
]; pageDataFromCms[widgetWithReplacements.Name].push(
}); widgetWithReplacements.Model
);
return;
}
Object.keys(pageDataFromCms).forEach((key) => { pageDataFromCms[widgetWithReplacements.Name] = [
if (pageDataFromCms[key].length === 1) { widgetWithReplacements.Model,
pageDataFromCms[key] = pageDataFromCms[key][0]; ];
} });
});
return pageDataFromCms; 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 // Parent function for processWidgetItemForReplacement. This will loop through the parent