mirror of
https://github.com/grafana/grafana.git
synced 2026-07-30 00:08:10 -05:00
Nested folders: only stop recursing up the tree if we hit a folder (#68676)
only stop recursing up the tree if we hit a folder
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { NavModel, NavModelItem, NavIndex } from '@grafana/data';
|
||||
import { config } from '@grafana/runtime';
|
||||
import { FOLDER_ID } from 'app/features/folders/state/navModel';
|
||||
|
||||
import { HOME_NAV_ID } from '../reducers/navModel';
|
||||
|
||||
@@ -38,12 +39,9 @@ export const getNavModel = (navIndex: NavIndex, id: string, fallback?: NavModel,
|
||||
};
|
||||
|
||||
export function getRootSectionForNode(node: NavModelItem): NavModelItem {
|
||||
// Don't recurse fully up the tree when nested folders is enabled
|
||||
// This is to handle folder tabs that still use getNavModel
|
||||
// Once we've transitioned those pages to build the nav model directly (as in BrowseDashboardsPage) we won't need this
|
||||
// I _think_ this is correct/safe, but put the change behind the feature toggle just in case
|
||||
if (config.featureToggles.nestedFolders) {
|
||||
return node.parentItem && node.parentItem.id !== HOME_NAV_ID ? node.parentItem : node;
|
||||
// Don't recurse fully up the folder tree when nested folders is enabled
|
||||
if (config.featureToggles.nestedFolders && node.id === FOLDER_ID) {
|
||||
return node;
|
||||
} else {
|
||||
return node.parentItem && node.parentItem.id !== HOME_NAV_ID ? getRootSectionForNode(node.parentItem) : node;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ import { config } from '@grafana/runtime';
|
||||
import { contextSrv } from 'app/core/services/context_srv';
|
||||
import { AccessControlAction, FolderDTO } from 'app/types';
|
||||
|
||||
export const FOLDER_ID = 'manage-folder';
|
||||
|
||||
export const getDashboardsTabID = (folderUID: string) => `folder-dashboards-${folderUID}`;
|
||||
export const getLibraryPanelsTabID = (folderUID: string) => `folder-library-panels-${folderUID}`;
|
||||
export const getAlertingTabID = (folderUID: string) => `folder-alerting-${folderUID}`;
|
||||
@@ -12,7 +14,7 @@ export const getSettingsTabID = (folderUID: string) => `folder-settings-${folder
|
||||
export function buildNavModel(folder: FolderDTO, parents = folder.parents): NavModelItem {
|
||||
const model: NavModelItem = {
|
||||
icon: 'folder',
|
||||
id: 'manage-folder',
|
||||
id: FOLDER_ID,
|
||||
subTitle: 'Manage folder dashboards and permissions',
|
||||
url: folder.url,
|
||||
text: folder.title,
|
||||
|
||||
Reference in New Issue
Block a user