folder_page_loader.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import _ from "lodash";
  2. export class FolderPageLoader {
  3. constructor(private backendSrv, private $routeParams) { }
  4. load(ctrl, folderId, activeChildId) {
  5. ctrl.navModel = {
  6. main: {
  7. icon: 'fa fa-folder-open',
  8. id: 'manage-folder',
  9. subTitle: 'Manage folder dashboards & permissions',
  10. url: '/fsdfds',
  11. text: '',
  12. breadcrumbs: [
  13. { title: 'Dashboards', uri: '/dashboards' },
  14. { title: ' ' },
  15. ],
  16. children: [
  17. {
  18. active: activeChildId === 'manage-folder-dashboards',
  19. icon: 'fa fa-fw fa-th-large',
  20. id: 'manage-folder-dashboards',
  21. text: 'Dashboards',
  22. url: '/dashboards'
  23. },
  24. {
  25. active: activeChildId === 'manage-folder-permissions',
  26. icon: 'fa fa-fw fa-lock',
  27. id: 'manage-folder-permissions',
  28. text: 'Permissions',
  29. url: '/dashboards/permissions'
  30. }
  31. ]
  32. }
  33. };
  34. this.backendSrv.getDashboard(this.$routeParams.type, this.$routeParams.slug).then(result => {
  35. const folderTitle = result.dashboard.title;
  36. ctrl.navModel.main.text = '';
  37. ctrl.navModel.main.breadcrumbs = [
  38. { title: 'Dashboards', uri: '/dashboards' },
  39. { title: folderTitle }
  40. ];
  41. const folderUrl = `/dashboards/folder/${folderId}/${result.meta.type}/${result.meta.slug}`;
  42. const dashTab = _.find(ctrl.navModel.main.children, { id: 'manage-folder-dashboards' });
  43. dashTab.url = folderUrl;
  44. const permTab = _.find(ctrl.navModel.main.children, { id: 'manage-folder-permissions' });
  45. permTab.url = folderUrl + '/permissions';
  46. });
  47. }
  48. }