NestedFolders: Ensure New dashboard page has the correct breadcrumb hierarchy (#69758)

ensure new dashboard page has the correct breadcrumb hierarchy
This commit is contained in:
Ashley Harrison
2023-06-09 16:22:57 +01:00
committed by GitHub
parent 516baf59fb
commit d29124214a
2 changed files with 18 additions and 10 deletions

View File

@ -437,23 +437,25 @@ function updateStatePageNavFromProps(props: Props, state: State): State {
}; };
} }
// Check if folder changed
const { folderTitle, folderUid } = dashboard.meta; const { folderTitle, folderUid } = dashboard.meta;
if (folderTitle && folderUid && pageNav && pageNav.parentItem?.text !== folderTitle) { if (folderUid && pageNav) {
if (config.featureToggles.nestedFolders) { if (config.featureToggles.nestedFolders) {
const folderNavModel = folderUid ? getNavModel(navIndex, `folder-dashboards-${folderUid}`).main : undefined; const folderNavModel = getNavModel(navIndex, `folder-dashboards-${folderUid}`).main;
pageNav = { pageNav = {
...pageNav, ...pageNav,
parentItem: folderNavModel, parentItem: folderNavModel,
}; };
} else { } else {
pageNav = { // Check if folder changed
...pageNav, if (folderTitle && pageNav.parentItem?.text !== folderTitle) {
parentItem: { pageNav = {
text: folderTitle, ...pageNav,
url: `/dashboards/f/${dashboard.meta.folderUid}`, parentItem: {
}, text: folderTitle,
}; url: `/dashboards/f/${dashboard.meta.folderUid}`,
},
};
}
} }
} }

View File

@ -104,6 +104,12 @@ async function fetchDashboard(
return dashDTO; return dashDTO;
} }
case DashboardRoutes.New: { case DashboardRoutes.New: {
// only the folder API has information about ancestors
// get parent folder (if it exists) and put it in the store
// this will be used to populate the full breadcrumb trail
if (config.featureToggles.nestedFolders && args.urlFolderUid) {
await dispatch(getFolderByUid(args.urlFolderUid));
}
return getNewDashboardModelData(args.urlFolderUid, args.panelType); return getNewDashboardModelData(args.urlFolderUid, args.panelType);
} }
case DashboardRoutes.Path: { case DashboardRoutes.Path: {