From 42c9f2e08650189af4251a48edf14b9e90ffc0fe Mon Sep 17 00:00:00 2001
From: Albert <Albert.Bruns@mgm-tp.com>
Date: Wed, 26 Feb 2025 11:13:44 +0100
Subject: [PATCH] OZG-7620 cr anmerkungen

---
 alfa-client/libs/admin/shared/src/index.ts    |  1 +
 ...-delete-open-dialog-button.component.html} |  2 +-
 ...elete-open-dialog-button.component.spec.ts | 23 +++++++++++++++++++
 ...in-delete-open-dialog-button.component.ts} |  6 ++---
 ...orm-delete-button-container.component.html |  1 +
 ...-delete-button-container.component.spec.ts | 22 ++++++++++++++++++
 ...-form-delete-button-container.component.ts | 13 +++++++++++
 .../user-form-delete-button.component.spec.ts | 23 -------------------
 .../user-delete-dialog.component.html         |  2 +-
 .../lib/user-form/user-form.component.html    |  2 +-
 .../lib/user-form/user-form.component.spec.ts |  8 +++----
 .../src/lib/user-form/user-form.component.ts  |  8 +++----
 .../cancel-dialog-button.component.ts         |  8 +++----
 .../open-dialog-button.component.ts           |  4 +---
 14 files changed, 77 insertions(+), 46 deletions(-)
 rename alfa-client/libs/admin/{user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.html => shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.html} (63%)
 create mode 100644 alfa-client/libs/admin/shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.spec.ts
 rename alfa-client/libs/admin/{user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.ts => shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.ts} (60%)
 create mode 100644 alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.html
 create mode 100644 alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.spec.ts
 create mode 100644 alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.ts
 delete mode 100644 alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.spec.ts

diff --git a/alfa-client/libs/admin/shared/src/index.ts b/alfa-client/libs/admin/shared/src/index.ts
index 8f0992f837..4257af2818 100644
--- a/alfa-client/libs/admin/shared/src/index.ts
+++ b/alfa-client/libs/admin/shared/src/index.ts
@@ -1,4 +1,5 @@
 export * from './lib/admin-cancel-button/admin-cancel-button.component';
+export * from './lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component';
 export * from './lib/admin-save-button/admin-save-button.component';
 export * from './lib/routes';
 export * from './lib/token';
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.html b/alfa-client/libs/admin/shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.html
similarity index 63%
rename from alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.html
rename to alfa-client/libs/admin/shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.html
index eeee4c0950..a237d4035a 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.html
+++ b/alfa-client/libs/admin/shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.html
@@ -1,3 +1,3 @@
-<ods-open-dialog-button variant='outline_error' label="Löschen" dataTestId="delete-user" data-test-id="delete-user-button-host" >
+<ods-open-dialog-button variant='outline_error' label="Löschen" dataTestId="delete-user" >
   <ods-delete-icon icon />
 </ods-open-dialog-button>
