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}`; } }