FolderPageLoader.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { BackendSrv } from 'app/core/services/backend_srv';
  2. export class FolderPageLoader {
  3. constructor(private backendSrv: BackendSrv) {}
  4. load(ctrl: any, uid: any, activeChildId: any) {
  5. ctrl.navModel = {
  6. main: {
  7. icon: 'fa fa-folder-open',
  8. id: 'manage-folder',
  9. subTitle: 'Manage folder dashboards & permissions',
  10. url: '',
  11. text: '',
  12. breadcrumbs: [{ title: 'Dashboards', url: 'dashboards' }],
  13. children: [
  14. {
  15. active: activeChildId === 'manage-folder-dashboards',
  16. icon: 'fa fa-fw fa-th-large',
  17. id: 'manage-folder-dashboards',
  18. text: 'Dashboards',
  19. url: 'dashboards',
  20. },
  21. {
  22. active: activeChildId === 'manage-folder-permissions',
  23. icon: 'fa fa-fw fa-lock',
  24. id: 'manage-folder-permissions',
  25. text: 'Permissions',
  26. url: 'dashboards/permissions',
  27. },
  28. {
  29. active: activeChildId === 'manage-folder-settings',
  30. icon: 'gicon gicon-cog',
  31. id: 'manage-folder-settings',
  32. text: 'Settings',
  33. url: 'dashboards/settings',
  34. },
  35. ],
  36. },
  37. };
  38. return this.backendSrv.getFolderByUid(uid).then((folder: any) => {
  39. ctrl.folderId = folder.id;
  40. const folderTitle = folder.title;
  41. const folderUrl = folder.url;
  42. ctrl.navModel.main.text = folderTitle;
  43. const dashTab = ctrl.navModel.main.children.find((child: any) => child.id === 'manage-folder-dashboards');
  44. dashTab.url = folderUrl;
  45. if (folder.canAdmin) {
  46. const permTab = ctrl.navModel.main.children.find((child: any) => child.id === 'manage-folder-permissions');
  47. permTab.url = folderUrl + '/permissions';
  48. const settingsTab = ctrl.navModel.main.children.find((child: any) => child.id === 'manage-folder-settings');
  49. settingsTab.url = folderUrl + '/settings';
  50. } else {
  51. ctrl.navModel.main.children = [dashTab];
  52. }
  53. return folder;
  54. });
  55. }
  56. }