Olivier Massot 4 年之前
父节点
当前提交
eb67884ea2
共有 41 个文件被更改,包括 147 次插入147 次删除
  1. 1 1
      components/Layout/Subheader.vue
  2. 2 2
      components/Ui/DataTable.vue
  3. 7 7
      components/Ui/Map.vue
  4. 2 2
      components/Ui/SubList.vue
  5. 3 3
      layouts/default.vue
  6. 5 1
      notes_relecture.md
  7. 5 5
      pages/organization/address/_id.vue
  8. 1 1
      services/connection/constructUrl.ts
  9. 1 1
      services/dataDeleter/dataDeleter.ts
  10. 3 3
      services/dataPersister/dataPersister.ts
  11. 2 2
      services/serializer/serializer.ts
  12. 1 1
      services/store/query.ts
  13. 3 3
      tests/unit/services/connection/constructUrl.spec.ts
  14. 1 1
      tests/unit/services/profile/accessProfile.spec.ts
  15. 1 1
      tests/unit/services/rights/abilitiesUtils.spec.ts
  16. 1 1
      tests/unit/services/rights/roleUtils.spec.ts
  17. 2 4
      tests/unit/services/serializer/denormalizer/hydra.spec.ts
  18. 2 4
      tests/unit/services/serializer/denormalizer/yaml.spec.ts
  19. 4 10
      tests/unit/services/serializer/normalizer/model.spec.ts
  20. 2 2
      tests/unit/services/store/repository.spec.ts
  21. 2 2
      types/interfaces.d.ts
  22. 5 5
      use/form/useChecker.ts
  23. 5 5
      use/form/useDirtyForm.ts
  24. 1 1
      use/form/useNavigationHelpers.ts
  25. 11 8
      use/layout/Menus/accessMenu.ts
  26. 6 6
      use/layout/Menus/accountMenu.ts
  27. 10 7
      use/layout/Menus/admin2iosMenu.ts
  28. 5 5
      use/layout/Menus/agendaMenu.ts
  29. 2 2
      use/layout/Menus/baseMenu.ts
  30. 4 4
      use/layout/Menus/billingMenu.ts
  31. 4 4
      use/layout/Menus/communicationMenu.ts
  32. 5 5
      use/layout/Menus/configurationMenu.ts
  33. 4 4
      use/layout/Menus/cotisationsMenu.ts
  34. 3 3
      use/layout/Menus/donorsMenu.ts
  35. 4 4
      use/layout/Menus/educationalMenu.ts
  36. 3 3
      use/layout/Menus/equipmentMenu.ts
  37. 3 3
      use/layout/Menus/medalsMenu.ts
  38. 5 5
      use/layout/Menus/myAccessesMenu.ts
  39. 5 5
      use/layout/Menus/myFamilyMenu.ts
  40. 4 4
      use/layout/Menus/statsMenu.ts
  41. 7 7
      use/layout/Menus/websiteMenu.ts

+ 1 - 1
components/Layout/Subheader.vue

