Adding ability to have page overrides per client.
This commit is contained in:
parent
d572e03827
commit
cdc8d00fa0
1 changed files with 46 additions and 27 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue