From eca2665f75f8f4856733319ba82807298ed3a071 Mon Sep 17 00:00:00 2001
From: Albert <Albert.Bruns@mgm-tp.com>
Date: Tue, 1 Apr 2025 14:35:43 +0200
Subject: [PATCH] submit fix

---
 .../src/lib/keycloak-formservice.ts                |  5 ++---
 .../user-form-save-button.component.html           |  1 -
 .../src/lib/user-form/user-form.component.html     |  2 +-
 .../user/src/lib/user-form/user-form.component.ts  |  4 ++++
 .../form/formcontrol-editor.abstract.component.ts  | 14 ++++++--------
 5 files changed, 13 insertions(+), 13 deletions(-)

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 2e628b17e0..6cd713c43d 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 064289aa47..c38b3871bc 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 6b840fbfea..0d9c504aa0 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 f60e03692e..eee2cb8625 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 775483fcac..1338796de9 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 ?
-- 
GitLab