educationalMenu.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import {ItemMenu, ItemsMenu} from "~/types/interfaces";
  2. import BaseMenu from "~/use/layout/Menus/baseMenu";
  3. class EducationalMenu 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 Suivi pédagogique 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', 'criteria_notations_page')) {
  16. children.push(this.constructMenu('criteria_notations', 'fa-bars', '/criteria_notations/list/', true))
  17. }
  18. if (this.$ability().can('display', 'seizure_period_page')) {
  19. children.push(this.constructMenu('seizure_period', 'fa-calendar-alt', '/education_teachers/list/', true))
  20. }
  21. if (this.$ability().can('display', 'test_seizure_page')) {
  22. children.push(this.constructMenu('test_seizure', 'fa-pencil-alt', '/education_input/list/', true))
  23. }
  24. if (this.$ability().can('display', 'test_validation_page')) {
  25. children.push(this.constructMenu('test_validation', 'fa-check', '/education_notations/list/', true))
  26. }
  27. if (this.$ability().can('display', 'examen_results_page')) {
  28. children.push(this.constructMenu('examen_results', 'fa-graduation-cap', '/examen_convocations/list/', true))
  29. }
  30. if (this.$ability().can('display', 'education_by_student_validation_page')) {
  31. children.push(this.constructMenu('education_by_student_validation', 'fa-check-square', '/education_by_student/list/', true))
  32. }
  33. if(children.length === 1){
  34. return children[0];
  35. }
  36. return children.length > 0 ? this.constructMenu('education_state', 'fa-graduation-cap', undefined, undefined, children) : null;
  37. }
  38. }
  39. export const getEducationalMenu = ($config:any, $ability:any) => new EducationalMenu($config, $ability).getMenu()