aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/shared
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/shared')
-rw-r--r--client/src/app/shared/forms/form-reactive.ts3
-rw-r--r--client/src/app/shared/forms/reactive-file.component.html2
-rw-r--r--client/src/app/shared/forms/reactive-file.component.ts3
3 files changed, 7 insertions, 1 deletions
diff --git a/client/src/app/shared/forms/form-reactive.ts b/client/src/app/shared/forms/form-reactive.ts
index 441ec8203..e4f7481b5 100644
--- a/client/src/app/shared/forms/form-reactive.ts
+++ b/client/src/app/shared/forms/form-reactive.ts
@@ -10,6 +10,7 @@ export type FormReactiveValidationMessages = {
10 10
11export abstract class FormReactive { 11export abstract class FormReactive {
12 protected abstract formValidatorService: FormValidatorService 12 protected abstract formValidatorService: FormValidatorService
13 protected formChanged = false
13 14
14 form: FormGroup 15 form: FormGroup
15 formErrors: FormReactiveErrors 16 formErrors: FormReactiveErrors
@@ -31,6 +32,8 @@ export abstract class FormReactive {
31 this.formErrors[ field ] = '' 32 this.formErrors[ field ] = ''
32 const control = this.form.get(field) 33 const control = this.form.get(field)
33 34
35 if (control.dirty) this.formChanged = true
36
34 // Don't care if dirty on force check 37 // Don't care if dirty on force check
35 const isDirty = control.dirty || forceCheck === true 38 const isDirty = control.dirty || forceCheck === true
36 if (control && isDirty && !control.valid) { 39 if (control && isDirty && !control.valid) {
diff --git a/client/src/app/shared/forms/reactive-file.component.html b/client/src/app/shared/forms/reactive-file.component.html
index 9fb1c9e3e..7d691059d 100644
--- a/client/src/app/shared/forms/reactive-file.component.html
+++ b/client/src/app/shared/forms/reactive-file.component.html
@@ -4,7 +4,7 @@
4 <input 4 <input
5 type="file" 5 type="file"
6 [name]="inputName" [id]="inputName" [accept]="extensions" 6 [name]="inputName" [id]="inputName" [accept]="extensions"
7 (change)="fileChange($event)" 7 (change)="fileChange($event)" [(ngModel)]="fileInputValue"
8 /> 8 />
9 </div> 9 </div>
10 10
diff --git a/client/src/app/shared/forms/reactive-file.component.ts b/client/src/app/shared/forms/reactive-file.component.ts
index f5758b643..8d22aa56c 100644
--- a/client/src/app/shared/forms/reactive-file.component.ts
+++ b/client/src/app/shared/forms/reactive-file.component.ts
@@ -25,6 +25,7 @@ export class ReactiveFileComponent implements OnInit, ControlValueAccessor {
25 @Output() fileChanged = new EventEmitter<Blob>() 25 @Output() fileChanged = new EventEmitter<Blob>()
26 26
27 allowedExtensionsMessage = '' 27 allowedExtensionsMessage = ''
28 fileInputValue: any
28 29
29 private file: File 30 private file: File
30 31
@@ -63,6 +64,8 @@ export class ReactiveFileComponent implements OnInit, ControlValueAccessor {
63 64
64 writeValue (file: any) { 65 writeValue (file: any) {
65 this.file = file 66 this.file = file
67
68 if (!this.file) this.fileInputValue = null
66 } 69 }
67 70
68 registerOnChange (fn: (_: any) => void) { 71 registerOnChange (fn: (_: any) => void) {