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;
if (folderTitle && folderUid && pageNav && pageNav.parentItem?.text !== folderTitle) {
if (folderUid && pageNav) {
if (config.featureToggles.nestedFolders) {
const folderNavModel = folderUid ? getNavModel(navIndex, `folder-dashboards-${folderUid}`).main : undefined;
const folderNavModel = getNavModel(navIndex, `folder-dashboards-${folderUid}`).main;
pageNav = {
...pageNav,
parentItem: folderNavModel,
};
} else {
pageNav = {
...pageNav,
parentItem: {
text: folderTitle,
url: `/dashboards/f/${dashboard.meta.folderUid}`,
},
};
// Check if folder changed
if (folderTitle && pageNav.parentItem?.text !== folderTitle) {
pageNav = {
...pageNav,
parentItem: {
text: folderTitle,
url: `/dashboards/f/${dashboard.meta.folderUid}`,
},
};
}
}
}

View File

@ -104,6 +104,12 @@ async function fetchDashboard(
return dashDTO;
}
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);
}
case DashboardRoutes.Path: {