From 90ee2a54765d8bff164b80a12e88c38989601fb7 Mon Sep 17 00:00:00 2001
From: Jeremie BRISON <ext.sopra.jbrison@grandlyon.com>
Date: Thu, 3 Dec 2020 12:03:11 +0100
Subject: [PATCH] fix(details) : fix and add enum to correct display

---
 src/app/shared/enum/demarches.enum.ts         | 16 +++---
 src/app/shared/enum/labels.emum.ts            |  8 +--
 .../structure-details.component.html          | 20 +++++---
 .../structure-details.component.ts            | 50 +++++++++++++++++++
 .../enum/access-modality.enum.ts              |  6 +--
 src/app/structure-list/enum/equipment.enum.ts |  7 +++
 6 files changed, 84 insertions(+), 23 deletions(-)
 create mode 100644 src/app/structure-list/enum/equipment.enum.ts

diff --git a/src/app/shared/enum/demarches.enum.ts b/src/app/shared/enum/demarches.enum.ts
index 27df79051..662046e3b 100644
--- a/src/app/shared/enum/demarches.enum.ts
+++ b/src/app/shared/enum/demarches.enum.ts
@@ -1,11 +1,11 @@
 export enum Demarches {
-  caf = 'Accompagnant CAF',
-  carsat = 'CARSAT',
-  cpam = 'CPAM',
-  epn = 'Espace public numérique (EPN)',
-  impots = 'Impôts',
-  logements = 'Logement',
+  caf = 'accompagnantCaf',
+  carsat = 'carsat',
+  cpam = 'cpam',
+  epn = 'espacePublicNumeriqueepn',
+  impots = 'impots',
+  logements = 'logement',
   gd_lyon = 'Grand lyon',
-  pole_emploi = 'Pôle Emploi',
-  other = 'Autres',
+  pole_emploi = 'poleEmploi',
+  other = 'autres',
 }
diff --git a/src/app/shared/enum/labels.emum.ts b/src/app/shared/enum/labels.emum.ts
index 627e7c7a4..00a766110 100644
--- a/src/app/shared/enum/labels.emum.ts
+++ b/src/app/shared/enum/labels.emum.ts
@@ -1,6 +1,6 @@
 export enum Labels {
-  pass_numerique = 'Pass numérique',
-  maison_france_service = 'Maison France Service',
-  aidants_connect = 'Aidants Connect',
-  territoire = 'Fabrique de territoire',
+  pass_numerique = 'passNumerique',
+  maison_france_service = 'maisonFranceService',
+  aidants_connect = 'aidantsConnect',
+  territoire = 'fabriqueDeTerritoire',
 }
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.html b/src/app/structure-list/components/structure-details/structure-details.component.html
index 0fd98a06c..824e1b12e 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.html
+++ b/src/app/structure-list/components/structure-details/structure-details.component.html
@@ -145,7 +145,7 @@
           fxLayoutGap="20px"
         >
           <app-svg-icon [type]="'ico'" [icon]="getAccessIcon(acces)"></app-svg-icon>
-          <p>{{ acces }}</p>
+          <p>{{ getAccessLabel(acces) }}</p>
         </div>
       </div>
     </div>
@@ -161,13 +161,17 @@
       <app-svg-icon [type]="'ico'" [icon]="'equipement'" [iconClass]="'icon-32'"></app-svg-icon>
       <h2>Équipements</h2>
     </div>
