diff --git a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts index 2e628b17e00b17153893c8c9d909c99bf90c95e2..6cd713c43da4b1821c5661d3bdc56620e3a37eff 100644 --- a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts +++ b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts @@ -95,7 +95,7 @@ export abstract class KeycloakFormService<T> { } _processInvalidForm(): Observable<StateResource<T>> { - // this._showValidationErrorForAllInvalidControls(this.form); + this._showValidationErrorForAllInvalidControls(this.form); return of(createEmptyStateResource<T>()); } @@ -112,8 +112,7 @@ export abstract class KeycloakFormService<T> { } _showValidationErrorForAllInvalidControls(control: AbstractControl): void { - // if (control.invalid) - control.updateValueAndValidity(); + if (control.invalid) control.updateValueAndValidity(); if (control instanceof FormGroup || control instanceof FormArray) { Object.values(control.controls).forEach((control) => this._showValidationErrorForAllInvalidControls(control)); } diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-save-button/user-form-save-button.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form-save-button/user-form-save-button.component.html index 064289aa47b5e6ff3e9e37656407d30cd0d52c8d..c38b3871bcc6324394b118055c18a363c9fb56b9 100644 --- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-save-button/user-form-save-button.component.html +++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-save-button/user-form-save-button.component.html @@ -1,6 +1,5 @@ <ods-button-with-spinner [stateResource]="submitStateResource$ | async" - (clickEmitter)="submit()" text="Speichern" dataTestId="save-button" /> diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html index 6b840fbfea6231c914316368d43a70c433484d83..0d9c504aa0471c0081a51cec152f88a187dd92c2 100644 --- a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html +++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html @@ -23,7 +23,7 @@ unter der Lizenz sind dem Lizenztext zu entnehmen. --> -<form [formGroup]="formService.form"> +<form [formGroup]="formService.form" (ngSubmit)="onSubmit()"> <ods-spinner [stateResource]="userStateResource$ | async"> <div class="max-w-[960px]" data-test-id="user-content"> <admin-user-form-headline [isPatch]="isPatch" /> diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts index f60e03692eed409a960bdeb3b27caa64b12d1ef9..eee2cb862553ef56050bb09eadb91f73a216ad50 100644 --- a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts +++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts @@ -71,4 +71,8 @@ export class UserFormComponent implements OnInit { }), ); } + + onSubmit(): void { + this.formService.submit(); + } } diff --git a/alfa-client/libs/design-component/src/lib/form/formcontrol-editor.abstract.component.ts b/alfa-client/libs/design-component/src/lib/form/formcontrol-editor.abstract.component.ts index 775483fcac0b16da717e41dfd9632970bfdde5a6..1338796de9248221609af0d806b510ae1806da1b 100644 --- a/alfa-client/libs/design-component/src/lib/form/formcontrol-editor.abstract.component.ts +++ b/alfa-client/libs/design-component/src/lib/form/formcontrol-editor.abstract.component.ts @@ -45,20 +45,13 @@ export abstract class FormControlEditorAbstractComponent implements ControlValue this.changesSubscr = this.fieldControl.valueChanges.subscribe((val) => { this.onChange(val); - // if (this.control?.control && this.control.control.getRawValue() !== this.fieldControl.value) { - // this.control.control.setValue(this.fieldControl.value, { emitEvent: false }); - // } - this.fieldControl.setErrors(null); - this.invalidParams = []; + this.removeErrors(); }); } ngOnInit(): void { if (!this.statusSubscr && this.control) this.statusSubscr = this.control.statusChanges.subscribe(() => { - this.onChange(this.fieldControl.value); - this.fieldControl.updateValueAndValidity({ emitEvent: false }); - this.control.control.updateValueAndValidity({ emitEvent: false }); this.setErrors(); }); } @@ -98,6 +91,11 @@ export abstract class FormControlEditorAbstractComponent implements ControlValue } } + removeErrors(): void { + this.fieldControl.setErrors(null); + this._updateInvalidParams(); + } + _updateInvalidParams(): void { this.invalidParams = this.fieldControl.errors ?