navModel.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { FolderDTO } from 'app/types';
  2. import { NavModelItem, NavModel } from '@grafana/ui';
  3. export function buildNavModel(folder: FolderDTO): NavModelItem {
  4. return {
  5. icon: 'fa fa-folder-open',
  6. id: 'manage-folder',
  7. subTitle: 'Manage folder dashboards & permissions',
  8. url: '',
  9. text: folder.title,
  10. breadcrumbs: [{ title: 'Dashboards', url: 'dashboards' }],
  11. children: [
  12. {
  13. active: false,
  14. icon: 'fa fa-fw fa-th-large',
  15. id: `folder-dashboards-${folder.uid}`,
  16. text: 'Dashboards',
  17. url: folder.url,
  18. },
  19. {
  20. active: false,
  21. icon: 'fa fa-fw fa-lock',
  22. id: `folder-permissions-${folder.uid}`,
  23. text: 'Permissions',
  24. url: `${folder.url}/permissions`,
  25. },
  26. {
  27. active: false,
  28. icon: 'gicon gicon-cog',
  29. id: `folder-settings-${folder.uid}`,
  30. text: 'Settings',
  31. url: `${folder.url}/settings`,
  32. },
  33. ],
  34. };
  35. }
  36. export function getLoadingNav(tabIndex: number): NavModel {
  37. const main = buildNavModel({
  38. id: 1,
  39. uid: 'loading',
  40. title: 'Loading',
  41. url: 'url',
  42. canSave: false,
  43. version: 0,
  44. });
  45. main.children[tabIndex].active = true;
  46. return {
  47. main: main,
  48. node: main.children[tabIndex],
  49. };
  50. }