\ No newline at end of file
diff --git a/alfa-client/libs/admin/shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.spec.ts b/alfa-client/libs/admin/shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.spec.ts
new file mode 100644
index 0000000000..28b1b18ace
--- /dev/null
+++ b/alfa-client/libs/admin/shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { AdminDeleteOpenDialogButtonComponent } from './admin-delete-open-dialog-button.component';
+
+describe('AdminDeleteOpenDialogButtonComponent', () => {
+  let component: AdminDeleteOpenDialogButtonComponent;
+  let fixture: ComponentFixture<AdminDeleteOpenDialogButtonComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [AdminDeleteOpenDialogButtonComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(AdminDeleteOpenDialogButtonComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.ts b/alfa-client/libs/admin/shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.ts
similarity index 60%
rename from alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.ts
rename to alfa-client/libs/admin/shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.ts
index 57b7014486..f9bcd34727 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.ts
+++ b/alfa-client/libs/admin/shared/src/lib/admin-delete-open-dialog-button/admin-delete-open-dialog-button.component.ts
@@ -3,9 +3,9 @@ import { OpenDialogButtonComponent } from '@ods/component';
 import { DeleteIconComponent } from '@ods/system';
 
 @Component({
-  selector: 'admin-user-form-delete-button',
+  selector: 'admin-delete-open-dialog-button',
   standalone: true,
   imports: [DeleteIconComponent, OpenDialogButtonComponent],
-  templateUrl: './user-form-delete-button.component.html',
+  templateUrl: './admin-delete-open-dialog-button.component.html',
 })
-export class UserFormDeleteButtonComponent {}
+export class AdminDeleteOpenDialogButtonComponent {}
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.html
new file mode 100644
index 0000000000..b49a93cae8
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.html
@@ -0,0 +1 @@
+<admin-delete-open-dialog-button />
\ No newline at end of file
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.spec.ts
new file mode 100644
index 0000000000..f85e26a0f8
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.spec.ts
@@ -0,0 +1,22 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { UserFormDeleteButtonContainerComponent } from './user-form-delete-button-container.component';
+
+describe('UserFormDeleteButtonComponent', () => {
+  let component: UserFormDeleteButtonContainerComponent;
+  let fixture: ComponentFixture<UserFormDeleteButtonContainerComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [UserFormDeleteButtonContainerComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(UserFormDeleteButtonContainerComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.ts
new file mode 100644
index 0000000000..2c66a5500b
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button-container.component.ts
@@ -0,0 +1,13 @@
+import { AdminDeleteOpenDialogButtonComponent } from '@admin-client/shared';
+import { DIALOG_COMPONENT } from '@alfa-client/ui';
+import { Component } from '@angular/core';
+import { UserDeleteDialogContainerComponent } from '../user-form-delete-dialog-container/user-delete-dialog-container.component';
+
+@Component({
+  selector: 'admin-user-form-delete-container-button',
+  standalone: true,
+  imports: [AdminDeleteOpenDialogButtonComponent],
+  providers: [{ provide: DIALOG_COMPONENT, useValue: UserDeleteDialogContainerComponent }],
+  templateUrl: './user-form-delete-button-container.component.html',
+})
+export class UserFormDeleteButtonContainerComponent {}
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.spec.ts
deleted file mode 100644
index 665f8a81d4..0000000000
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.spec.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { UserFormDeleteButtonComponent } from './user-form-delete-button.component';
-
-describe('UserFormDeleteButtonComponent', () => {
-  let component: UserFormDeleteButtonComponent;
-  let fixture: ComponentFixture<UserFormDeleteButtonComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      imports: [UserFormDeleteButtonComponent]
-    })
-    .compileComponents();
-
-    fixture = TestBed.createComponent(UserFormDeleteButtonComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog/user-delete-dialog.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog/user-delete-dialog.component.html
index 85706d197f..83b4694f02 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog/user-delete-dialog.component.html
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog/user-delete-dialog.component.html
@@ -3,7 +3,7 @@
   <p>Hinweis: Die zugewiesenen Vorgänge bleiben bestehen.</p>
 
   <div class="flex justify-between">
-    <ods-cancel-dialog-button variant='outline' data-test-id="dialog-cancel-button-host" />
+    <ods-cancel-dialog-button data-test-id="dialog-cancel-button-host" />
     <ods-button-with-spinner
       [stateResource]="deleteUserStateResource"
       (clickEmitter)="delete.emit()"
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 cce0e1ce49..5ce59646fd 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
@@ -35,7 +35,7 @@
     <div class="flex justify-between">
       <admin-user-form-save-button />
       @if (formService.isPatch()) {
-        <admin-user-form-delete-button />
+        <admin-user-form-delete-container-button data-test-id="delete-button-container"/>
       }
     </div>
   </div>
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.spec.ts
index 091b77f6ef..06b08b44e9 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.spec.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.spec.ts
@@ -48,7 +48,7 @@ describe('UserFormComponent', () => {
   let formService: Mock<UserFormService>;
 
   const userContent: string = getDataTestIdOf('user-content');
-  const deleteButton: string = getDataTestIdOf('delete-user-button-host');
+  const deleteButtonContainer: string = getDataTestIdOf('delete-button-container');
 
   beforeEach(async () => {
     formService = <any>{
@@ -168,19 +168,19 @@ describe('UserFormComponent', () => {
     });
   });
 
-  describe('admin delete button', () => {
+  describe('admin delete button container', () => {
     it('should exist', () => {
       formService.isPatch.mockReturnValue(true);
       fixture.detectChanges();
 
-      existsAsHtmlElement(fixture, deleteButton);
+      existsAsHtmlElement(fixture, deleteButtonContainer);
     });
 
     it('should not exist', () => {
       formService.isPatch.mockReturnValue(false);
       fixture.detectChanges();
 
-      notExistsAsHtmlElement(fixture, deleteButton);
+      notExistsAsHtmlElement(fixture, deleteButtonContainer);
     });
   });
 });
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 fb16e82fa9..a533ff55e3 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
@@ -23,15 +23,13 @@
  */
 import { User } from '@admin-client/user-shared';
 import { StateResource } from '@alfa-client/tech-shared';
-import { DIALOG_COMPONENT } from '@alfa-client/ui';
 import { AsyncPipe } from '@angular/common';
 import { Component, inject, OnInit } from '@angular/core';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
 import { SpinnerComponent } from '@ods/component';
 import { Observable } from 'rxjs';
 import { UserFormDataComponent } from './user-form-data/user-form-data.component';
-import { UserFormDeleteButtonComponent } from './user-form-delete-button/user-form-delete-button.component';
-import { UserDeleteDialogContainerComponent } from './user-form-delete-dialog-container/user-delete-dialog-container.component';
+import { UserFormDeleteButtonContainerComponent } from './user-form-delete-button/user-form-delete-button-container.component';
 import { UserFormHeadlineComponent } from './user-form-headline/user-form-headline.component';
 import { UserFormOrganisationsEinheitListComponent } from './user-form-organisations-einheit-list/user-form-organisations-einheit-list.component';
 import { UserFormRolesComponent } from './user-form-roles/user-form-roles.component';
@@ -40,7 +38,7 @@ import { UserFormService } from './user.formservice';
 
 @Component({
   selector: 'admin-user-form',
-  providers: [UserFormService, { provide: DIALOG_COMPONENT, useValue: UserDeleteDialogContainerComponent }],
+  providers: [UserFormService],
   templateUrl: './user-form.component.html',
   standalone: true,
   imports: [
@@ -53,7 +51,7 @@ import { UserFormService } from './user.formservice';
     UserFormOrganisationsEinheitListComponent,
     UserFormHeadlineComponent,
     UserFormSaveButtonComponent,
-    UserFormDeleteButtonComponent,
+    UserFormDeleteButtonContainerComponent,
   ],
 })
 export class UserFormComponent implements OnInit {
diff --git a/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts b/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts
index 266832542f..5d80db0f4e 100644
--- a/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts
+++ b/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts
@@ -1,6 +1,6 @@
 import { OzgcloudDialogService } from '@alfa-client/ui';
-import { Component, inject, Input } from '@angular/core';
-import { ButtonComponent, ButtonVariants } from '@ods/system';
+import { Component, inject } from '@angular/core';
+import { ButtonComponent } from '@ods/system';
 
 @Component({
   selector: 'ods-cancel-dialog-button',
@@ -8,7 +8,7 @@ import { ButtonComponent, ButtonVariants } from '@ods/system';
   imports: [ButtonComponent],
   template: `<ods-button
     (clickEmitter)="cancel()"
-    [variant]="variant"
+    variant="outline"
     text="Abbrechen"
     dataTestId="cancel-dialog"
     data-test-id="cancel-dialog"
@@ -17,8 +17,6 @@ import { ButtonComponent, ButtonVariants } from '@ods/system';
 export class CancelDialogButtonComponent {
   public readonly dialogService = inject(OzgcloudDialogService);
 
-  @Input() variant: ButtonVariants['variant'] = 'outline';
-
   public cancel(): void {
     this.dialogService.closeAll();
   }
diff --git a/alfa-client/libs/design-component/src/lib/open-dialog-button/open-dialog-button.component.ts b/alfa-client/libs/design-component/src/lib/open-dialog-button/open-dialog-button.component.ts
index 9d303e9829..2815aab6fd 100644
--- a/alfa-client/libs/design-component/src/lib/open-dialog-button/open-dialog-button.component.ts
+++ b/alfa-client/libs/design-component/src/lib/open-dialog-button/open-dialog-button.component.ts
@@ -40,9 +40,7 @@ export class OpenDialogButtonComponent {
     this.dialogService
       .openInContext(this._createComponent().instance.constructor, this.viewContainerRef)
       .closed.pipe(first())
-      .subscribe(() => {
-        this.close.emit();
-      });
+      .subscribe(this.close.emit);
   }
 
   _createComponent(): ComponentRef<any> {
-- 
GitLab