From 52c7796e8ea8af436fa8695a862436c71a5a3685 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Mon, 22 Nov 2021 13:36:02 +0200 Subject: [PATCH] #7183: Do not query for authors (DMP invitation) until 3 letters have been typed. 1. multiple-auto-complete.component.ts: a. Added @Input field minLength (default 0) b. In method "_onInputFocus()" filter results, only if query >= minLength. 2. dmp-invitation-dialog.component.html: In , added property [minLength]="3" (invite users to a DMP). --- .../auto-complete/multiple/multiple-auto-complete.component.ts | 3 ++- .../app/ui/dmp/invitation/dmp-invitation-dialog.component.html | 3 ++- .../app/ui/dmp/invitation/dmp-invitation-dialog.component.ts | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts b/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts index 5f38cad45..e08ffe914 100644 --- a/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts +++ b/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts @@ -75,6 +75,7 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp get shouldLabelFloat() { return this.focused || !this.empty; } + @Input() minLength: number = 0; @Input() showNoResultsLabel: boolean = true; @Input() hidePlaceholder: boolean = false; @Input() @@ -268,7 +269,7 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp distinctUntilChanged(), distinctUntilChanged(), tap(query => this.queryValue = query), - switchMap(query => this.filter(query))); + switchMap(query => (!this.minLength || (query && query.length >= this.minLength)) ? this.filter(query) : observableOf([]))); if (this.configuration.groupingFn) { this._groupedItems = this._items.pipe(map(items => this.configuration.groupingFn(items))); } } diff --git a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation-dialog.component.html b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation-dialog.component.html index fa13b7b57..f722893f0 100644 --- a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation-dialog.component.html +++ b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation-dialog.component.html @@ -10,7 +10,8 @@ + [configuration]="usersAutoCompleteConfiguration" [showNoResultsLabel]="false" + [minLength]="3">

diff --git a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation-dialog.component.ts b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation-dialog.component.ts index 0e9299f0e..ee29a5ace 100644 --- a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation-dialog.component.ts +++ b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation-dialog.component.ts @@ -74,7 +74,7 @@ export class DmpInvitationDialogComponent extends BaseComponent implements OnIni const val = typeof(item) === 'string'? item : item.email; const regexp = new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/); return !regexp.test(val); - } + } }] };