From 91be5eb3fe6f04f40169f4a821636f516b1096e8 Mon Sep 17 00:00:00 2001 From: Alex ORLUC <alex.orluc@maarch.org> Date: Thu, 2 Jan 2020 10:26:55 +0100 Subject: [PATCH] FEAT #12635 TIME 0:20 add communication mean field --- .../page/form/contacts-form.component.html | 7 +++-- .../page/form/contacts-form.component.ts | 28 +++++++++++++++---- src/frontend/lang/lang-fr.ts | 7 ++++- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/frontend/app/administration/contact/page/form/contacts-form.component.html b/src/frontend/app/administration/contact/page/form/contacts-form.component.html index 13f59bd5c25..d486a1ba490 100644 --- a/src/frontend/app/administration/contact/page/form/contacts-form.component.html +++ b/src/frontend/app/administration/contact/page/form/contacts-form.component.html @@ -72,6 +72,8 @@ <mat-form-field> <input matInput [formControl]="field.control" [placeholder]="field.label" (blur)="checkCompany(field);checkFilling();" [required]="field.required"> + <mat-hint *ngIf="!isEmptyValue(field.desc)" align="end" [innerHTML]="field.desc"> + </mat-hint> <mat-hint *ngIf="companyFound !== null && field.id === 'company'" align="end"> {{lang.contactsParameters_company}} <b>{{companyFound.company}}</b> {{lang.found}} @@ -81,7 +83,8 @@ {{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;" *ngIf="field.filling" matSuffix [title]="lang.targetFillingField" + <mat-icon style="height: auto;" *ngIf="field.filling" matSuffix + [title]="lang.targetFillingField" class="fas fa-circle rate_{{fillingRate.class}}"></mat-icon> </mat-form-field> </ng-container> @@ -217,7 +220,7 @@ </div> </ng-container> </div> - <div style="text-align:center;"> + <div style="text-align:center;padding-top: 10px;"> <button mat-raised-button color="default" type="button" [matMenuTriggerFor]="menu">{{lang.moreInfos}}...</button> diff --git a/src/frontend/app/administration/contact/page/form/contacts-form.component.ts b/src/frontend/app/administration/contact/page/form/contacts-form.component.ts index f5768d8af7c..85135358f54 100644 --- a/src/frontend/app/administration/contact/page/form/contacts-form.component.ts +++ b/src/frontend/app/administration/contact/page/form/contacts-form.component.ts @@ -11,6 +11,8 @@ import { startWith, switchMap, map, catchError, filter, exhaustMap, tap, debounc import { FormControl, Validators, ValidatorFn, FormGroup, FormBuilder } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; +declare var angularGlobals: any; + @Component({ selector: 'app-contact-form', templateUrl: "contacts-form.component.html", @@ -21,6 +23,7 @@ export class ContactsFormComponent implements OnInit { @ViewChild('snav', { static: true }) public sidenavLeft: MatSidenav; @ViewChild('snav2', { static: true }) public sidenavRight: MatSidenav; + lang: any = LANG; loading: boolean = false; @@ -30,6 +33,8 @@ export class ContactsFormComponent implements OnInit { @Output() onSubmitEvent = new EventEmitter<number>(); + maarch2GecUrl: string = `https://docs.maarch.org/gitbook/html/MaarchCourrier/${angularGlobals.applicationVersion.split('.')[0] + '.' + angularGlobals.applicationVersion.split('.')[1]}/guat/guat_exploitation/maarch2gec.html`; + contactUnit = [ { id: 'mainInfo', @@ -210,6 +215,18 @@ export class ContactsFormComponent implements OnInit { display: false, filling: false, values: [] + }, + { + id: 'communicationMeans', + unit: 'complement', + label: this.lang.communicationMean, + desc: `${this.lang.communicationMeanDesc} (${this.lang.see} <a href="${this.maarch2GecUrl}" target="_blank">MAARCH2GEC</a>)`, + type: 'string', + control: new FormControl(), + required: false, + display: false, + filling: false, + values: [] } ]; @@ -263,7 +280,7 @@ export class ContactsFormComponent implements OnInit { tap((data: any) => { this.initCustomElementForm(data); this.initAutocompleteAddressBan(); - + }), finalize(() => this.loading = false), catchError((err: any) => { @@ -282,7 +299,7 @@ export class ContactsFormComponent implements OnInit { tap((data: any) => { this.fillingParameters = data.contactsFilling; this.initElemForm(data); - + }), exhaustMap(() => this.http.get("../../rest/civilities")), tap((data: any) => { @@ -336,6 +353,7 @@ export class ContactsFormComponent implements OnInit { targetField = this.contactForm.filter(contact => contact.id === field.id)[0]; } if (targetField !== undefined) { + if ((element.filling && this.creationMode) || element.mandatory) { targetField.display = true; } @@ -382,10 +400,10 @@ export class ContactsFormComponent implements OnInit { valArr = []; field = this.contactForm.filter(contact => contact.id === 'customField_' + element.id)[0]; - if (field !== undefined) { + if (field !== undefined) { field.label = element.label; field.type = element.type; - field.values = element.values.map((value: any) => {return {id: value, label: value}}); + field.values = element.values.map((value: any) => { return { id: value, label: value } }); if (element.type === 'integer') { valArr.push(Validators.pattern(/^[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)$/)); field.control.setValidators(valArr); @@ -535,7 +553,7 @@ export class ContactsFormComponent implements OnInit { isEmptyValue(value: string) { - if (value === null) { + if (value === null || value === undefined) { return true; } else if (Array.isArray(value)) { diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index 08ec9da4b0e..90ce5c1acfb 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -1,3 +1,5 @@ +declare var angularGlobals: any; + export const LANG_FR = { "actives" : "Actif(s)", "ARsimple" : "AR simple", @@ -1400,10 +1402,13 @@ export const LANG_FR = { "here": "ici", "toCopyAddress": "pour copier son adresse", "badFormat": "Format incorrect", - "contactFilledTo": "Contact rempli à ", + "contactFilledTo": "Complétude à ", "targetFillingField": "Champ cible de complétude", "arGenWithModelMessage" : "Les fiches de liaisons seront générées avec les champs définis dans le model d'enregistrement du courrier.", "createContact": "Créer un contact", "diffusionListUpdated": "Liste de diffusion mise à jour", "saveModifications": "Sauvegarder les modifications", + "communicationMean": "Moyen de communication", + "communicationMeanDesc": "Lie un contact à une autre instance de maarch", + "see": "voir", }; -- GitLab