admin2iosMenu.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import {ItemMenu, ItemsMenu} from "~/types/types";
  2. import BaseMenu from "~/use/layout/Menus/baseMenu";
  3. class Admin2iosMenu extends BaseMenu{
  4. private $ability:any;
  5. constructor($config:any, $ability:any) {
  6. super($config)
  7. this.$ability = $ability
  8. }
  9. /**
  10. * Construit le menu Administration 2ios ou null si aucune page accessible
  11. * @return {ItemMenu | null}
  12. */
  13. getMenu():ItemMenu | null {
  14. const children:ItemsMenu = [];
  15. if (this.$ability().can('display', 'all_accesses_page')) {
  16. children.push(this.constructMenu('all_accesses', 'fa-users', '/all_accesses/list/', true))
  17. }
  18. if (this.$ability().can('display', 'all_organizations_page')) {
  19. children.push(this.constructMenu('all_organizations', 'fa-building', '/organization_params/list/', true))
  20. }
  21. if (this.$ability().can('display', 'tips_page')) {
  22. children.push(this.constructMenu('tips', 'fa-info-circle', '/tips/list/', true))
  23. }
  24. if (this.$ability().can('display', 'dgv_page')) {
  25. children.push(this.constructMenu('dgv', 'fa-house-damage', '/admin2ios/dgv', true))
  26. }
  27. if (this.$ability().can('display', 'cmf_cotisation_page')) {
  28. children.push(this.constructMenu('cmf_cotisation', 'fa-info-circle', '/admin2ios/cotisationcmf', true))
  29. }
  30. if (this.$ability().can('display', 'right_page')) {
  31. children.push(this.constructMenu('right_menu', 'fa-balance-scale-right', '/admin2ios/right', true))
  32. }
  33. if (this.$ability().can('display', 'tree_page')) {
  34. children.push(this.constructMenu('tree_menu', 'fa-sitemap', '/admin2ios/tree', true))
  35. }
  36. if(children.length === 1){
  37. return children[0];
  38. }
  39. return children.length > 0 ? this.constructMenu('admin2ios', 'fa-sitemap', undefined, undefined, children) : null;
  40. }
  41. }
  42. export const getAdmin2iosMenu = ($config:any, $ability:any) => new Admin2iosMenu($config, $ability).getMenu()