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