@@ -26,7 +26,7 @@ import { defineComponent, ref, Ref } from '@nuxtjs/composition-api'
 
 export default defineComponent({
   setup () {
-    const showDateTimeRange:Ref<boolean> = ref(false)
+    const showDateTimeRange: Ref<boolean> = ref(false)
     return {
       showDateTimeRange
     }

+ 2 - 2
components/Ui/DataTable.vue

@@ -83,8 +83,8 @@ export default defineComponent({
       await $dataProvider.invoke({
         type: QUERY_TYPE.MODEL,
         model: model.value,
-        root_model: rootModel.value,
-        root_id: rootId.value
+        rootModel: rootModel.value,
+        rootId: rootId.value
       })
       entries.value = queryHelper.getFlattenEntries(query.value)
       totalEntries.value = entries.value.length

+ 7 - 7
components/Ui/Map.vue

@@ -38,12 +38,12 @@ export default defineComponent({
   setup (props, { emit }) {
     const { $dataProvider, store } = useContext()
     const { address }:ToRefs = toRefs(props)
-    const latitude:Ref<number> = ref(address.value.latitude)
-    const longitude:Ref<number> = ref(address.value.longitude)
+    const latitude: Ref<number> = ref(address.value.latitude)
+    const longitude: Ref<number> = ref(address.value.longitude)
 
-    const center:ComputedRef<Array<number>> = computed(() => [latitude.value, longitude.value])
-    const latLong:ComputedRef<Array<number>> = computed(() => [latitude.value, longitude.value])
-    const layerUrl:string = 'https://{s}.tile.osm.org/{z}/{x}/{y}.png'
+    const center: ComputedRef<Array<number>> = computed(() => [latitude.value, longitude.value])
+    const latLong: ComputedRef<Array<number>> = computed(() => [latitude.value, longitude.value])
+    const layerUrl: string = 'https://{s}.tile.osm.org/{z}/{x}/{y}.png'
 
     const updateMap = async () => {
       const response = await $dataProvider.invoke({
@@ -58,7 +58,7 @@ export default defineComponent({
         address.value.longitude = response[0].longitude
         emit('updateAddress', address.value)
       } else {
-        const alert:alert = {
+        const alert: alert = {
           type: TYPE_ALERT.ALERT,
           message: 'no_coordinate_corresponding'
         }
@@ -66,7 +66,7 @@ export default defineComponent({
       }
     }
 
-    const onMoveMarker = async (event:AnyJson) => {
+    const onMoveMarker = async (event: AnyJson) => {
       const response = await $dataProvider.invoke({
         type: QUERY_TYPE.DEFAULT,
         url: `gps-coordinate-reverse/${event.lat}/${event.lng}`

+ 2 - 2
components/Ui/SubList.vue

@@ -44,8 +44,8 @@ export default defineComponent({
       await $dataProvider.invoke({
         type: QUERY_TYPE.MODEL,
         model: model.value,
-        root_model: rootModel.value,
-        root_id: rootId.value
+        rootModel: rootModel.value,
+        rootId: rootId.value
       })
     })
 

+ 3 - 3
layouts/default.vue

@@ -31,11 +31,11 @@ export default defineComponent({
       clipped: false,
       miniVariant: false
     })
-    const displayedMenu:ComputedRef<boolean> = computed(() => store.state.profile.access.hasLateralMenu)
+    const displayedMenu: ComputedRef<boolean> = computed(() => store.state.profile.access.hasLateralMenu)
 
-    const displayedSubHeader:ComputedRef<boolean> = computed(() => store.state.profile.access.hasLateralMenu || store.state.profile.access.isTeacher)
+    const displayedSubHeader: ComputedRef<boolean> = computed(() => store.state.profile.access.hasLateralMenu || store.state.profile.access.isTeacher)
 
-    const handleOpenMenu = (miniVariant:boolean) => {
+    const handleOpenMenu = (miniVariant: boolean) => {
       properties.miniVariant = miniVariant
     }
 

+ 5 - 1
notes_relecture.md

@@ -3,12 +3,16 @@
 
 * ok pour transférer le projet gitlab sur le namespace commun?
 
-# Config
+## Config
 
 * config de l'host et du port: la doc mentionne que ce n'est pas conseillé 
   de les définir ici, en tout cas pour la prod <https://nuxtjs.org/docs/2.x/features/configuration#edit-host-and-port>
 * Vincent, avais tu vu ce plugin? https://vuex-orm.github.io/plugin-axios/guide/setup.html
 
+## Use/layout/Menus
+
+* envisageable de factoriser le code des menus dans une classe de base?
+
 # Divers
 
 * Revoir les commentaires // QTN

+ 5 - 5
pages/organization/address/_id.vue

@@ -85,11 +85,11 @@ export default defineComponent({
   name: 'organization_address',
   setup () {
     const { route, $dataProvider } = useContext()
-    const loading:Ref<boolean> = ref(true)
-    const id:number = parseInt(route.value.params.id)
+    const loading: Ref<boolean> = ref(true)
+    const id: number = parseInt(route.value.params.id)
 
     const repository: VuexRepository<Model> = repositoryHelper.getRepository(OrganizationAddressPostal)
-    const query:Query = repository.with('addressPostal', (query) => {
+    const query: Query = repository.with('addressPostal', (query) => {
       query.with('addressCountry')
     })
 
@@ -102,7 +102,7 @@ export default defineComponent({
       loading.value = false
     })
 
-    const addressItem:ComputedRef<AddressPostal|null> = computed(() => {
+    const addressItem: ComputedRef<AddressPostal|null> = computed(() => {
       const organizationAddressPostal = queryHelper.getFirstItem(query) as OrganizationAddressPostal
       return organizationAddressPostal.addressPostal
     })
@@ -122,7 +122,7 @@ export default defineComponent({
       panel: 0,
       addressItem,
       updateAddress,
-      updateAddressFromOwner: (data:any) => {
+      updateAddressFromOwner: (data: any) => {
         console.log(data)
       }
     }

+ 1 - 1
services/connection/constructUrl.ts

@@ -16,7 +16,7 @@ class ConstructUrl {
    * @param {UrlArgs} args
    * @return {string}
    */
-  public static invoke (args:UrlArgs): string {
+  public static invoke (args: UrlArgs): string {
     switch (args.type) {
       case QUERY_TYPE.DEFAULT:
         return ConstructUrl.getDefaultUrl(args.url)

+ 1 - 1
services/dataDeleter/dataDeleter.ts

@@ -6,7 +6,7 @@ import ApiError from '~/services/utils/apiError'
 import { repositoryHelper } from '~/services/store/repository'
 
 /**
- * Le DataProvider a pour rôle de supprimer des enregistrements via l'API Opentalent
+ * Le DataDeleter a pour rôle de supprimer des enregistrements via l'API Opentalent
  */
 class DataDeleter {
   private ctx !: Context

+ 3 - 3
services/dataPersister/dataPersister.ts

@@ -9,7 +9,7 @@ import ApiError from '~/services/utils/apiError'
 import DataProvider from '~/services/dataProvider/dataProvider'
 
 /**
- * Le DataProvider a pour rôle de mettre à jour les données via de l'API Opentalent
+ * Le DataPersisteer a pour rôle de mettre à jour les données via de l'API Opentalent
  */
 class DataPersister {
   private ctx !: Context
@@ -105,9 +105,9 @@ class DataPersister {
       url: args.url,
       enumType: args.enumType,
       model: args.model,
-      root_model: args.rootModel,
+      rootModel: args.rootModel,
       id: args.id,
-      root_id: args.rootId
+      rootId: args.rootId
     }
 
     return await dataProvider.provide(deserializedResponse, dataProviderArgs)

+ 2 - 2
services/serializer/serializer.ts

@@ -7,7 +7,7 @@ class Serializer {
   public static normalize (args:DataPersisterArgs) {
     for (const Normalizer of normalizers) {
       if (Normalizer.support(args.type)) {
-        return new Normalizer().normalize(args)
+        return Normalizer.normalize(args)
       }
     }
   }
@@ -15,7 +15,7 @@ class Serializer {
   public static denormalize (data: AnyJson, type: DENORMALIZER_TYPE): any {
     for (const Denormalizer of denormalizers) {
       if (Denormalizer.support(type)) {
-        return new Denormalizer().denormalize(data)
+        return Denormalizer.denormalize(data)
       }
     }
   }

+ 1 - 1
services/store/query.ts

@@ -58,7 +58,7 @@ class Query {
    */
   public getFlattenEntries (query: VuexQuery): Array<AnyJson> {
     const entries = this.getCollection(query)
-    return entries.map((entry:AnyJson) => {
+    return entries.map((entry: AnyJson) => {
       return $objectProperties.cloneAndFlatten(entry)
     })
   }

+ 3 - 3
tests/unit/services/connection/constructUrl.spec.ts

@@ -59,7 +59,7 @@ describe('invoke()', () => {
       expect(() => ConstructUrl.invoke({
         type: QUERY_TYPE.MODEL,
         model: User,
-        root_model: Organization
+        rootModel: Organization
       })).toThrow()
     })
 
@@ -72,8 +72,8 @@ describe('invoke()', () => {
       expect(ConstructUrl.invoke({
         type: QUERY_TYPE.MODEL,
         model: User,
-        root_model: Organization,
-        root_id: 1
+        rootModel: Organization,
+        rootId: 1
       })).toEqual('/api/organizations/1/users')
     })
   })

+ 1 - 1
tests/unit/services/profile/accessProfile.spec.ts

@@ -5,7 +5,7 @@ import { $accessProfile } from '~/services/profile/accessProfile'
 import { ABILITIES } from '~/types/enums'
 import { accessProfile as accessModule } from '~/tests/unit/fixture/state/profile'
 
-let ability: Ability, store:AccessStore, accessProfile:any
+let ability: Ability, store: AccessStore, accessProfile:any
 
 beforeEach(() => {
   ability = new Ability()

+ 1 - 1
tests/unit/services/rights/abilitiesUtils.spec.ts

@@ -7,7 +7,7 @@ import { $organizationProfile } from '~/services/profile/organizationProfile'
 import { accessProfile as accessModule, organizationProfile as organizationModule } from '~/tests/unit/fixture/state/profile'
 import { $roleUtils } from '~/services/rights/roleUtils'
 
-let ability: Ability, store:AnyStore, abilitiesUtils:any
+let ability: Ability, store: AnyStore, abilitiesUtils: any
 
 beforeEach(() => {
   ability = new Ability()

+ 1 - 1
tests/unit/services/rights/roleUtils.spec.ts

@@ -1,6 +1,6 @@
 import { $roleUtils } from '~/services/rights/roleUtils'
 
-let roles:Array<string>, final_role:Array<string>
+let roles: Array<string>, final_role: Array<string>
 
 beforeEach(() => {
   roles = [

+ 2 - 4
tests/unit/services/serializer/denormalizer/hydra.spec.ts

@@ -32,8 +32,7 @@ describe('denormalize()', () => {
       'hydra:itemPosition': 1
     }
 
-    const hydra = new Hydra()
-    expect(hydra.denormalize(serverResponse)).toStrictEqual<AnyJson>({
+    expect(Hydra.denormalize(serverResponse)).toStrictEqual<AnyJson>({
       '@context': '/api/contexts/Access',
       '@id': '/api/accesses/7351',
       '@type': 'Access',
@@ -99,8 +98,7 @@ describe('denormalize()', () => {
       }
     }
 
-    const hydra = new Hydra()
-    const response = hydra.denormalize(serverResponse)
+    const response = Hydra.denormalize(serverResponse)
     expect(JSON.stringify(response)).toEqual(JSON.stringify([
       {
         '@id': '/api/accesses/7351',

+ 2 - 4
tests/unit/services/serializer/denormalizer/yaml.spec.ts

@@ -14,14 +14,12 @@ describe('support()', () => {
 describe('denormalize()', () => {
   it('should throw an error if file doesnt exist', () => {
     const path = './tests/unit/fixture/files/not_exist_file.yaml'
-    const yaml = new Yaml()
-    expect(() => yaml.denormalize({ path })).toThrow()
+    expect(() => Yaml.denormalize({ path })).toThrow()
   })
 
   it('should parse a Yaml file and return a JSON Object', () => {
     const path = './tests/unit/fixture/files/test.yaml'
-    const yaml = new Yaml()
-    expect(yaml.denormalize({ path })).toStrictEqual({
+    expect(Yaml.denormalize({ path })).toStrictEqual({
       abilities: {
         accesses: {
           action: 'display',

+ 4 - 10
tests/unit/services/serializer/normalizer/model.spec.ts

@@ -23,17 +23,11 @@ describe('support()', () => {
 })
 
 describe('normalize()', () => {
-  let model:Model
-
-  beforeEach(() => {
-    model = new Model()
-  })
-
   it('should not permit args without model', () => {
-    const args:DataPersisterArgs = {
+    const args: DataPersisterArgs = {
       type: QUERY_TYPE.MODEL
     }
-    expect(() => model.normalize(args)).toThrowError('model must be present')
+    expect(() => Model.normalize(args)).toThrowError('model must be present')
   })
 
   it('should not permit normalize without item', async () => {
@@ -42,7 +36,7 @@ describe('normalize()', () => {
       model: User,
       id: 1
     }
-    expect(() => model.normalize(args)).toThrowError('Item not found')
+    expect(() => Model.normalize(args)).toThrowError('Item not found')
   })
 
   it('should normalize model to JSON', async () => {
@@ -55,6 +49,6 @@ describe('normalize()', () => {
       model: User,
       id: 1
     }
-    expect(model.normalize(args)).toStrictEqual({ id: 1, name: 'John Doe' })
+    expect(Model.normalize(args)).toStrictEqual({ id: 1, name: 'John Doe' })
   })
 })

+ 2 - 2
tests/unit/services/store/repository.spec.ts

@@ -5,7 +5,7 @@ import User from '~/tests/unit/fixture/models/User'
 import { repositoryHelper } from '~/services/store/repository'
 import { AnyStore } from '~/types/interfaces'
 
-let store:AnyStore, repository:Repository<User>
+let store: AnyStore, repository: Repository<User>
 
 beforeEach(() => {
   store = createStore()
@@ -66,7 +66,7 @@ describe('findItemFromModel()', () => {
 
 describe('findCollectionFromModel()', () => {
   it('should return the correct collection of the Model', () => {
-    const UsersArray:Array<User> = []
+    const UsersArray: Array<User> = []
     const user = repository.make()
     UsersArray.push(user)
     repository.save(user)

+ 2 - 2
types/interfaces.d.ts

@@ -104,7 +104,7 @@ interface accessState extends baseAccessState{
   originalAccess: baseAccessState
 }
 
-interface AccessStore extends Store<{profile:{access:accessState}}> {}
+interface AccessStore extends Store<{profile:{access: accessState}}> {}
 
 interface baseOrganizationState {
   id: number,
@@ -122,7 +122,7 @@ interface organizationState extends baseOrganizationState{
   networks: Array<string>,
   parents: Array<organizationState>,
 }
-interface OrganizationStore extends Store<{profile:{organization:organizationState}}> {}
+interface OrganizationStore extends Store<{profile:{organization: organizationState}}> {}
 
 interface AnyJson extends Record<string, any> {}
 interface AnyStore extends Store<any> {}

+ 5 - 5
use/form/useChecker.ts

@@ -10,13 +10,13 @@ import { DataProviders } from '~/types/interfaces'
  */
 class UseChecker {
   /**
-   * Use méthode fournissant une fonction pour tester la validité d'une Siret ainsi que la gestion du message d'erreur
+   * Use méthode fournissant une fonction pour tester la validité d'un Siret ainsi que la gestion du message d'erreur
    */
-  public static useHandleSiret (i18n:VueI18n, $dataProvider: DataProviders) {
-    const siretError:Ref<boolean> = ref(false)
-    const siretErrorMessage:Ref<string> = ref('')
+  public static useHandleSiret (i18n: VueI18n, $dataProvider: DataProviders) {
+    const siretError: Ref<boolean> = ref(false)
+    const siretErrorMessage: Ref<string> = ref('')
 
-    const checkSiret = async (siret:string) => {
+    const checkSiret = async (siret: string) => {
       const response = await $dataProvider.invoke({
         type: QUERY_TYPE.DEFAULT,
         url: 'siret-checking',

+ 5 - 5
use/form/useDirtyForm.ts

@@ -3,13 +3,13 @@ import { AnyJson, AnyStore } from '~/types/interfaces'
 /**
  * @category Use/form
  * @class UseDirtyForm
- * Use Classe pour gérer l'apparation de message si le formulaire est dirty
+ * Use Classe pour gérer l'apparition de message si le formulaire est dirty
  */
 export class UseDirtyForm {
-  private store:AnyStore
-  private handler:any
+  private store: AnyStore
+  private readonly handler: any
 
-  constructor (handler:any, store:AnyStore) {
+  constructor (handler: any, store: AnyStore) {
     this.store = store
     this.handler = handler
   }
@@ -68,4 +68,4 @@ function getEventHandler () {
   }
 }
 const handler = getEventHandler()
-export const $useDirtyForm = (store:AnyStore) => new UseDirtyForm(handler, store).invoke()
+export const $useDirtyForm = (store: AnyStore) => new UseDirtyForm(handler, store).invoke()

+ 1 - 1
use/form/useNavigationHelpers.ts

@@ -4,7 +4,7 @@ import * as _ from 'lodash'
 export class UseNavigationHelpers {
   public static expansionPanels () {
     const { route } = useContext()
-    const panel:Ref<number> = ref(0)
+    const panel: Ref<number> = ref(0)
     const activeAccordionId = route.value.query.accordion
     onMounted(() => {
       setTimeout(function () {

+ 11 - 8
use/layout/Menus/accessMenu.ts

@@ -10,25 +10,25 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Répertoire
  */
 class AccessMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
-  private $store:AnyStore;
+  private $ability: Ability;
+  private readonly $store: AnyStore;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability, $store:AnyStore) {
+  constructor ($config: NuxtConfig, $ability: Ability, $store: AnyStore) {
     super($config)
     this.$ability = $ability
     this.$store = $store
   }
 
   /**
-   * Construit le menu Répertoire ou null si aucune page accessible
+   * Construit le menu Répertoire, ou null si aucune page accessible
    * @return {ItemMenu | null}
    */
-  getMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+  getMenu (): ItemMenu | null {
+    const children: ItemsMenu = []
 
     if (this.$ability.can('display', 'accesses_page')) {
       const organization = $organizationProfile(this.$store)
@@ -58,9 +58,12 @@ class AccessMenu extends BaseMenu implements Menu {
 
     if (children.length === 1) {
       return children[0]
+    } else if (children.length > 0) {
+      return this.constructMenu('address_book', 'fa-address-book', undefined, undefined, children)
+    } else {
+      return null
     }
-    return children.length > 0 ? this.constructMenu('address_book', 'fa-address-book', undefined, undefined, children) : null
   }
 }
 
-export const getAccessMenu = ($config:NuxtConfig, $ability:Ability, $store:AnyStore) => new AccessMenu($config, $ability, $store).getMenu()
+export const getAccessMenu = ($config: NuxtConfig, $ability: Ability, $store: AnyStore) => new AccessMenu($config, $ability, $store).getMenu()

+ 6 - 6
use/layout/Menus/accountMenu.ts

@@ -9,14 +9,14 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Mon compte
  */
 class AccountMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
-  private $store:AnyStore;
+  private $ability: Ability;
+  private $store: AnyStore;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability, $store: AnyStore) {
+  constructor ($config: NuxtConfig, $ability: Ability, $store: AnyStore) {
     super($config)
     this.$ability = $ability
     this.$store = $store
@@ -26,8 +26,8 @@ class AccountMenu extends BaseMenu implements Menu {
    * Construit le menu Header Configuration ou null si aucune page accessible
    * @return {ItemMenu | null}
    */
-  getHeaderMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+  getHeaderMenu (): ItemMenu | null {
+    const children: ItemsMenu = []
 
     if (this.$ability.can('display', 'organization_page')) {
       children.push(this.constructMenu('organization_page', undefined, '/organization/edit'))
@@ -37,4 +37,4 @@ class AccountMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getAccountMenu = ($config:NuxtConfig, $ability:Ability, $store:AnyStore) => new AccountMenu($config, $ability, $store).getHeaderMenu()
+export const getAccountMenu = ($config: NuxtConfig, $ability: Ability, $store: AnyStore) => new AccountMenu($config, $ability, $store).getHeaderMenu()

+ 10 - 7
use/layout/Menus/admin2iosMenu.ts

@@ -9,13 +9,13 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Admin 2IOS
  */
 class Admin2iosMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
+  private $ability: Ability;
 
   /**
    * @constructor
-   * Initialisation des services issues du context
+   * Initialisation des services issus du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability) {
+  constructor ($config: NuxtConfig, $ability: Ability) {
     super($config)
     this.$ability = $ability
   }
@@ -24,8 +24,8 @@ class Admin2iosMenu extends BaseMenu implements Menu {
    * Construit le menu Administration 2ios ou null si aucune page accessible
    * @return {ItemMenu | null}
    */
-  getMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+  getMenu (): ItemMenu | null {
+    const children: ItemsMenu = []
 
     if (this.$ability.can('display', 'all_accesses_page')) {
       children.push(this.constructMenu('all_accesses', 'fa-users', '/all_accesses/list/', true))
@@ -57,9 +57,12 @@ class Admin2iosMenu extends BaseMenu implements Menu {
 
     if (children.length === 1) {
       return children[0]
+    } else if (children.length > 0) {
+      return this.constructMenu('admin2ios', 'fa-sitemap', undefined, undefined, children)
+    } else {
+      return null
     }
-    return children.length > 0 ? this.constructMenu('admin2ios', 'fa-sitemap', undefined, undefined, children) : null
   }
 }
 
-export const getAdmin2iosMenu = ($config:NuxtConfig, $ability:Ability) => new Admin2iosMenu($config, $ability).getMenu()
+export const getAdmin2iosMenu = ($config: NuxtConfig, $ability: Ability) => new Admin2iosMenu($config, $ability).getMenu()

+ 5 - 5
use/layout/Menus/agendaMenu.ts

@@ -9,13 +9,13 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu agenda
  */
 class AgendaMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
+  private $ability: Ability;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability) {
+  constructor ($config: NuxtConfig, $ability: Ability) {
     super($config)
     this.$ability = $ability
   }
@@ -24,8 +24,8 @@ class AgendaMenu extends BaseMenu implements Menu {
    * Construit le menu Agenda ou null si aucune page accessible
    * @return {ItemMenu | null}
    */
-  getMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+  getMenu (): ItemMenu | null {
+    const children: ItemsMenu = []
 
     if (this.$ability.can('display', 'agenda_page')) {
       children.push(this.constructMenu('schedule', 'fa-calendar-alt', '/calendar', true))
@@ -42,4 +42,4 @@ class AgendaMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getAgendaMenu = ($config:NuxtConfig, $ability:Ability) => new AgendaMenu($config, $ability).getMenu()
+export const getAgendaMenu = ($config: NuxtConfig, $ability: Ability) => new AgendaMenu($config, $ability).getMenu()

+ 2 - 2
use/layout/Menus/baseMenu.ts

@@ -7,13 +7,13 @@ import { ItemMenu } from '~/types/interfaces'
  * Classe abstraite pour chacun des menu
  */
 class BaseMenu {
-  protected $config:NuxtConfig;
+  protected $config: NuxtConfig;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig) {
+  constructor ($config: NuxtConfig) {
     this.$config = $config
   }
 

+ 4 - 4
use/layout/Menus/billingMenu.ts

@@ -9,13 +9,13 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Facturation
  */
 class BillingMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
+  private $ability: Ability;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability) {
+  constructor ($config: NuxtConfig, $ability: Ability) {
     super($config)
     this.$ability = $ability
   }
@@ -25,7 +25,7 @@ class BillingMenu extends BaseMenu implements Menu {
    * @return {ItemMenu | null}
    */
   getMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+    const children: ItemsMenu = []
 
     if (this.$ability.can('display', 'billing_product_page')) {
       children.push(this.constructMenu('billing_product', 'fa-cube', '/intangibles/list/', true))
@@ -66,4 +66,4 @@ class BillingMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getBillingMenu = ($config:NuxtConfig, $ability:Ability) => new BillingMenu($config, $ability).getMenu()
+export const getBillingMenu = ($config: NuxtConfig, $ability: Ability) => new BillingMenu($config, $ability).getMenu()

+ 4 - 4
use/layout/Menus/communicationMenu.ts

@@ -9,13 +9,13 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Communication
  */
 class CommunicationMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
+  private $ability: Ability;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability) {
+  constructor ($config: NuxtConfig, $ability: Ability) {
     super($config)
     this.$ability = $ability
   }
@@ -25,7 +25,7 @@ class CommunicationMenu extends BaseMenu implements Menu {
    * @return {ItemMenu | null}
    */
   getMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+    const children: ItemsMenu = []
 
     if (this.$ability.can('display', 'inbox_page')) {
       children.push(this.constructMenu('inbox', 'fa-inbox', '/messages/list/', true))
@@ -46,4 +46,4 @@ class CommunicationMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getCommunicationMenu = ($config:NuxtConfig, $ability:Ability) => new CommunicationMenu($config, $ability).getMenu()
+export const getCommunicationMenu = ($config: NuxtConfig, $ability: Ability) => new CommunicationMenu($config, $ability).getMenu()

+ 5 - 5
use/layout/Menus/configurationMenu.ts

@@ -9,14 +9,14 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Paramètres
  */
 class ConfigurationMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
-  private $store:AnyStore;
+  private $ability: Ability;
+  private $store: AnyStore;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability, $store: AnyStore) {
+  constructor ($config: NuxtConfig, $ability: Ability, $store: AnyStore) {
     super($config)
     this.$ability = $ability
     this.$store = $store
@@ -27,7 +27,7 @@ class ConfigurationMenu extends BaseMenu implements Menu {
    * @return {ItemMenu | null}
    */
   getHeaderMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+    const children: ItemsMenu = []
 
     if (this.$ability.can('display', 'organization_page')) {
       children.push(this.constructMenu('organization_page', undefined, '/organization/edit'))
@@ -81,4 +81,4 @@ class ConfigurationMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getConfigurationMenu = ($config:NuxtConfig, $ability:Ability, $store:AnyStore) => new ConfigurationMenu($config, $ability, $store).getHeaderMenu()
+export const getConfigurationMenu = ($config: NuxtConfig, $ability: Ability, $store: AnyStore) => new ConfigurationMenu($config, $ability, $store).getHeaderMenu()

+ 4 - 4
use/layout/Menus/cotisationsMenu.ts

@@ -9,13 +9,13 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Cotisation (CMF)
  */
 class CotisationsMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
+  private $ability: Ability;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability) {
+  constructor ($config: NuxtConfig, $ability: Ability) {
     super($config)
     this.$ability = $ability
   }
@@ -25,7 +25,7 @@ class CotisationsMenu extends BaseMenu implements Menu {
    * @return {ItemMenu | null}
    */
   getMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+    const children: ItemsMenu = []
 
     if (this.$ability.can('display', 'rate_cotisation_page')) {
       children.push(this.constructMenu('rate_cotisation', 'fa-euro-sign', '/cotisation/rate', true))
@@ -102,4 +102,4 @@ class CotisationsMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getCotisationsMenu = ($config:NuxtConfig, $ability:Ability) => new CotisationsMenu($config, $ability).getMenu()
+export const getCotisationsMenu = ($config: NuxtConfig, $ability: Ability) => new CotisationsMenu($config, $ability).getMenu()

+ 3 - 3
use/layout/Menus/donorsMenu.ts

@@ -9,13 +9,13 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Doneurs
  */
 class DonorsMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
+  private $ability: Ability;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability) {
+  constructor ($config: NuxtConfig, $ability: Ability) {
     super($config)
     this.$ability = $ability
   }
@@ -32,4 +32,4 @@ class DonorsMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getDonorsMenu = ($config:NuxtConfig, $ability:Ability) => new DonorsMenu($config, $ability).getMenu()
+export const getDonorsMenu = ($config: NuxtConfig, $ability: Ability) => new DonorsMenu($config, $ability).getMenu()

+ 4 - 4
use/layout/Menus/educationalMenu.ts

@@ -9,13 +9,13 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Suivi pédagogique
  */
 class EducationalMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
+  private $ability: Ability;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability) {
+  constructor ($config: NuxtConfig, $ability: Ability) {
     super($config)
     this.$ability = $ability
   }
@@ -25,7 +25,7 @@ class EducationalMenu extends BaseMenu implements Menu {
    * @return {ItemMenu | null}
    */
   getMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+    const children: ItemsMenu = []
 
     if (this.$ability.can('display', 'criteria_notations_page')) {
       children.push(this.constructMenu('criteria_notations', 'fa-bars', '/criteria_notations/list/', true))
@@ -58,4 +58,4 @@ class EducationalMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getEducationalMenu = ($config:NuxtConfig, $ability:Ability) => new EducationalMenu($config, $ability).getMenu()
+export const getEducationalMenu = ($config: NuxtConfig, $ability: Ability) => new EducationalMenu($config, $ability).getMenu()

+ 3 - 3
use/layout/Menus/equipmentMenu.ts

@@ -9,13 +9,13 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Matériel
  */
 class EquipmentMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
+  private $ability: Ability;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability) {
+  constructor ($config: NuxtConfig, $ability: Ability) {
     super($config)
     this.$ability = $ability
   }
@@ -32,4 +32,4 @@ class EquipmentMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getEquipmentMenu = ($config:NuxtConfig, $ability:Ability) => new EquipmentMenu($config, $ability).getMenu()
+export const getEquipmentMenu = ($config: NuxtConfig, $ability: Ability) => new EquipmentMenu($config, $ability).getMenu()

+ 3 - 3
use/layout/Menus/medalsMenu.ts

@@ -9,13 +9,13 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Médailles
  */
 class MedalsMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
+  private $ability: Ability;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability) {
+  constructor ($config: NuxtConfig, $ability: Ability) {
     super($config)
     this.$ability = $ability
   }
@@ -32,4 +32,4 @@ class MedalsMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getMedalsMenu = ($config:NuxtConfig, $ability:Ability) => new MedalsMenu($config, $ability).getMenu()
+export const getMedalsMenu = ($config: NuxtConfig, $ability: Ability) => new MedalsMenu($config, $ability).getMenu()

+ 5 - 5
use/layout/Menus/myAccessesMenu.ts

@@ -10,14 +10,14 @@ import { AnyStore, ItemMenu, ItemsMenu, Menu } from '~/types/interfaces'
  * Classe pour la construction du Menu Mon profile
  */
 class MyAccessesMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
-  private $store:AnyStore;
+  private $ability: Ability;
+  private $store: AnyStore;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability, $store: AnyStore) {
+  constructor ($config: NuxtConfig, $ability: Ability, $store: AnyStore) {
     super($config)
     this.$ability = $ability
     this.$store = $store
@@ -28,7 +28,7 @@ class MyAccessesMenu extends BaseMenu implements Menu {
    * @return {ItemMenu | null}
    */
   getHeaderMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+    const children: ItemsMenu = []
 
     _.each(this.$store.state.profile.access.multiAccesses, (access) => {
       children.push(this.constructMenu(access.organizationName, undefined, '/switch/' + access.organizationId, true))
@@ -38,4 +38,4 @@ class MyAccessesMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getMyAccessesMenu = ($config:NuxtConfig, $ability:Ability, $store:AnyStore) => new MyAccessesMenu($config, $ability, $store).getHeaderMenu()
+export const getMyAccessesMenu = ($config: NuxtConfig, $ability: Ability, $store: AnyStore) => new MyAccessesMenu($config, $ability, $store).getHeaderMenu()

+ 5 - 5
use/layout/Menus/myFamilyMenu.ts

@@ -10,14 +10,14 @@ import { AnyStore, ItemMenu, ItemsMenu, Menu } from '~/types/interfaces'
  * Classe pour la construction du Menu Famille
  */
 class MyFamilyMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
-  private $store:AnyStore;
+  private $ability: Ability;
+  private $store: AnyStore;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability, $store: AnyStore) {
+  constructor ($config: NuxtConfig, $ability: Ability, $store: AnyStore) {
     super($config)
     this.$ability = $ability
     this.$store = $store
@@ -28,7 +28,7 @@ class MyFamilyMenu extends BaseMenu implements Menu {
    * @return {ItemMenu | null}
    */
   getHeaderMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+    const children: ItemsMenu = []
 
     // Si Access des membres de la familles (enfants)
     _.each(this.$store.state.profile.access.familyAccesses, (access) => {
@@ -47,4 +47,4 @@ class MyFamilyMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getMyFamilyMenu = ($config:NuxtConfig, $ability:Ability, $store:AnyStore) => new MyFamilyMenu($config, $ability, $store).getHeaderMenu()
+export const getMyFamilyMenu = ($config: NuxtConfig, $ability: Ability, $store: AnyStore) => new MyFamilyMenu($config, $ability, $store).getHeaderMenu()

+ 4 - 4
use/layout/Menus/statsMenu.ts

@@ -9,13 +9,13 @@ import BaseMenu from '~/use/layout/Menus/baseMenu'
  * Classe pour la construction du Menu Statistiques
  */
 class StatsMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
+  private $ability: Ability;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability) {
+  constructor ($config: NuxtConfig, $ability: Ability) {
     super($config)
     this.$ability = $ability
   }
@@ -25,7 +25,7 @@ class StatsMenu extends BaseMenu implements Menu {
    * @return {ItemMenu | null}
    */
   getMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+    const children: ItemsMenu = []
 
     if (this.$ability.can('display', 'report_activity_page')) {
       children.push(this.constructMenu('report_activity', 'fa-chart-bar', '/report_activity', true))
@@ -46,4 +46,4 @@ class StatsMenu extends BaseMenu implements Menu {
   }
 }
 
-export const getStatsMenu = ($config:NuxtConfig, $ability:Ability) => new StatsMenu($config, $ability).getMenu()
+export const getStatsMenu = ($config: NuxtConfig, $ability: Ability) => new StatsMenu($config, $ability).getMenu()

+ 7 - 7
use/layout/Menus/websiteMenu.ts

@@ -10,14 +10,14 @@ import { AnyStore, ItemMenu, ItemsMenu, Menu, organizationState } from '~/types/
  * Classe pour la construction du Menu Sites internet
  */
 class WebsiteMenu extends BaseMenu implements Menu {
-  private $ability:Ability;
-  private $store:AnyStore;
+  private $ability: Ability;
+  private $store: AnyStore;
 
   /**
    * @constructor
    * Initialisation des services issues du context
    */
-  constructor ($config:NuxtConfig, $ability:Ability, $store:AnyStore) {
+  constructor ($config: NuxtConfig, $ability: Ability, $store: AnyStore) {
     super($config)
     this.$ability = $ability
     this.$store = $store
@@ -28,7 +28,7 @@ class WebsiteMenu extends BaseMenu implements Menu {
    * @return {ItemMenu | null}
    */
   getMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+    const children: ItemsMenu = []
 
     if (!this.$store.state.profile.organization.website && this.$store.state.profile.access.isAdminAccess) {
       children.push(this.constructMenu('fa-globe-europe', 'simple_modification', this.getWebsite(this.$store.state.profile.organization), false, undefined, true))
@@ -43,7 +43,7 @@ class WebsiteMenu extends BaseMenu implements Menu {
    * @return {ItemMenu | null}
    */
   getHeaderMenu ():ItemMenu | null {
-    const children:ItemsMenu = []
+    const children: ItemsMenu = []
 
     children.push(this.constructMenu(this.$store.state.profile.organization.name, undefined, this.getWebsite(this.$store.state.profile.organization), false, undefined, true))
 
@@ -54,9 +54,9 @@ class WebsiteMenu extends BaseMenu implements Menu {
     return children.length > 0 ? this.constructMenu('website', 'fa-globe-europe', undefined, undefined, children) : null
   }
 
-  getWebsite (organization:organizationState):string {
+  getWebsite (organization: organizationState):string {
     return organization.website ? organization.website : this.$config.baseURL_typo3.replace('###subDomain###', organization.subDomain)
   }
 }
 
-export const getWebsiteMenu = ($config:NuxtConfig, $ability:Ability, $store:AnyStore) => new WebsiteMenu($config, $ability, $store)
+export const getWebsiteMenu = ($config: NuxtConfig, $ability: Ability, $store: AnyStore) => new WebsiteMenu($config, $ability, $store)