mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 16:15:42 -06:00
62 lines
1.9 KiB
TypeScript
Executable File
62 lines
1.9 KiB
TypeScript
Executable File
export class FolderPageLoader {
|
|
constructor(private backendSrv) {}
|
|
|
|
load(ctrl, uid, activeChildId) {
|
|
ctrl.navModel = {
|
|
main: {
|
|
icon: 'fa fa-folder-open',
|
|
id: 'manage-folder',
|
|
subTitle: 'Manage folder dashboards & permissions',
|
|
url: '',
|
|
text: '',
|
|
breadcrumbs: [{ title: 'Dashboards', url: 'dashboards' }],
|
|
children: [
|
|
{
|
|
active: activeChildId === 'manage-folder-dashboards',
|
|
icon: 'fa fa-fw fa-th-large',
|
|
id: 'manage-folder-dashboards',
|
|
text: 'Dashboards',
|
|
url: 'dashboards',
|
|
},
|
|
{
|
|
active: activeChildId === 'manage-folder-permissions',
|
|
icon: 'fa fa-fw fa-lock',
|
|
id: 'manage-folder-permissions',
|
|
text: 'Permissions',
|
|
url: 'dashboards/permissions',
|
|
},
|
|
{
|
|
active: activeChildId === 'manage-folder-settings',
|
|
icon: 'fa fa-fw fa-cog',
|
|
id: 'manage-folder-settings',
|
|
text: 'Settings',
|
|
url: 'dashboards/settings',
|
|
},
|
|
],
|
|
},
|
|
};
|
|
|
|
return this.backendSrv.getFolderByUid(uid).then(folder => {
|
|
ctrl.folderId = folder.id;
|
|
const folderTitle = folder.title;
|
|
const folderUrl = folder.url;
|
|
ctrl.navModel.main.text = folderTitle;
|
|
|
|
const dashTab = ctrl.navModel.main.children.find(child => child.id === 'manage-folder-dashboards');
|
|
dashTab.url = folderUrl;
|
|
|
|
if (folder.canAdmin) {
|
|
const permTab = ctrl.navModel.main.children.find(child => child.id === 'manage-folder-permissions');
|
|
permTab.url = folderUrl + '/permissions';
|
|
|
|
const settingsTab = ctrl.navModel.main.children.find(child => child.id === 'manage-folder-settings');
|
|
settingsTab.url = folderUrl + '/settings';
|
|
} else {
|
|
ctrl.navModel.main.children = [dashTab];
|
|
}
|
|
|
|
return folder;
|
|
});
|
|
}
|
|
}
|