mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
71 lines
2.2 KiB
TypeScript
Executable File
71 lines
2.2 KiB
TypeScript
Executable File
import _ from 'lodash';
|
|
|
|
export class FolderPageLoader {
|
|
constructor(private backendSrv, private $routeParams) {}
|
|
|
|
load(ctrl, folderId, activeChildId) {
|
|
ctrl.navModel = {
|
|
main: {
|
|
icon: 'fa fa-folder-open',
|
|
id: 'manage-folder',
|
|
subTitle: 'Manage folder dashboards & permissions',
|
|
url: '',
|
|
text: '',
|
|
breadcrumbs: [{ title: 'Dashboards', url: 'dashboards' }, { title: ' ' }],
|
|
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.getDashboard('db', this.$routeParams.slug).then(result => {
|
|
const folderTitle = result.dashboard.title;
|
|
ctrl.navModel.main.text = '';
|
|
ctrl.navModel.main.breadcrumbs = [{ title: 'Dashboards', url: 'dashboards' }, { title: folderTitle }];
|
|
|
|
const folderUrl = this.createFolderUrl(folderId, result.meta.type, result.meta.slug);
|
|
|
|
const dashTab = _.find(ctrl.navModel.main.children, {
|
|
id: 'manage-folder-dashboards',
|
|
});
|
|
dashTab.url = folderUrl;
|
|
|
|
const permTab = _.find(ctrl.navModel.main.children, {
|
|
id: 'manage-folder-permissions',
|
|
});
|
|
permTab.url = folderUrl + '/permissions';
|
|
|
|
const settingsTab = _.find(ctrl.navModel.main.children, {
|
|
id: 'manage-folder-settings',
|
|
});
|
|
settingsTab.url = folderUrl + '/settings';
|
|
|
|
return result;
|
|
});
|
|
}
|
|
|
|
createFolderUrl(folderId: number, type: string, slug: string) {
|
|
return `dashboards/folder/${folderId}/${slug}`;
|
|
}
|
|
}
|