Browse Source

improve error management at start

Olivier Massot 2 năm trước cách đây
mục cha
commit
253f45200c

+ 7 - 3
components/Layout/AlertBar/SwitchYear.vue

@@ -6,11 +6,11 @@ Barre d'alerte qui s'affiche lorsque l'utilisateur n'est pas sur l'année couran
 
 <template>
   <!-- TODO : fonctionnement à valider -->
-  <UiSystemBar v-if="show" text-color="warning">
+  <UiSystemBar v-if="show" class="theme-warning">
     {{$t('not_current_year')}}
 
-    <a @click="resetYear">
-      <strong class="text-neutral-strong">
+    <a @click="resetYear" id="resetLink">
+      <strong class="pl-2 text-neutral-strong">
         {{$t('not_current_year_reset')}}
       </strong>
     </a>
@@ -58,4 +58,8 @@ Barre d'alerte qui s'affiche lorsque l'utilisateur n'est pas sur l'année couran
   height: 20px;
   margin: 0 6px;
 }
+
+#resetLink:hover {
+  cursor: pointer;
+}
 </style>

+ 11 - 1
components/Layout/MainMenu.vue

@@ -20,7 +20,7 @@ Prend en paramètre une liste de ItemMenu et les met en forme
         class="left-menu"
     >
       <!-- TODO: que se passe-t-il si le menu ne comprend qu'un seul MenuItem? -->
-      <div v-for="(item, i) in menu.children" :key="i">
+      <div v-for="(item, i) in items" :key="i">
 
         <!-- Cas 1 : l'item n'a pas d'enfants, c'est un lien -->
         <v-list-item
@@ -76,6 +76,7 @@ Prend en paramètre une liste de ItemMenu et les met en forme
 import {useMenu} from "~/composables/layout/useMenu";
 import {computed} from "@vue/reactivity";
 import { useDisplay } from 'vuetify'
+import {MenuGroup} from "~/types/layout";
 
 const { getMenu, hasMenu, isInternalLink, setMenuState, isMenuOpened } = useMenu()
 
@@ -87,6 +88,15 @@ const hasMainMenu = computed(() => hasMenu('Main'))
 
 const isOpened = computed(() => isMenuOpened('Main'))
 
+let items
+if (menu === null) {
+  items = []
+} else if (menu.hasOwnProperty('children')) {
+  items = (menu as MenuGroup).children ?? []
+} else {
+  items = [menu]
+}
+
 // En vue lg+, on affiche toujours le menu
 const displayMenu = computed(() => {
   return menu !== null && hasMenu('Main') && (lgAndUp.value || isOpened.value)

+ 1 - 4
services/layout/menuBuilder/myFamilyMenuBuilder.ts

@@ -14,7 +14,6 @@ export default class MyFamilyMenuBuilder extends AbstractMenuBuilder {
    */
   build(): MenuGroup | null {
     const children: MenuItems = []
-
     // Si Access des membres de la familles (enfants)
     _.each(this.accessProfile.familyAccesses, (access) => {
       const url = `/switch_user/${this.organizationProfile.id}/${this.accessProfile.id}/${access.id}`
@@ -25,14 +24,12 @@ export default class MyFamilyMenuBuilder extends AbstractMenuBuilder {
 
       children.push(this.createItem(`${access.givenName} ${access.name}`, icon, url, MENU_LINK_TYPE.V1))
     })
-
     // Si on est en compte switch, on doit pouvoir retourner au compte d'origine
     const originalAccess = this.accessProfile.originalAccess
-    if (originalAccess && !originalAccess.isSuperAdminAccess) {
+    if (originalAccess && !_.isEmpty(originalAccess) && !originalAccess.isSuperAdminAccess) {
       const url = `/switch_user/${originalAccess.organization.id}/${originalAccess.id}/exit`
       children.push(this.createItem(`${originalAccess.givenName} ${originalAccess.name}`, undefined, url, MENU_LINK_TYPE.V1))
     }
-
     if (children.length > 0) {
       return this.createGroup('familyAccesses', {name: 'fas fa-users'}, children)
     }

+ 1 - 1
stores/accessProfile.ts

@@ -93,7 +93,7 @@ export const useAccessProfileStore = defineStore('accessProfile', () => {
    * @param role
    */
   const hasRole = (role: string): boolean => {
-    return roles.value.includes(role)
+    return roles.value && roles.value.includes(role)
   }
 
   const setProfile = (profile: any) => {

+ 3 - 3
stores/organizationProfile.ts

@@ -27,7 +27,7 @@ export const useOrganizationProfileStore = defineStore('organizationProfile', ()
    * @return {boolean}
    */
   const isCmf = computed( (): boolean => {
-    return networks.value.filter((network: string) => {
+    return networks.value && networks.value.filter((network: string) => {
       return network === runtimeConfig.cmf_network
     }).length > 0
   })
@@ -38,7 +38,7 @@ export const useOrganizationProfileStore = defineStore('organizationProfile', ()
    * @return {boolean}
    */
   const isFfec = computed( (): boolean => {
-    return networks.value.filter((network: string) => {
+    return networks.value && networks.value.filter((network: string) => {
       return network === runtimeConfig.ffec_network
     }).length > 0
   })
@@ -142,7 +142,7 @@ export const useOrganizationProfileStore = defineStore('organizationProfile', ()
   })
 
   const hasModule = (module: string): boolean => {
-    return modules.value.includes(module)
+    return modules.value && modules.value.includes(module)
   }
 
   // Actions