|
|
@@ -4,14 +4,9 @@ import {useAbility} from "@casl/vue";
|
|
|
import {useOrganizationProfileStore} from "~/stores/organizationProfile";
|
|
|
import {MenuGroup, MenuItem} from "~/types/layout";
|
|
|
import {MENU_LINK_TYPE} from "~/types/enum/layout";
|
|
|
-import MainMenuBuilder from "~/services/menuBuilder/mainMenuBuilder";
|
|
|
-import WebsiteListMenuBuilder from "~/services/menuBuilder/websiteListMenuBuilder";
|
|
|
-import MyAccessesMenuBuilder from "~/services/menuBuilder/myAccessesMenuBuilder";
|
|
|
-import MyFamilyMenuBuilder from "~/services/menuBuilder/myFamilyMenuBuilder";
|
|
|
-import ConfigurationMenuBuilder from "~/services/menuBuilder/configurationMenuBuilder";
|
|
|
-import AccountMenuBuilder from "~/services/menuBuilder/accountMenuBuilder";
|
|
|
import {AccessProfile} from "~/types/interfaces";
|
|
|
import {useLayoutStore} from "~/stores/layout";
|
|
|
+import MenuComposer from "~/services/menuBuilder/menuComposer";
|
|
|
|
|
|
/**
|
|
|
* Renvoie des méthodes pour interagir avec les menus
|
|
|
@@ -34,35 +29,7 @@ export const useMenu = () => {
|
|
|
* Construct all Menus
|
|
|
*/
|
|
|
const buildAllMenu = () => {
|
|
|
- const menus = [
|
|
|
- new MainMenuBuilder(runtimeConfig, ability, organizationProfile, accessProfile as AccessProfile),
|
|
|
- new WebsiteListMenuBuilder(runtimeConfig, ability, organizationProfile, accessProfile as AccessProfile),
|
|
|
- new MyAccessesMenuBuilder(runtimeConfig, ability, organizationProfile, accessProfile as AccessProfile),
|
|
|
- new MyFamilyMenuBuilder(runtimeConfig, ability, organizationProfile, accessProfile as AccessProfile),
|
|
|
- new ConfigurationMenuBuilder(runtimeConfig, ability, organizationProfile, accessProfile as AccessProfile),
|
|
|
- new AccountMenuBuilder(runtimeConfig, ability, organizationProfile, accessProfile as AccessProfile)
|
|
|
- ]
|
|
|
-
|
|
|
- for(let menu of menus){
|
|
|
- const menuBuilt = menu.build();
|
|
|
-
|
|
|
- if(menuBuilt){
|
|
|
- layoutState.menus[menu.getMenuName()] = menuBuilt
|
|
|
-
|
|
|
- // On enregistre l'état du menu dans le store de la page
|
|
|
- if ( isMenuGroupWithChildren(menuBuilt) ) {
|
|
|
- layoutState.menusOpened[menu.getMenuName()] = false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test type d'une menu
|
|
|
- * @param args
|
|
|
- */
|
|
|
- const isMenuGroupWithChildren = (args: MenuGroup|MenuItem): boolean => {
|
|
|
- return ((args as MenuGroup).children ?? []).length > 0
|
|
|
+ MenuComposer.build(runtimeConfig, ability, organizationProfile, accessProfile as AccessProfile, layoutState)
|
|
|
}
|
|
|
|
|
|
/**
|