navModel.ts 1.2 KB

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