From 30f0d928305c8f9f2476829ac30e2c0d70dd746a Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Fri, 25 Sep 2020 16:20:07 +0200
Subject: [PATCH] FEAT #14002 TIME 0:15 fix issuing site empty value

---
 .../issuing-site-input.component.html         |  2 +-
 .../indexing/issuing-site-input.component.ts  | 25 ++++++++++++-------
 .../indexing-form.component.html              |  2 +-
 .../registered-mail-import.component.ts       |  2 +-
 4 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.html b/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.html
index 16b80795bad..6a81e97d966 100644
--- a/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.html
+++ b/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.html
@@ -2,7 +2,7 @@
     <plugin-select-search
         *ngIf="!loading"
         [label]="'lang.issuingSite' | translate" [placeholderLabel]="'lang.issuingSite' | translate"
-        [formControlSelect]="control" [datas]="issuingSiteList"
+        [formControlSelect]="control" [showResetOption]="showResetOption" [datas]="issuingSiteList"
         (afterSelected)="afterSelected.emit($event);setAddress($event)" style="width:100%;">
     </plugin-select-search>
     <mat-card *ngIf="issuingSiteAddress !== null" color="primary">
diff --git a/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.ts b/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.ts
index 15eecc03332..abbd5b74775 100644
--- a/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.ts
+++ b/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.ts
@@ -28,8 +28,11 @@ export class IssuingSiteInputComponent implements OnInit {
      * FormControl used when autocomplete is used in form and must be catched in a form control.
      */
     @Input() control: FormControl = new FormControl('');
+
     @Input() registedMailType: string = null;
 
+    @Input() showResetOption: boolean = false;
+
 
     @Output() afterSelected = new EventEmitter<string>();
 
@@ -75,15 +78,19 @@ export class IssuingSiteInputComponent implements OnInit {
     }
 
     setAddress(id: any) {
-        this.http.get(`../rest/registeredMail/sites/${id}`).pipe(
-            tap((data: any) => {
-                this.issuingSiteAddress = data['site'];
-            }),
-            catchError((err: any) => {
-                this.notify.handleSoftErrors(err);
-                return of(false);
-            })
-        ).subscribe();
+        if (id === null) {
+            this.issuingSiteAddress = null;
+        } else {
+            this.http.get(`../rest/registeredMail/sites/${id}`).pipe(
+                tap((data: any) => {
+                    this.issuingSiteAddress = data['site'];
+                }),
+                catchError((err: any) => {
+                    this.notify.handleSoftErrors(err);
+                    return of(false);
+                })
+            ).subscribe();
+        }
     }
 
     goTo() {
diff --git a/src/frontend/app/indexation/indexing-form/indexing-form.component.html b/src/frontend/app/indexation/indexing-form/indexing-form.component.html
index b955edd081d..1b4b60e933f 100644
--- a/src/frontend/app/indexation/indexing-form/indexing-form.component.html
+++ b/src/frontend/app/indexation/indexing-form/indexing-form.component.html
@@ -208,7 +208,7 @@
                                     </app-contact-autocomplete>
                                 </ng-container>
                                 <ng-container *ngIf="field.identifier === 'registeredMail_issuingSite'">
-                                    <app-issuing-site-input #appIssuingSiteInput [registedMailType]="arrFormControl['registeredMail_type'].value" [control]="arrFormControl[field.identifier]" (afterSelected)="launchEvent($event, field)" style="width:100%;">
+                                    <app-issuing-site-input #appIssuingSiteInput [registedMailType]="arrFormControl['registeredMail_type'].value" [control]="arrFormControl[field.identifier]" [showResetOption]="adminMode || !field.mandatory" (afterSelected)="launchEvent($event, field)" style="width:100%;">
                                     </app-issuing-site-input>
                                 </ng-container>
                                 <ng-container *ngIf="field.identifier === 'registeredMail_recipient'">
diff --git a/src/frontend/app/registeredMail/import/registered-mail-import.component.ts b/src/frontend/app/registeredMail/import/registered-mail-import.component.ts
index c7cc576f9f7..975a302de8c 100644
--- a/src/frontend/app/registeredMail/import/registered-mail-import.component.ts
+++ b/src/frontend/app/registeredMail/import/registered-mail-import.component.ts
@@ -198,7 +198,7 @@ export class RegisteredMailImportComponent implements OnInit {
     }
 
     getLabel(id: string, value: any) {
-        if (id === 'registeredMail_issuingSite') {
+        if (id === 'registeredMail_issuingSite' && !this.functionsService.empty(value)) {
             const sites = this.contactColumns.filter((col: any) => col.id === 'registeredMail_issuingSite')[0].values;
             return sites.filter((site: any) => site.id === value)[0].label;
         } else if ([true, false].indexOf(value) > -1) {
-- 
GitLab