Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
folders
/
state
/
File Content:
navModel.ts
import { NavModel, NavModelItem } from '@grafana/data'; import { config } from '@grafana/runtime'; import { t } from 'app/core/internationalization'; import { contextSrv } from 'app/core/services/context_srv'; import { getNavSubTitle } from 'app/core/utils/navBarItem-translations'; 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}`; export const getPermissionsTabID = (folderUID: string) => `folder-permissions-${folderUID}`; export const getSettingsTabID = (folderUID: string) => `folder-settings-${folderUID}`; export function buildNavModel(folder: FolderDTO, parents = folder.parents): NavModelItem { const model: NavModelItem = { icon: 'folder', id: FOLDER_ID, subTitle: getNavSubTitle('manage-folder'), url: folder.url, text: folder.title, children: [ { active: false, icon: 'apps', id: getDashboardsTabID(folder.uid), text: t('browse-dashboards.manage-folder-nav.dashboards', 'Dashboards'), url: folder.url, }, ], }; if (parents && parents.length > 0) { const parent = parents[parents.length - 1]; const remainingParents = parents.slice(0, parents.length - 1); model.parentItem = buildNavModel(parent, remainingParents); } model.children!.push({ active: false, icon: 'library-panel', id: getLibraryPanelsTabID(folder.uid), text: t('browse-dashboards.manage-folder-nav.panels', 'Panels'), url: `${folder.url}/library-panels`, }); if ( contextSrv.hasPermission(AccessControlAction.AlertingRuleRead) && (config.unifiedAlertingEnabled || config.featureToggles.alertingPreviewUpgrade) ) { model.children!.push({ active: false, icon: 'bell', id: getAlertingTabID(folder.uid), text: t('browse-dashboards.manage-folder-nav.alert-rules', 'Alert rules'), url: `${folder.url}/alerting`, }); } return model; } export function getLoadingNav(tabIndex: number): NavModel { const main = buildNavModel({ created: '', createdBy: '', hasAcl: false, updated: '', updatedBy: '', id: 1, uid: 'loading', title: 'Loading', url: 'url', canSave: true, canEdit: true, canAdmin: true, canDelete: true, version: 0, }); main.children![tabIndex].active = true; return { main: main, node: main.children![tabIndex], }; }
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
actions.ts
530 bytes
0644
navModel.ts
2684 bytes
0644
reducers.test.ts
1864 bytes
0644
reducers.ts
1176 bytes
0644
N4ST4R_ID | Naxtarrr