From 2a6252d7bacd3adc4bc39d693e01663ed113a210 Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Thu, 26 Dec 2019 14:40:42 +0100
Subject: [PATCH] FEAT #12635 TIME 0:25 add badge filling in fields

---
 ...ontacts-page-administration.component.html | 20 ++++++++++++++-----
 ...ontacts-page-administration.component.scss |  6 ++++++
 src/frontend/lang/lang-en.ts                  |  1 +
 src/frontend/lang/lang-fr.ts                  |  1 +
 src/frontend/lang/lang-nl.ts                  |  1 +
 5 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/frontend/app/administration/contact/page/contacts-page-administration.component.html b/src/frontend/app/administration/contact/page/contacts-page-administration.component.html
index 1fe5daaa389..5d1fbaa4940 100644
--- a/src/frontend/app/administration/contact/page/contacts-page-administration.component.html
+++ b/src/frontend/app/administration/contact/page/contacts-page-administration.component.html
@@ -47,7 +47,10 @@
                         <mat-divider></mat-divider>
                         <ng-container *ngFor="let field of contactForm">
                             <button mat-menu-item *ngIf="!field.display && field.unit === 'mainInfo'"
-                                (click)="field.display=!field.display">{{field.label}}</button>
+                                (click)="field.display=!field.display">
+                                <mat-icon *ngIf="field.filling" style="height: auto;padding-right: 10px;" [title]="lang.targetFillingField" class="fas fa-circle rate_{{fillingRate.class}}"></mat-icon>
+                                <span>{{field.label}}</span>
+                            </button>
                         </ng-container>
                     </mat-menu>
 
@@ -57,7 +60,10 @@
                         <mat-divider></mat-divider>
                         <ng-container *ngFor="let field of contactForm">
                             <button mat-menu-item *ngIf="!field.display && field.unit === 'address'"
-                                (click)="field.display=!field.display">{{field.label}}</button>
+                                (click)="field.display=!field.display">
+                                <mat-icon *ngIf="field.filling" style="height: auto;padding-right: 10px;" [title]="lang.targetFillingField" class="fas fa-circle rate_{{fillingRate.class}}"></mat-icon>
+                                <span>{{field.label}}</span>
+                            </button>
                         </ng-container>
                     </mat-menu>
                     <mat-menu #complement="matMenu">
@@ -66,7 +72,10 @@
                         <mat-divider></mat-divider>
                         <ng-container *ngFor="let field of contactForm">
                             <button mat-menu-item *ngIf="!field.display && field.unit === 'complement'"
-                                (click)="field.display=!field.display">{{field.label}}</button>
+                                (click)="field.display=!field.display">
+                                <mat-icon *ngIf="field.filling" style="height: auto;padding-right: 10px;" [title]="lang.targetFillingField" class="fas fa-circle rate_{{fillingRate.class}}"></mat-icon>
+                                <span>{{field.label}}</span>
+                            </button>
                         </ng-container>
                     </mat-menu>
                     <div style="padding: 10px;">
@@ -101,6 +110,7 @@
                                                             {{lang.toCopyAddress}}</mat-hint>
                                                         <mat-error *ngIf="field.control.status!=='VALID'  && field.control.touched">
                                                             {{getErrorMsg(field.control.errors)}}</mat-error>
+                                                        <mat-icon style="height: auto;" matSuffix [title]="lang.targetFillingField" class="fas fa-circle rate_{{fillingRate.class}}"></mat-icon>
                                                     </mat-form-field>
                                                 </ng-container>
                                                 <ng-container *ngIf="field.type === 'integer'">
@@ -160,7 +170,7 @@
                                                     </mat-selection-list>
                                                 </ng-container>
                                             </p>
-                                            <button *ngIf="field.display && canDelete(field)" mat-icon-button matSuffix
+                                            <button *ngIf="field.display" [disabled]="!canDelete(field)" mat-icon-button matSuffix
                                                 color="warn" (click)="field.display = !field.display">
                                                 <mat-icon class="fa fa-trash"></mat-icon>
                                             </button>
@@ -176,7 +186,7 @@
                                                             {{lang.requiredField}}</mat-error>
                                                     </mat-form-field>
                                                 </p>
-                                                <button *ngIf="field.display && canDelete(field)" mat-icon-button
+                                                <button *ngIf="field.display" [disabled]="!canDelete(field)" mat-icon-button
                                                     matSuffix color="warn" (click)="field.display = !field.display">
                                                     <mat-icon class="fa fa-trash"></mat-icon>
                                                 </button>
diff --git a/src/frontend/app/administration/contact/page/contacts-page-administration.component.scss b/src/frontend/app/administration/contact/page/contacts-page-administration.component.scss
index ddcdb41133e..525313bf8e5 100644
--- a/src/frontend/app/administration/contact/page/contacts-page-administration.component.scss
+++ b/src/frontend/app/administration/contact/page/contacts-page-administration.component.scss
@@ -109,3 +109,9 @@
         background-color: green;
     }
 }
+
+.mat-error {
+    font-size: 10px;
+    text-align: right;
+    font-weight: bold;
+}
\ No newline at end of file
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index fdabf4251b4..7322cdb0111 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -1360,4 +1360,5 @@ export const LANG_EN = {
     "toCopyAddress": "to copy the address",
     "badFormat": "Bad format",
     "contactFilledTo": "Contact filled to",
+    "targetFillingField": "Target field for filling",
 };
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index 7087ba3e3e3..386ba086c63 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -1398,4 +1398,5 @@ export const LANG_FR = {
     "toCopyAddress": "pour copier son adresse",
     "badFormat": "Format incorrect",
     "contactFilledTo": "Contact rempli à",
+    "targetFillingField": "Champ cible de complétude",
 };
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index 8346d98d764..0ae071568ec 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -1385,4 +1385,5 @@ export const LANG_NL = {
     "toCopyAddress": "to copy the address", //_TO_TRANSLATE
     "badFormat": "Bad format", //_TO_TRANSLATE
     "contactFilledTo": "Contact filled to", //_TO_TRANSLATE
+    "targetFillingField": "Target field for filling", //_TO_TRANSLATE
 };
-- 
GitLab