We need to hide Financials tab on the Project workspace.
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-28-2025 11:52 PM
3 REPLIES 3
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-24-2025 05:17 AM
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.
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 weeks ago - last edited 2 weeks ago
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
