From fdf04a42632c08fe289a7eb151bc770de57d4d55 Mon Sep 17 00:00:00 2001 From: Alex ORLUC <alex.orluc@maarch.org> Date: Thu, 9 Sep 2021 14:46:03 +0200 Subject: [PATCH] FIX #17934 TIME 0:40 fix autocomplete postcode front --- .../page/form/contacts-form.component.html | 2 +- .../contact/page/form/contacts-form.component.ts | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 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 f3224bbb094..762527b72df 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 @@ -280,7 +280,7 @@ <input matInput #autoCompleteInput [formControl]="field.control" [placeholder]="field.label" [matAutocomplete]="matAutocompletePostCodeTown"> <mat-autocomplete #matAutocompletePostCodeTown="matAutocomplete" (optionSelected)="selectPostCode($event)"> <mat-option *ngFor="let postcode of postcodesFilteredResult | async" [value]="postcode"> - {{postcode.postcode}} - {{postcode.town}} + {{postcode.town}} </mat-option> </mat-autocomplete> </mat-form-field> 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 e79d9cb7d56..fe4ad7200ce 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 @@ -517,8 +517,20 @@ export class ContactsFormComponent implements OnInit { if (field.id === 'addressPostcode') { this.postcodesFilteredResult = field.control.valueChanges .pipe( - startWith(''), - exhaustMap((value: string) => this.http.get('../rest/postcode?search=' + value)), + debounceTime(300), + filter((value: string) => value.length > 2), + distinctUntilChanged(), + exhaustMap((value: string) => this.http.get('../rest/autocomplete/postcodes?postcode=' + value)), + map((data: any) => data.postcodes), + ); + } + if (field.id === 'addressTown') { + this.postcodesFilteredResult = field.control.valueChanges + .pipe( + debounceTime(300), + filter((value: string) => value.length > 2), + distinctUntilChanged(), + exhaustMap((value: string) => this.http.get('../rest/autocomplete/postcodes?town=' + value)), map((data: any) => data.postcodes), ); } -- GitLab