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