| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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' }],
- 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 = folderTitle;
- const folderUrl = this.createFolderUrl(folderId, result.meta.slug);
- const dashTab = ctrl.navModel.main.children.find(child => child.id === 'manage-folder-dashboards');
- dashTab.url = folderUrl;
- if (result.meta.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 result;
- });
- }
- createFolderUrl(folderId: number, slug: string) {
- return `dashboards/folder/${folderId}/${slug}`;
- }
- }
|