From 57aaa7ae8358fabf489be17c8111e93afeec67e0 Mon Sep 17 00:00:00 2001
From: "hamza.hramchi" <hamza.hramchi@xelians.fr>
Date: Fri, 16 Oct 2020 14:27:41 +0200
Subject: [PATCH] FEAT #14383 TIME 1 replace the button with a drop-down list
 and save the mode

---
 ...ustom-fields-administration.component.html | 18 ++++++++----------
 .../custom-fields-administration.component.ts | 19 +++++++++++--------
 src/lang/lang-fr.json                         |  3 ++-
 3 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/src/frontend/app/administration/customField/custom-fields-administration.component.html b/src/frontend/app/administration/customField/custom-fields-administration.component.html
index 52b592096f5..94ff17a9624 100644
--- a/src/frontend/app/administration/customField/custom-fields-administration.component.html
+++ b/src/frontend/app/administration/customField/custom-fields-administration.component.html
@@ -42,6 +42,14 @@
                                             <input matInput name="label" [(ngModel)]="custom.label"
                                                 [placeholder]="this.translate.instant('lang.label')" [value]="custom.label">
                                         </mat-form-field>
+                                        <mat-form-field>
+                                            <mat-label>{{'lang.displayMode' | translate}}</mat-label>
+                                            <mat-select name="mode" title="{{'lang.displayMode' | translate}}" [(ngModel)] ="custom.mode">
+                                                <mat-option *ngFor="let item of mode" [value]="item.value">
+                                                    {{ 'lang.' + item.label | translate}}
+                                                </mat-option>
+                                            </mat-select>
+                                        </mat-form-field>
                                     </div>
                                     <div class="col-md-12" style="display: flex;align-items: center;">
                                         <div>
@@ -49,16 +57,6 @@
                                                 mat-mini-fab color="primary" (click)="switchSQLMode(custom)">
                                                 <mat-icon class="fas fa-database" style="height: auto;"></mat-icon>
                                             </button>
-                                            <button *ngIf="custom.mode === 'form'; else elseBlock" mat-mini-fab color="primary" style="margin-left: 4px;" title="{{'lang.displayAsTechnicalData' | translate}}"
-                                                (click)="mode='technical'">
-                                                <mat-icon class="fas fa-code" style="height: auto;"></mat-icon>
-                                            </button>
-                                            <ng-template #elseBlock>
-                                                <button mat-mini-fab color="default" style="margin-left: 4px;" title="{{'lang.displayInForm' | translate}}"
-                                                (click)="mode='form'">
-                                                <mat-icon class="fas fa-stream" style="height: auto;"></mat-icon>
-                                            </button>
-                                            </ng-template>
                                         </div>
                                         <div style="flex:1;"
                                             *ngIf="['select', 'radio', 'checkbox'].indexOf(custom.type) > -1">
diff --git a/src/frontend/app/administration/customField/custom-fields-administration.component.ts b/src/frontend/app/administration/customField/custom-fields-administration.component.ts
index c012e4080bf..52901bfd397 100644
--- a/src/frontend/app/administration/customField/custom-fields-administration.component.ts
+++ b/src/frontend/app/administration/customField/custom-fields-administration.component.ts
@@ -64,7 +64,16 @@ export class CustomFieldsAdministrationComponent implements OnInit {
     ];
     customFields: any[] = [];
     customFieldsClone: any[] = [];
-    mode: string = 'form';
+    mode: any[] = [
+        {
+            'label' : 'displayInForm',
+            'value' : 'form'
+        },
+        {
+            'label' : 'displayAsTechnicalData',
+            'value' : 'technical'
+        }
+    ];
 
     incrementCreation: number = 1;
 
@@ -181,12 +190,7 @@ export class CustomFieldsAdministrationComponent implements OnInit {
     }
 
     updateCustomField(customField: any, indexCustom: number) {
-
         const customFieldToUpdate = { ...customField };
-        if (customField.mode !== this.mode) {
-            customFieldToUpdate.mode = 'technical';
-        }
-        customFieldToUpdate.mode = this.mode;
         if (!customField.SQLMode) {
             customField.values = customField.values.filter((x: any, i: any, a: any) => a.map((info: any) => info.label).indexOf(x.label) === i);
             // TO FIX DATA BINDING SIMPLE ARRAY VALUES
@@ -222,7 +226,7 @@ export class CustomFieldsAdministrationComponent implements OnInit {
     }
 
     isModified(customField: any, indexCustomField: number) {
-        if (JSON.stringify(customField) === JSON.stringify(this.customFieldsClone[indexCustomField]) || customField.label === '' || this.SQLMode || JSON.stringify(customField.mode) === this.mode) {
+        if (JSON.stringify(customField) === JSON.stringify(this.customFieldsClone[indexCustomField]) || customField.label === '' || this.SQLMode || customField.mode === '') {
             return true;
         } else {
             return false;
@@ -281,5 +285,4 @@ export class CustomFieldsAdministrationComponent implements OnInit {
             return true;
         }
     }
-
 }
diff --git a/src/lang/lang-fr.json b/src/lang/lang-fr.json
index 2161345d57a..4b0d0e4cb84 100644
--- a/src/lang/lang-fr.json
+++ b/src/lang/lang-fr.json
@@ -2096,6 +2096,7 @@
     "casEnabled": "Authentification CAS activée",
     "displayAsTechnicalData" : "Afficher en tant que donnée technique",
     "displayInForm" : "Afficher dans le formulaire",
-    "technicalInformations" : "Informations techniques"
+    "technicalInformations" : "Informations techniques",
+    "displayMode" :"Mode d'affichage"
 
 }
-- 
GitLab