Fix non-multipl os-search-val-selector

Fixes a bug there non multiple uses of search value
selector was submitting the value twice due to late
alterations of internal form objects
This commit is contained in:
Sean 2020-11-09 15:33:58 +01:00
parent 7b0f8e3c25
commit a188abed48
2 changed files with 8 additions and 5 deletions

View File

@ -6,7 +6,7 @@
(openedChange)="openSelect($event)" (openedChange)="openSelect($event)"
> >
<!-- Custom display of selected items --> <!-- Custom display of selected items -->
<mat-select-trigger> <mat-select-trigger *ngIf="multiple">
<ng-container *ngIf="selectedItems?.length"> <ng-container *ngIf="selectedItems?.length">
<span *ngFor="let item of selectedItems; let i = index"> <span *ngFor="let item of selectedItems; let i = index">
{{ item.getTitle() | translate }}<span *ngIf="i < selectedItems.length - 1">, </span> {{ item.getTitle() | translate }}<span *ngIf="i < selectedItems.length - 1">, </span>

View File

@ -124,9 +124,12 @@ export class SearchValueSelectorComponent extends BaseFormControlComponentDirect
} }
public get selectedItems(): Selectable[] { public get selectedItems(): Selectable[] {
return this.selectableItems && this.contentForm.value if (this.multiple && this.selectableItems?.length && this.contentForm.value) {
? this.selectableItems.filter(item => this.contentForm.value.includes(item.id)) return this.selectableItems.filter(item => {
: []; return this.contentForm.value.includes(item.id);
});
}
return [];
} }
public controlType = 'search-value-selector'; public controlType = 'search-value-selector';
@ -197,7 +200,7 @@ export class SearchValueSelectorComponent extends BaseFormControlComponentDirect
} }
public onSelectionChange(change: MatOptionSelectionChange): void { public onSelectionChange(change: MatOptionSelectionChange): void {
if (change.isUserInput) { if (this.multiple && change.isUserInput) {
const value = change.source.value; const value = change.source.value;
this.addRemoveId(value); this.addRemoveId(value);
} }