diff --git a/libs/handoverapp/src/lib/config/workspaceConfig.tsx b/libs/handoverapp/src/lib/config/workspaceConfig.tsx index 2bd97eeb..9907922f 100644 --- a/libs/handoverapp/src/lib/config/workspaceConfig.tsx +++ b/libs/handoverapp/src/lib/config/workspaceConfig.tsx @@ -20,15 +20,14 @@ import { useModuleCurrentContext } from '@equinor/fusion-framework-react-module- const pbi_context_mapping = { Facility: { - column: "Facility", - table: "Dim_Facility" + column: 'Facility', + table: 'Dim_Facility', }, ProjectMaster: { - column: "ProjectMaster GUID", - table: "Dim_ProjectMaster" + column: 'ProjectMaster GUID', + table: 'Dim_ProjectMaster', }, -} as const - +} as const; export const WorkspaceWrapper = () => { const contextId = useContextId(); @@ -36,10 +35,12 @@ export const WorkspaceWrapper = () => { const client = useHttpClient('cc-app'); const { isLoading } = useCCApiAccessCheck(contextId, client, 'handover'); + const { currentContext } = useModuleCurrentContext(); - const { currentContext } = useModuleCurrentContext() - - const pbi = usePBIOptions('handoveranalytics', pbi_context_mapping[(currentContext?.type.id) as "ProjectMaster" | "Facility"]); + const pbi = usePBIOptions( + 'handoveranalytics', + pbi_context_mapping[currentContext?.type.id as 'ProjectMaster' | 'Facility'] + ); const { bookmarkKey, currentBookmark, onBookmarkChange } = useWorkspaceBookmarks(); const filterConfig = useFilterConfig((req) => diff --git a/libs/heattraceapp/src/lib/config/frameworkConfig.ts b/libs/heattraceapp/src/lib/config/frameworkConfig.ts index baff05f1..fcd57604 100644 --- a/libs/heattraceapp/src/lib/config/frameworkConfig.ts +++ b/libs/heattraceapp/src/lib/config/frameworkConfig.ts @@ -9,7 +9,7 @@ import { ModelViewerEnvConfig, enableModelViewer } from '@cc-components/modelvie export const configure = async (config: IAppConfigurator, c: ComponentRenderArgs) => { enableContext(config, async (builder) => { - builder.setContextType(['ProjectMaster']); + builder.setContextType(['ProjectMaster', 'Facility']); builder.setContextParameterFn(({ search, type }) => { return buildQuery({ search, diff --git a/libs/heattraceapp/src/lib/config/workspaceConfig.tsx b/libs/heattraceapp/src/lib/config/workspaceConfig.tsx index 3b5c4819..b8eaf776 100644 --- a/libs/heattraceapp/src/lib/config/workspaceConfig.tsx +++ b/libs/heattraceapp/src/lib/config/workspaceConfig.tsx @@ -16,6 +16,18 @@ import { import { CCApiAccessLoading } from '@cc-components/sharedcomponents'; import { useGardenConfig } from './gardenConfig'; import { sidesheetConfig } from './heattraceSidesheet'; +import { useModuleCurrentContext } from '@equinor/fusion-framework-react-module-context'; + +const pbi_context_mapping = { + Facility: { + column: 'Facility', + table: 'Dim_Facility', + }, + ProjectMaster: { + column: 'ProjectMaster GUID', + table: 'Dim_ProjectMaster', + }, +} as const; export const WorkspaceWrapper = () => { const contextId = useContextId(); @@ -33,10 +45,12 @@ export const WorkspaceWrapper = () => { const statusBarConfig = useStatusBarConfig(contextId); const gardenConfig = useGardenConfig(contextId); - const pbi = usePBIOptions('cc-heattrace-analytics', { - column: 'ProjectMaster GUID', - table: 'Dim_ProjectMaster', - }); + const { currentContext } = useModuleCurrentContext(); + + const pbi = usePBIOptions( + 'cc-heattrace-analytics', + pbi_context_mapping[currentContext?.type.id as 'ProjectMaster' | 'Facility'] + ); if (isLoading) { return ; diff --git a/libs/loopapp/src/lib/config/frameworkConfig.ts b/libs/loopapp/src/lib/config/frameworkConfig.ts index e61238d7..e5dfab70 100644 --- a/libs/loopapp/src/lib/config/frameworkConfig.ts +++ b/libs/loopapp/src/lib/config/frameworkConfig.ts @@ -9,7 +9,7 @@ import buildQuery from 'odata-query'; export const configure = async (config: IAppConfigurator, c: ComponentRenderArgs) => { enableContext(config, async (builder) => { - builder.setContextType(['ProjectMaster']); + builder.setContextType(['ProjectMaster', 'Facility']); builder.setContextParameterFn(({ search, type }) => { return buildQuery({ search, diff --git a/libs/loopapp/src/lib/config/workspaceConfig.tsx b/libs/loopapp/src/lib/config/workspaceConfig.tsx index fe2c66da..32aaf945 100644 --- a/libs/loopapp/src/lib/config/workspaceConfig.tsx +++ b/libs/loopapp/src/lib/config/workspaceConfig.tsx @@ -17,14 +17,30 @@ import { gardenModule } from '@equinor/workspace-fusion/garden-module'; import { gridModule } from '@equinor/workspace-fusion/grid-module'; import { powerBiModule } from '@equinor/workspace-fusion/power-bi-module'; import { CCApiAccessLoading } from '@cc-components/sharedcomponents'; +import { useModuleCurrentContext } from '@equinor/fusion-framework-react-module-context'; + +const pbi_context_mapping = { + Facility: { + column: 'Facility', + table: 'Dim_Facility', + }, + ProjectMaster: { + column: 'ProjectMaster GUID', + table: 'Dim_ProjectMaster', + }, +} as const; export const WorkspaceWrapper = () => { const contextId = useContextId(); useCloseSidesheetOnContextChange(); - const pbi = usePBIOptions('loop-analytics', { - column: 'ProjectMaster GUID', - table: 'Dim_ProjectMaster', - }); + + const { currentContext } = useModuleCurrentContext(); + + const pbi = usePBIOptions( + 'loop-analytics', + pbi_context_mapping[currentContext?.type.id as 'ProjectMaster' | 'Facility'] + ); + const client = useHttpClient(); const { bookmarkKey, currentBookmark, onBookmarkChange } = useWorkspaceBookmarks(); const { isLoading } = useCCApiAccessCheck(contextId, client, 'loop'); diff --git a/libs/pipingapp/src/lib/config/frameworkConfig.ts b/libs/pipingapp/src/lib/config/frameworkConfig.ts index d5e3f7ff..675faa78 100644 --- a/libs/pipingapp/src/lib/config/frameworkConfig.ts +++ b/libs/pipingapp/src/lib/config/frameworkConfig.ts @@ -9,7 +9,7 @@ import { ModelViewerEnvConfig, enableModelViewer } from '@cc-components/modelvie export const configure = async (config: IAppConfigurator, c: ComponentRenderArgs) => { enableContext(config, async (builder) => { - builder.setContextType(['ProjectMaster']); + builder.setContextType(['ProjectMaster', 'Facility']); builder.setContextParameterFn(({ search, type }) => { return buildQuery({ search, diff --git a/libs/pipingapp/src/lib/config/workspaceConfig.tsx b/libs/pipingapp/src/lib/config/workspaceConfig.tsx index d94a2ecd..e3e5a37c 100644 --- a/libs/pipingapp/src/lib/config/workspaceConfig.tsx +++ b/libs/pipingapp/src/lib/config/workspaceConfig.tsx @@ -16,6 +16,18 @@ import { import { useGardenConfig } from './gardenConfig'; import { sidesheetConfig } from './pipingSidesheet'; import { CCApiAccessLoading } from '@cc-components/sharedcomponents'; +import { useModuleCurrentContext } from '@equinor/fusion-framework-react-module-context'; + +const pbi_context_mapping = { + Facility: { + column: 'Facility', + table: 'Dim_Facility', + }, + ProjectMaster: { + column: 'ProjectMaster GUID', + table: 'Dim_ProjectMaster', + }, +} as const; export const WorkspaceWrapper = () => { const contextId = useContextId(); @@ -32,10 +44,12 @@ export const WorkspaceWrapper = () => { const statusBarConfig = useStatusBarConfig(contextId); const gardenConfig = useGardenConfig(contextId); - const pbi = usePBIOptions('cc-pipetest-analytics', { - column: 'ProjectMaster GUID', - table: 'Dim_ProjectMaster', - }); + const { currentContext } = useModuleCurrentContext(); + + const pbi = usePBIOptions( + 'cc-pipetest-analytics', + pbi_context_mapping[currentContext?.type.id as 'ProjectMaster' | 'Facility'] + ); if (isLoading) { return ; diff --git a/libs/punchapp/src/lib/config/frameworkConfig.ts b/libs/punchapp/src/lib/config/frameworkConfig.ts index 60c01be6..108ffd61 100644 --- a/libs/punchapp/src/lib/config/frameworkConfig.ts +++ b/libs/punchapp/src/lib/config/frameworkConfig.ts @@ -10,7 +10,7 @@ import buildQuery from 'odata-query'; export const configure = async (config: IAppConfigurator, c: ComponentRenderArgs) => { enableContext(config, async (builder) => { - builder.setContextType(['ProjectMaster']); + builder.setContextType(['ProjectMaster', 'Facility']); builder.setContextParameterFn(({ search, type }) => { return buildQuery({ search, diff --git a/libs/punchapp/src/lib/config/workspaceConfig.tsx b/libs/punchapp/src/lib/config/workspaceConfig.tsx index 92393a66..9fc72385 100644 --- a/libs/punchapp/src/lib/config/workspaceConfig.tsx +++ b/libs/punchapp/src/lib/config/workspaceConfig.tsx @@ -19,6 +19,18 @@ import { gridModule } from '@equinor/workspace-fusion/grid-module'; import { useTableConfig } from './tableConfig'; import { useStatusBarConfig } from './statusBarConfig'; import { useGardenConfig } from './gardenConfig'; +import { useModuleCurrentContext } from '@equinor/fusion-framework-react-module-context'; + +const pbi_context_mapping = { + Facility: { + column: 'Facility', + table: 'Dim_Facility', + }, + ProjectMaster: { + column: 'ProjectMaster GUID', + table: 'Dim_ProjectMaster', + }, +} as const; export const WorkspaceWrapper = () => { const contextId = useContextId(); @@ -26,10 +38,12 @@ export const WorkspaceWrapper = () => { const ccApi = useHttpClient(); const { bookmarkKey, currentBookmark, onBookmarkChange } = useWorkspaceBookmarks(); - const pbi = usePBIOptions('cc-punch-analytics', { - column: 'ProjectMaster GUID', - table: 'Dim_ProjectMaster', - }); + const { currentContext } = useModuleCurrentContext(); + + const pbi = usePBIOptions( + 'cc-punch-analytics', + pbi_context_mapping[currentContext?.type.id as 'ProjectMaster' | 'Facility'] + ); const filterConfig = useFilterConfig((req) => ccApi.fetch(`/api/contexts/${contextId}/punch/filter-model`, req) diff --git a/libs/swcrapp/src/lib/config/frameworkConfig.ts b/libs/swcrapp/src/lib/config/frameworkConfig.ts index 893aa567..8b3d6f6b 100644 --- a/libs/swcrapp/src/lib/config/frameworkConfig.ts +++ b/libs/swcrapp/src/lib/config/frameworkConfig.ts @@ -8,7 +8,7 @@ import buildQuery from 'odata-query'; export const configure = async (config: IAppConfigurator, c: ComponentRenderArgs) => { enableContext(config, async (builder) => { - builder.setContextType(['ProjectMaster']); + builder.setContextType(['ProjectMaster', 'Facility']); builder.setContextParameterFn(({ search, type }) => { return buildQuery({ search, diff --git a/libs/swcrapp/src/lib/config/workspaceConfig.tsx b/libs/swcrapp/src/lib/config/workspaceConfig.tsx index 86d250be..1fb49dbe 100644 --- a/libs/swcrapp/src/lib/config/workspaceConfig.tsx +++ b/libs/swcrapp/src/lib/config/workspaceConfig.tsx @@ -19,16 +19,30 @@ import { powerBiModule } from '@equinor/workspace-fusion/power-bi-module'; import { useGardenConfig } from './gardenConfig'; import { useStatusBarConfig } from './statusBarConfig'; import { useTableConfig } from './tableConfig'; +import { useModuleCurrentContext } from '@equinor/fusion-framework-react-module-context'; + +const pbi_context_mapping = { + Facility: { + column: 'Facility', + table: 'Dim_Facility', + }, + ProjectMaster: { + column: 'ProjectMaster GUID', + table: 'Dim_ProjectMaster', + }, +} as const; export const WorkspaceWrapper = () => { const contextId = useContextId(); useCloseSidesheetOnContextChange(); const ccApi = useHttpClient(); - const pbi = usePBIOptions('swcr-analytics', { - column: 'ProjectMaster GUID', - table: 'Dim_ProjectMaster', - }); + const { currentContext } = useModuleCurrentContext(); + + const pbi = usePBIOptions( + 'swcr-analytics', + pbi_context_mapping[currentContext?.type.id as 'ProjectMaster' | 'Facility'] + ); const { bookmarkKey, currentBookmark, onBookmarkChange } = useWorkspaceBookmarks(); diff --git a/libs/workorderapp/src/lib/config/frameworkConfig.ts b/libs/workorderapp/src/lib/config/frameworkConfig.ts index d2057368..2768793d 100644 --- a/libs/workorderapp/src/lib/config/frameworkConfig.ts +++ b/libs/workorderapp/src/lib/config/frameworkConfig.ts @@ -10,7 +10,7 @@ import buildQuery from 'odata-query'; export const configure = async (config: IAppConfigurator, c: ComponentRenderArgs) => { enableContext(config, async (builder) => { - builder.setContextType(['ProjectMaster']); + builder.setContextType(['ProjectMaster', 'Facility']); builder.setContextParameterFn(({ search, type }) => { return buildQuery({ search, diff --git a/libs/workorderapp/src/lib/config/workspace.tsx b/libs/workorderapp/src/lib/config/workspace.tsx index 9fb00a08..86862b98 100644 --- a/libs/workorderapp/src/lib/config/workspace.tsx +++ b/libs/workorderapp/src/lib/config/workspace.tsx @@ -4,7 +4,7 @@ import { useHttpClient, usePBIOptions, useWorkspaceBookmarks, - useCloseSidesheetOnContextChange + useCloseSidesheetOnContextChange, } from '@cc-components/shared'; import { useFilterConfig } from '@cc-components/shared/workspace-config'; import Workspace from '@equinor/workspace-fusion'; @@ -18,6 +18,18 @@ import { gridModule } from '@equinor/workspace-fusion/grid-module'; import { useStatusBarConfig } from './statusBarConfig'; import { useGardenConfig } from './gardenConfig'; import { CCApiAccessLoading } from '@cc-components/sharedcomponents'; +import { useModuleCurrentContext } from '@equinor/fusion-framework-react-module-context'; + +const pbi_context_mapping = { + Facility: { + column: 'Facility', + table: 'Dim_Facility', + }, + ProjectMaster: { + column: 'ProjectMaster GUID', + table: 'Dim_ProjectMaster', + }, +} as const; export const WorkspaceWrapper = () => { const contextId = useContextId(); @@ -25,10 +37,13 @@ export const WorkspaceWrapper = () => { const client = useHttpClient(); const { bookmarkKey, currentBookmark, onBookmarkChange } = useWorkspaceBookmarks(); const { isLoading } = useCCApiAccessCheck(contextId, client, 'work-orders'); - const pbi = usePBIOptions('workorder-analytics', { - column: 'ProjectMaster GUID', - table: 'Dim_ProjectMaster', - }); + + const { currentContext } = useModuleCurrentContext(); + + const pbi = usePBIOptions( + 'workorder-analytics', + pbi_context_mapping[currentContext?.type.id as 'ProjectMaster' | 'Facility'] + ); const filterConfig = useFilterConfig((req) => client.fetch(`/api/contexts/${contextId}/work-orders/filter-model`, req) @@ -37,12 +52,10 @@ export const WorkspaceWrapper = () => { const statusBarConfig = useStatusBarConfig(contextId); const gardenConfig = useGardenConfig(contextId); - if (isLoading) { return ; } - return ( <>