We need to hide Financials tab on the Project workspace.

Sanjeeva Nagend
Tera Contributor

SanjeevaNagend_0-1748501493603.png

 

3 REPLIES 3

pcabaniss
Tera Expert

Did you ever figure this out. I am looking to do the same, but am only seeing responses for the project console instead of the workspace. 

williamkos
Tera Contributor

Hi,

 

I do not know if you're still looking for an answer to this problem, but we removed this tab by overwriting the function getPlannerSubPageItems in the script include ProjectWorkspaceHelper, which is an extension of ProjectWorkspaceHelperSNC.

 

We used the following code

    getPlannerSubPageItems(projectId, sysClassName) {
        const plannerSubPageItems = [];

        if (gs.getUser().hasRole('project_manager') && ProjectWorkspacePlaybookUtil.isPlayBookInstanceAvailable(projectId)) {
            const playbookItem = {
                id: "playbook",
                label: gs.getMessage("Playbook"),
                route: "playbook",
                icon: "Playbook Fill",
                order: 1,
                actionable: true,
                isTableMandatoryParam: true, //We will set table param during navigation automatically
                isSysIdMandatoryParam: true, //We will set sysId param during navigation automatically
                isTimeStampMandatoryParam: true, //We will set timeStamp param during navigation automatically
                forceRefreshOnNavigation: true, //On every navigation, we will update the timeStamp automatically.
                fields: {},
                params: {
                    pageName: "playbook"
                }
            };
            plannerSubPageItems.push(playbookItem);
        }

        const pwsNowAssistActionsAccessHandler = new PWSNowAssistActionsAccessHandler();
        if (pwsNowAssistActionsAccessHandler.canShowEmailProjectSummaryAction()) {
            const aiInsightsPage = {
                id: "ai-insights",
                label: gs.getMessage("AI Insights"),
                route: "ai-insights",
                icon: "ai-sparkle-fill",
                order: 0,
                actionable: true,
                isTableMandatoryParam: true, //We will set table param during navigation automatically
                isSysIdMandatoryParam: true, //We will set sysId param during navigation automatically
                isTimeStampMandatoryParam: true, //We will set timeStamp param during navigation automatically
                forceRefreshOnNavigation: true, //On every navigation, we will update the timeStamp automatically.
                fields: {},
                params: {
                    pageName: "ai-insights"
                }
            };
            plannerSubPageItems.push(aiInsightsPage);
        }

        const planningItem = {
            id: "planning",
            label: gs.getMessage("Planning"),
            route: "planning",
            icon: "Roadmap Fill",
            order: 2,
            actionable: true,
            isTableMandatoryParam: true, //We will set table param during navigation automatically
            isSysIdMandatoryParam: true, //We will set sysId param during navigation automatically
            isTimeStampMandatoryParam: true, //We will set timeStamp param during navigation automatically
            forceRefreshOnNavigation: true, //On every navigation, we will update the timeStamp automatically.
            fields: { //Mention route params here other than table sysId and timeStamp
            },
            params: {
                pageName: "planning"
            }
        };
        plannerSubPageItems.push(planningItem);

        const hasPPMFinanceReadRole = gs.getUser().hasRole('sn_ppm_finance_read');
        const hasProjectManagerRole = gs.getUser().hasRole('project_manager');
        const hasProgramManagerRole = gs.getUser().hasRole('program_manager');
        if (hasPPMFinanceReadRole || hasProjectManagerRole || hasProgramManagerRole) {
            const finacilasItem = {
                id: "financials",
                label: gs.getMessage("Financials"),
                route: "pw-financials",
                icon: "Chart Control Fill",
                order: 5,
                actionable: true,
                isTableMandatoryParam: true, //We will set table param during navigation automatically
                isSysIdMandatoryParam: true, //We will set sysId param during navigation automatically
                isTimeStampMandatoryParam: true, //We will set timeStamp param during navigation automatically
                forceRefreshOnNavigation: true, //On every navigation, we will update the timeStamp automatically.
                fields: { //Mention route params here other than table sysId and timeStamp
                },
                params: {
                    pageName: "financials"
                }
            };
            //plannerSubPageItems.push(finacilasItem);
        }

        const ridacItem = {
            id: "ridac-monitor",
            label: gs.getMessage("RIDAC"),
            route: "ridac-monitor",
            icon: "Table Fill",
            order: 6,
            actionable: true,
            isTableMandatoryParam: true, //We will set table param during navigation automatically
            isSysIdMandatoryParam: true, //We will set sysId param during navigation automatically
            isTimeStampMandatoryParam: true, //We will set timeStamp param during navigation automatically
            forceRefreshOnNavigation: true, //On every navigation, we will update the timeStamp automatically.
            fields: { //Mention route params here other than table sysId and timeStamp
            },
            params: {
                pageName: "ridac-monitor"
            }
        };
        plannerSubPageItems.push(ridacItem);

        const detailsPage = { //record page
            id: "details",
            label: gs.getMessage("Details"),
            route: "record",
            icon: "Form fill",
            order: 3,
            actionable: true,
            isTableMandatoryParam: true, //We will set table param during navigation automatically
            isSysIdMandatoryParam: true, //We will set sysId param during navigation automatically
            isTimeStampMandatoryParam: false, //We will set timeStamp param during navigation automatically
            forceRefreshOnNavigation: false, //On every navigation, we will update the timeStamp automatically.
            fields: { //Mention route params here other than table sysId and timeStamp
            },
            params: {
                pageName: "details",
                timeStamp: Date.now() //handling details page differently as we are using same screen of record page
            }
        };
        plannerSubPageItems.push(detailsPage);

        const analyticsPage = { //analytics page
            id: "analytics",
            label: gs.getMessage("Analytics"),
            route: "analytics",
            icon: "analytics-center-outline",
            order: 7,
            actionable: true,
            isTableMandatoryParam: true, //We will set table param during navigation automatically
            isSysIdMandatoryParam: true, //We will set sysId param during navigation automatically
            isTimeStampMandatoryParam: true, //We will set timeStamp param during navigation automatically
            forceRefreshOnNavigation: true, //On every navigation, we will update the timeStamp automatically.
            fields: { //Mention route params here other than table sysId and timeStamp
            },
            params: {
                pageName: "analytics"
            }
        };
        plannerSubPageItems.push(analyticsPage);

        const docsPage = {
            id: "docs",
            label: gs.getMessage("Docs"),
            route: "docs",
            icon: "Form fill",
            order: 8,
            actionable: true,
            isTableMandatoryParam: true, //We will set table param during navigation automatically
            isSysIdMandatoryParam: true, //We will set sysId param during navigation automatically
            isTimeStampMandatoryParam: false, //We will set timeStamp param during navigation automatically
            forceRefreshOnNavigation: true, //On every navigation, we will update the timeStamp automatically.
            fields: { //Mention route params here other than table sysId and timeStamp
            },
            params: {
                pageName: "docs"
            }
        };
        plannerSubPageItems.push(docsPage);

        const statusReportPage = { //status report page
            id: "status-report",
            label: gs.getMessage("Status Reports"),
            route: "status-report",
            icon: "heartbeat-outline",
            order: 9,
            actionable: true,
            isTableMandatoryParam: true, //We will set table param during navigation automatically
            isSysIdMandatoryParam: true, //We will set sysId param during navigation automatically
            isTimeStampMandatoryParam: true, //We will set timeStamp param during navigation automatically
            forceRefreshOnNavigation: true, //On every navigation, we will update the timeStamp automatically.
            fields: { //Mention route params here other than table sysId and timeStamp
            },
            params: {
                pageName: "status-report"
            }
        };
        plannerSubPageItems.push(statusReportPage);

        if (gs.getUser().hasRole('resource_user')) {
            const ResourcesPage = {
                id: "resource_board",
                label: gs.getMessage("Resources"),
                route: "resource_board",
                icon: "user-group-outline",
                order: 4,
                actionable: true,
                isTableMandatoryParam: true, //We will set table param during navigation automatically
                isSysIdMandatoryParam: true, //We will set sysId param during navigation automatically
                isTimeStampMandatoryParam: true, //We will set timeStamp param during navigation automatically
                forceRefreshOnNavigation: true, //On every navigation, we will update the timeStamp automatically.
                fields: { //Mention route params here other than table sysId and timeStamp
                },
                params: {
                    timestamp: Date.now()
                }
            };
            plannerSubPageItems.push(ResourcesPage);
        }

        plannerSubPageItems.sort((a, b) => a.order - b.order);
        return {
            plannerSubPageItems,
            defaultPage: planningItem
        };
    },

 

Kind regards,

William