From a944c7dc8996762783efd0c8aa98129327e55067 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 30 Apr 2020 10:46:28 +0200 Subject: [PATCH] Touch fixed with editors. --- .../forms/stock-photo-editor.component.ts | 1 + .../forms/editors/autocomplete.component.ts | 1 + .../forms/editors/tag-editor.component.ts | 20 +++++++++++-------- .../forms/references-dropdown.component.ts | 6 ++---- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/frontend/app/features/content/shared/forms/stock-photo-editor.component.ts b/frontend/app/features/content/shared/forms/stock-photo-editor.component.ts index 9eb45dfb6..a7d8a5a5e 100644 --- a/frontend/app/features/content/shared/forms/stock-photo-editor.component.ts +++ b/frontend/app/features/content/shared/forms/stock-photo-editor.component.ts @@ -70,6 +70,7 @@ export class StockPhotoEditorComponent extends StatefulControlComponent { this.callChange(value); + this.callTouched(); })); } diff --git a/frontend/app/framework/angular/forms/editors/autocomplete.component.ts b/frontend/app/framework/angular/forms/editors/autocomplete.component.ts index e8f0f8b06..a672ec83d 100644 --- a/frontend/app/framework/angular/forms/editors/autocomplete.component.ts +++ b/frontend/app/framework/angular/forms/editors/autocomplete.component.ts @@ -216,6 +216,7 @@ export class AutocompleteComponent extends StatefulControlComponent i !== index)); + this.updateItems(this.snapshot.items.filter((_, i) => i !== index), true); } public resetSize() { @@ -396,7 +396,7 @@ export class TagEditorComponent extends StatefulControlComponentthis.addInput.value; if (!value || value.length === 0) { - this.updateItems(this.snapshot.items.slice(0, this.snapshot.items.length - 1)); + this.updateItems(this.snapshot.items.slice(0, this.snapshot.items.length - 1), false); return false; } @@ -436,7 +436,7 @@ export class TagEditorComponent extends StatefulControlComponent x.id !== tagValue.id)); + this.updateItems(this.snapshot.items.filter(x => x.id !== tagValue.id), true); } } @@ -495,7 +495,7 @@ export class TagEditorComponent extends StatefulControlComponent 0; } - private updateItems(items: ReadonlyArray) { + private updateItems(items: ReadonlyArray, touched: boolean) { this.next(s => ({ ...s, items })); if (items.length === 0 && this.undefinedWhenEmpty) { @@ -549,6 +549,10 @@ export class TagEditorComponent extends StatefulControlComponent x.value)); } + if (touched) { + this.callTouched(); + } + this.resetSize(); } } diff --git a/frontend/app/shared/components/forms/references-dropdown.component.ts b/frontend/app/shared/components/forms/references-dropdown.component.ts index 34268523f..ea10772b6 100644 --- a/frontend/app/shared/components/forms/references-dropdown.component.ts +++ b/frontend/app/shared/components/forms/references-dropdown.component.ts @@ -77,22 +77,20 @@ export class ReferencesDropdownComponent extends StatefulControlComponent { if (this.selectionControl.enabled) { if (value && value.id) { - this.callTouched(); - if (this.mode === 'Single') { this.callChange(value.id); } else { this.callChange([value.id]); } } else { - this.callTouched(); - if (this.mode === 'Single') { this.callChange(null); } else { this.callChange([]); } } + + this.callTouched(); } })); }