folder_page_loader.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import _ from 'lodash';
  2. export class FolderPageLoader {
  3. constructor(private backendSrv) {}
  4. load(ctrl, uid, activeChildId) {
  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' }, { title: ' ' }],
  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: 'fa fa-fw fa-cog',
  31. id: 'manage-folder-settings',
  32. text: 'Settings',
  33. url: 'dashboards/settings',
  34. },
  35. ],
  36. },
  37. };
  38. return this.backendSrv.getDashboardByUid(uid).then(result => {
  39. ctrl.folderId = result.dashboard.id;
  40. const folderTitle = result.dashboard.title;
  41. ctrl.navModel.main.text = '';
  42. ctrl.navModel.main.breadcrumbs = [{ title: 'Dashboards', url: 'dashboards' }, { title: folderTitle }];
  43. const folderUrl = result.meta.url;
  44. const dashTab = _.find(ctrl.navModel.main.children, {
  45. id: 'manage-folder-dashboards',
  46. });
  47. dashTab.url = folderUrl;
  48. const permTab = _.find(ctrl.navModel.main.children, {
  49. id: 'manage-folder-permissions',
  50. });
  51. permTab.url = folderUrl + '/permissions';
  52. const settingsTab = _.find(ctrl.navModel.main.children, {
  53. id: 'manage-folder-settings',
  54. });
  55. settingsTab.url = folderUrl + '/settings';
  56. return result;
  57. });
  58. }
  59. }