From fa958cbbfe3f5a456bcb15456f3f615b8698c22c Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Tue, 4 Feb 2025 17:42:40 -0800 Subject: [PATCH] IO-3121 Generic Report Header Signed-off-by: Allan Carr --- client/src/utils/RenderTemplate.js | 24 +++++++++--------------- client/src/utils/graphQLmodifier.js | 7 ++++--- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/client/src/utils/RenderTemplate.js b/client/src/utils/RenderTemplate.js index a85681ae5..18127a24a 100644 --- a/client/src/utils/RenderTemplate.js +++ b/client/src/utils/RenderTemplate.js @@ -9,7 +9,6 @@ import client from "../utils/GraphQLClient"; import cleanAxios from "./CleanAxios"; import { TemplateList } from "./TemplateConstants"; import { generateTemplate } from "./graphQLmodifier"; -import InstanceRenderManager from "./instanceRenderMgr"; const server = import.meta.env.VITE_APP_REPORTS_SERVER_URL; @@ -39,7 +38,7 @@ export default async function RenderTemplate( jsreport.headers["Authorization"] = jsrAuth; //Query assets that match the template name. Must be in format <>.query - let { contextData, useShopSpecificTemplate } = await fetchContextData(templateObject, jsrAuth); + let { contextData, useShopSpecificTemplate, shopSpecificFolder } = await fetchContextData(templateObject, jsrAuth); const { ignoreCustomMargins } = Templates[templateObject.name]; @@ -74,14 +73,8 @@ export default async function RenderTemplate( ...contextData, ...templateObject.variables, ...templateObject.context, - headerpath: `/${InstanceRenderManager({ - imex: bodyshop.imexshopid, - rome: bodyshop.imexshopid - })}/header.html`, - footerpath: `/${InstanceRenderManager({ - imex: bodyshop.imexshopid, - rome: bodyshop.imexshopid - })}/footer.html`, + headerpath: shopSpecificFolder ? `/${bodyshop.imexshopid}/header.html` : `/GENERIC/header.html`, + footerpath: shopSpecificFolder ? `/${bodyshop.imexshopid}/header.html` : `/GENERIC/footer.html`, bodyshop: bodyshop, filters: templateObject?.filters, sorters: templateObject?.sorters, @@ -149,11 +142,12 @@ export async function RenderTemplates(templateObjects, bodyshop, renderAsHtml = templateObjects.forEach((template) => { proms.push( (async () => { - let { contextData, useShopSpecificTemplate } = await fetchContextData(template, jsrAuth); + let { contextData, useShopSpecificTemplate, shopSpecificFolder } = await fetchContextData(template, jsrAuth); unsortedTemplatesAndData.push({ templateObject: template, contextData, - useShopSpecificTemplate + useShopSpecificTemplate, + shopSpecificFolder }); })() ); @@ -248,8 +242,8 @@ export async function RenderTemplates(templateObjects, bodyshop, renderAsHtml = // ...rootTemplate.templateObject.variables, // ...rootTemplate.templateObject.context, - headerpath: `/${bodyshop.imexshopid}/header.html`, - footerpath: `/${bodyshop.imexshopid}/footer.html`, + headerpath: rootTemplate.shopSpecificFolder ? `/${bodyshop.imexshopid}/header.html` : `/GENERIC/header.html`, + footerpath: rootTemplate.shopSpecificFolder ? `/${bodyshop.imexshopid}/footer.html` : `/GENERIC/footer.html`, bodyshop: bodyshop, offset: bodyshop.timezone } @@ -400,7 +394,7 @@ const fetchContextData = async (templateObject, jsrAuth) => { return { contextData, useShopSpecificTemplate }; } - return await generateTemplate(templateQueryToExecute, templateObject, useShopSpecificTemplate); + return await generateTemplate(templateQueryToExecute, templateObject, useShopSpecificTemplate, shopSpecificFolder); }; //export const displayTemplateInWindow = (html) => { diff --git a/client/src/utils/graphQLmodifier.js b/client/src/utils/graphQLmodifier.js index 5e1c74b90..b50665c79 100644 --- a/client/src/utils/graphQLmodifier.js +++ b/client/src/utils/graphQLmodifier.js @@ -1,6 +1,6 @@ +import { gql } from "@apollo/client"; import { Kind, parse, print, visit } from "graphql"; import client from "./GraphQLClient"; -import { gql } from "@apollo/client"; /* eslint-disable no-loop-func */ @@ -114,9 +114,10 @@ export function printQuery(query) { * @param templateQueryToExecute * @param templateObject * @param useShopSpecificTemplate + * @param shopSpecificTemplate * @returns {Promise<{contextData: {}, useShopSpecificTemplate}>} */ -export async function generateTemplate(templateQueryToExecute, templateObject, useShopSpecificTemplate) { +export async function generateTemplate(templateQueryToExecute, templateObject, useShopSpecificTemplate, shopSpecificFolder) { // Advanced Filtering and Sorting modifications start here // Parse the query and apply the filters and sorters @@ -147,7 +148,7 @@ export async function generateTemplate(templateQueryToExecute, templateObject, u contextData = data; } - return { contextData, useShopSpecificTemplate }; + return { contextData, useShopSpecificTemplate, shopSpecificFolder }; } /**