Arborescence des pages

Le client est livré avec plusieurs modules permettant l'activation de certaines fonctionnalités.

Il est alors possible de choisir d'activer ou non ces modules avant le build du client pour sélectionner "à la carte" les fonctionnalités nécessaires à l'établissement.
En parallèle, un module client est souvent couplé avec un microservice côté backend dédié à cette même fonctionnalité.

Pour ne pas inclure une fonctionnalité sur l'application, il conviendra donc de ne pas activer le module côté client et de ne pas déployer le microservice correspondant côté backend.

L'activation et le paramétrage des modules du client se fait dans le fichier user-frontend-ionic/src/environments/environment.ts

La liste des modules paramètrables se situent sous la variable moduleConfigs :

environment.ts
moduleConfigs: [
    {
      moduleName: 'auth',
      module: AuthModule,
      config: {},
      enabled: true,
    },
    {
      moduleName: 'calendar',
      module: CalendarModule,
      config: { numberOfEventsLimit: 3 },
      enabled: true,
    },
    {
      moduleName: 'cardsPage',
      module: CardsPageModule,
      config: { knownErrors: ['NO_PHOTO', 'NO_ACTIVE_CARD', 'UNPAID_FEES'] },
      enabled: true,
    },
    {
      moduleName: 'chatbot',
      module: ChatbotModule,
      config: { chatbotLogoRegex: /_ully5/i },
      enabled: true,
    },
// ...
  • moduleName : nom du module
  • module : référence à la classe du module Angular
  • config : configuration propre au module (exemple pour le module calendar, numberOfEventsLimit permet de définir le nombre d'événement à afficher à l'utilisateur par défaut)
  • enabled : indique si le module doit être inclu ou non dans le projet


Il est possible de supprimer tout un bloc de déclaration d'un module au lieu de passer la variable enabled à false si vous le souhaitez pour faire de la place.

Liste des modules activables et paramétrables

  • auth : Authentification CAS
  • calendar : Affichage des prochains événements du calendrier
  • cardsPage : Cartes dématérialisées
  • chatbot : Agent conversationnel
  • clocking : Gestion du temps de travail
  • contactUs : Formulaire de contact
  • contacts : Annuaire des étudiants et personnels
  • importantNews : Bandeau d'information
  • map : Plans
  • notifications : Notifications internes
  • reservations : Réservation de matériel
  • restaurants : Menus des restos U du CROUS
  • rss : Actualités via flux
  • schedule : Emploi du temps
  • socialNetwork : Réseaux sociaux
  • staticPages : Affichage des pages statiques
  • unreadMail : Affichage du nombre de mail non lus dans la messagerie
  • matomo : collecte de statistiques matomo


Le module Matomo est le seul module qui ne nécessite pas un microservice côté backend

Retirer les modules au moment du build

Le paramétrage ci-dessus permet d'indiquer à Angular que les modules sont à inclure ou non dans son système de routing. Mais cela n'empêche pas la compilation des sources de ces modules, pour créer un dossier dist de chacun. 

Pour éviter de build inutilement les sources d'un module qui ne sera pas activé il convient alors de modifier le script npm module:build-all présent dans le fichier user-frontend-ionic/package.json :

"module:build-all": "npm run module:build shared && npm run module:build preferences && npm run module:build features && npm run module:build auth && npm run module:build map && npm run module:build rss && npm run module:build cards && npm run module:build schedule && npm run module:build contacts && npm run module:build notifications && npm run module:build important-news && npm run module:build clocking && npm run module:build reservation && npm run module:build menu && npm run module:build chatbot && npm run module:build static-pages && npm run module:build social-network && npm run module:build contact-us && npm run module:build restaurants && npm run module:build unread-mail && npm run module:build calendar",

Localisez le ou les modules que vous ne souhaitez pas activer et retirez le bloc de script npm les concernant.


Par exemple, si je ne souhaite pas inclure la fonctionnalité Cartes Dématérialisées, il faudra retirer le bloc `&& npm run module:build cards` (en plus bien évidemment de le marquer enabled: false dans le fichier environment.ts)

Références à ces modules

Il conviendra également en parallèle de s'assurer qu'aucune référence ou lien vers les modules désactivés ne soient présents côté CMS Headless.
Par exemple si le module des Cartes Dématérialisées est désactivé, il faudra veiller à ce que l'entrée 'Carte' dans le menu soit retirée.

  • Aucune étiquette