-    <div *ngIf="structure.wifi" fxLayout="row" fxLayoutAlign="none flex-end" fxLayoutGap="13px">
-      <app-svg-icon [type]="'ico'" [icon]="'wifi'"></app-svg-icon>
-      <p>Wifi en accès libre</p>
-    </div>
-    <div *ngIf="structure.ordinateurs" fxLayout="row" fxLayoutAlign="none flex-end" fxLayoutGap="13px">
-      <app-svg-icon [type]="'ico'" [icon]="'computer'"></app-svg-icon>
-      <p>Ordinateurs à disposition : {{ structure.nombre }}</p>
+    <div
+      fxLayout="row"
+      fxLayoutAlign="none flex-end"
+      fxLayoutGap="13px"
+      *ngFor="let equipement of structure.equipementsEtServicesProposes"
+    >
+      <app-svg-icon [type]="'ico'" [icon]="getEquipmentsIcon(equipement)"></app-svg-icon>
+      <p>
+        {{ getEquipmentsLabel(equipement) }}
+        <span *ngIf="equipement == 'ordinateurs'; else otherEquipments"> : {{ structure.ordinateurs }}</span>
+      </p>
     </div>
   </div>
   <!-- Labels -->
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.ts b/src/app/structure-list/components/structure-details/structure-details.component.ts
index 82fbf41c8..7a9dd35df 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.ts
+++ b/src/app/structure-list/components/structure-details/structure-details.component.ts
@@ -7,6 +7,7 @@ import { SearchService } from '../../services/search.service';
 import * as _ from 'lodash';
 import { ActivatedRoute } from '@angular/router';
 import { PrintService } from '../../../shared/service/print.service';
+import { Equipment } from '../../enum/equipment.enum';
 @Component({
   selector: 'app-structure-details',
   templateUrl: './structure-details.component.html',
@@ -54,6 +55,40 @@ export class StructureDetailsComponent implements OnInit {
     }
   }
 
+  public getEquipmentsIcon(equipment: Equipment): string {
+    switch (equipment) {
+      case Equipment.wifi:
+        return 'wifi';
+      case Equipment.bornes:
+        return 'tel';
+      case Equipment.printer:
+        return 'print';
+      case Equipment.tablet:
+        return 'tel';
+      case Equipment.computer:
+        return 'computer';
+      default:
+        return null;
+    }
+  }
+
+  public getEquipmentsLabel(equipment: Equipment): string {
+    switch (equipment) {
+      case Equipment.wifi:
+        return 'Wifi';
+      case Equipment.bornes:
+        return 'Bornes numériques';
+      case Equipment.printer:
+        return 'Imprimantes';
+      case Equipment.tablet:
+        return 'Téléphone';
+      case Equipment.computer:
+        return 'Ordinateurs à disposition';
+      default:
+        return null;
+    }
+  }
+
   public close(): void {
     this.closeDetails.emit(true);
   }
@@ -77,6 +112,21 @@ export class StructureDetailsComponent implements OnInit {
     }
   }
 
+  public getAccessLabel(accessModality: AccessModality): string {
+    switch (accessModality) {
+      case AccessModality.free:
+        return 'Accès libre';
+      case AccessModality.meeting:
+        return 'Sur rendez-vous';
+      case AccessModality.meetingOnly:
+        return 'Uniquement sur RDV';
+      case AccessModality.numeric:
+        return 'Téléphone / Visio';
+      default:
+        return null;
+    }
+  }
+
   public setServiceCategories(): void {
     this.baseSkills = this.structure.lesCompetencesDeBase.map((skill) =>
       _.find(this.baseSkillssReferentiel.modules, { id: skill })
diff --git a/src/app/structure-list/enum/access-modality.enum.ts b/src/app/structure-list/enum/access-modality.enum.ts
index 684da963f..41eacfdad 100644
--- a/src/app/structure-list/enum/access-modality.enum.ts
+++ b/src/app/structure-list/enum/access-modality.enum.ts
@@ -1,6 +1,6 @@
 export enum AccessModality {
-  free = 'Accès libre',
-  numeric = 'Téléphone / Visio',
-  meetingOnly = 'Uniquement sur RDV',
+  free = 'accesLibre',
+  numeric = 'telephoneVisio',
+  meetingOnly = 'uniquementSurRdv',
   meeting = 'Sur RDV',
 }
diff --git a/src/app/structure-list/enum/equipment.enum.ts b/src/app/structure-list/enum/equipment.enum.ts
new file mode 100644
index 000000000..fa3dfc6f1
--- /dev/null
+++ b/src/app/structure-list/enum/equipment.enum.ts
@@ -0,0 +1,7 @@
+export enum Equipment {
+  wifi = 'wifiEnAccesLibre',
+  bornes = 'bornesNumeriques',
+  printer = 'imprimantes',
+  tablet = 'tablettes',
+  computer = 'ordinateurs',
+}
-- 
GitLab