From bbc36b6b0e47c10be8693ea3e8de3904f6c114b7 Mon Sep 17 00:00:00 2001
From: Albert <Albert.Bruns@mgm-tp.com>
Date: Wed, 19 Mar 2025 12:46:23 +0100
Subject: [PATCH] OZG-725-7894 dialog container

---
 alfa-client/libs/design-system/src/index.ts   |  1 +
 .../dialog-container.component.spec.ts        | 23 +++++++++++++
 .../dialog-container.component.ts             | 13 +++++++
 ...forwarding-button-container.component.html |  4 +--
 .../forwarding-dialog.component.html          | 34 ++++++++++---------
 .../forwarding-dialog.component.spec.ts       | 10 +++---
 .../forwarding-dialog.component.ts            |  2 ++
 ...earch-organisations-einheit.component.html |  2 +-
 ...ch-organisations-einheit.component.spec.ts |  4 +++
 .../search-selected.component.spec.ts         | 12 +++----
 10 files changed, 75 insertions(+), 30 deletions(-)
 create mode 100644 alfa-client/libs/design-system/src/lib/dialog-container/dialog-container.component.spec.ts
 create mode 100644 alfa-client/libs/design-system/src/lib/dialog-container/dialog-container.component.ts

diff --git a/alfa-client/libs/design-system/src/index.ts b/alfa-client/libs/design-system/src/index.ts
index a820f6d4ce..c17fdb29f5 100644
--- a/alfa-client/libs/design-system/src/index.ts
+++ b/alfa-client/libs/design-system/src/index.ts
@@ -28,6 +28,7 @@ export * from './lib/bescheid-status-text/bescheid-status-text.component';
 export * from './lib/bescheid-wrapper/bescheid-wrapper.component';
 export * from './lib/button-card/button-card.component';
 export * from './lib/button/button.component';
+export * from './lib/dialog-container/dialog-container.component';
 export * from './lib/dropdown-menu/dropdown-menu-button-item/dropdown-menu-button-item.component';
 export * from './lib/dropdown-menu/dropdown-menu-item/dropdown-menu-item.component';
 export * from './lib/dropdown-menu/dropdown-menu-link-item/dropdown-menu-link-item.component';
diff --git a/alfa-client/libs/design-system/src/lib/dialog-container/dialog-container.component.spec.ts b/alfa-client/libs/design-system/src/lib/dialog-container/dialog-container.component.spec.ts
new file mode 100644
index 0000000000..d1f894406f
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/dialog-container/dialog-container.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { DialogContainerComponent } from './dialog-container.component';
+
+describe('DialogContainerComponent', () => {
+  let component: DialogContainerComponent;
+  let fixture: ComponentFixture<DialogContainerComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [DialogContainerComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(DialogContainerComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/alfa-client/libs/design-system/src/lib/dialog-container/dialog-container.component.ts b/alfa-client/libs/design-system/src/lib/dialog-container/dialog-container.component.ts
new file mode 100644
index 0000000000..2757af20ff
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/dialog-container/dialog-container.component.ts
@@ -0,0 +1,13 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'ods-dialog-container',
+  standalone: true,
+  imports: [],
+  template: `
+    <div class="w-[860px] rounded-lg bg-background-50 p-8">
+      <ng-content />
+    </div>
+  `,
+})
+export class DialogContainerComponent {}
diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-button-container/forwarding-button-container.component.html b/alfa-client/libs/forwarding/src/lib/forwarding-button-container/forwarding-button-container.component.html
index ad9a5561e6..bdf8537e74 100644
--- a/alfa-client/libs/forwarding/src/lib/forwarding-button-container/forwarding-button-container.component.html
+++ b/alfa-client/libs/forwarding/src/lib/forwarding-button-container/forwarding-button-container.component.html
@@ -1,4 +1,4 @@
-<!--@if (vorgangWithEingang | hasLink: vorgangWithEingangLinkRel.FORWARD_BY_OZGCLOUD) {-->
+@if (vorgangWithEingang | hasLink: vorgangWithEingangLinkRel.FORWARD_BY_OZGCLOUD) {
   @if (showAsIconButton) {
     <ods-open-dialog-button
       [tooltip]="'Vorgang weiterleiten'"
@@ -14,4 +14,4 @@
       <ods-forward-vorgang-icon icon class="fill-primary" />
     </ods-open-dialog-button>
   }
-<!--}-->
+}
diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html
index 9dbcc5ecbf..4c8e926ea5 100644
--- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html
+++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html
@@ -1,19 +1,21 @@
-<div class="w-[860px] flex flex-col max-w-full max-h-full rounded-lg bg-background-50 p-8 ">
-  <div class="flex items-center justify-between mb-4">
-    <h1 class="text-xl font-semibold text-primary">Vorgang weiterleiten</h1>
-    <ods-cancel-dialog-button showAsIconButton="true" />
-  </div>
+<ods-dialog-container>
+  <div clas="flex flex-col">
+    <div class="mb-4 flex items-center justify-between">
+      <h1 class="text-xl font-semibold text-primary">Vorgang weiterleiten</h1>
+      <ods-cancel-dialog-button showAsIconButton="true" />
+    </div>
 
-  <div class="mb-6" style="height: calc(50vh + 4.5rem)">
-    @if (!selectedSearchResult) {
-      <alfa-forwarding-search-organisations-einheit data-test-id="zufi-search" />
-    } @else {
-      <alfa-search-selected [organisationsEinheitResource]="selectedSearchResult" data-test-id="forwarding-item" />
-    }
-  </div>
+    <div class="mb-6" style="height: calc(50vh + 4.5rem)">
+      @if (!selectedSearchResult) {
+        <alfa-forwarding-search-organisations-einheit cdkFocusInitial data-test-id="zufi-search" />
+      } @else {
+        <alfa-search-selected [organisationsEinheitResource]="selectedSearchResult" data-test-id="forwarding-item" />
+      }
+    </div>
 
-  <div class="flex gap-4">
-    <alfa-forwarding-button [disabled]="!selectedSearchResult" />
-    <ods-cancel-dialog-button />
+    <div class="flex gap-4">
+      <alfa-forwarding-button [disabled]="!selectedSearchResult" />
+      <ods-cancel-dialog-button />
+    </div>
   </div>
-</div>
+</ods-dialog-container>
diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts
index 6d4454c8e3..82a577be60 100644
--- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts
+++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts
@@ -1,14 +1,14 @@
 import { existsAsHtmlElement, getMockComponent, notExistsAsHtmlElement } from '@alfa-client/test-utils';
-import { ZustaendigeStelleModule } from '@alfa-client/zustaendige-stelle';
 import { OrganisationsEinheitResource } from '@alfa-client/zustaendige-stelle-shared';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { CancelDialogButtonComponent } from '@ods/component';
-import { MockComponent, MockModule } from 'ng-mocks';
+import { MockComponent } from 'ng-mocks';
 import { getDataTestIdOf } from '../../../../../tech-shared/test/data-test';
 import { createOrganisationsEinheitResource } from '../../../../../zustaendige-stelle-shared/test/organisations-einheit';
 import { ForwardingButtonComponent } from './forwarding-button/forwarding-button.component';
-import { ForwardingItemInDialogComponent } from './forwarding-item/forwarding-item.component';
 import { ForwardingDialogComponent } from './forwarding-dialog.component';
+import { ForwardingSearchOrganisationsEinheitComponent } from './search-organisations-einheit/search-organisations-einheit.component';
+import { SearchSelectedComponent } from './search-selected/search-selected.component';
 
 describe('ForwardingDialogComponent', () => {
   let component: ForwardingDialogComponent;
@@ -24,8 +24,8 @@ describe('ForwardingDialogComponent', () => {
       declarations: [
         MockComponent(CancelDialogButtonComponent),
         MockComponent(ForwardingButtonComponent),
-        MockComponent(ForwardingItemInDialogComponent),
-        MockModule(ZustaendigeStelleModule),
+        MockComponent(SearchSelectedComponent),
+        MockComponent(ForwardingSearchOrganisationsEinheitComponent),
       ],
     }).compileComponents();
 
diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.ts
index 343171d3d5..4efb0c7949 100644
--- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.ts
+++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.ts
@@ -4,6 +4,7 @@ import { A11yModule } from '@angular/cdk/a11y';
 import { Component, Input } from '@angular/core';
 import { ReactiveFormsModule } from '@angular/forms';
 import { CancelDialogButtonComponent } from '@ods/component';
+import { DialogContainerComponent } from '@ods/system';
 import { ForwardingButtonComponent } from './forwarding-button/forwarding-button.component';
 import { ForwardingSearchOrganisationsEinheitComponent } from './search-organisations-einheit/search-organisations-einheit.component';
 import { SearchSelectedComponent } from './search-selected/search-selected.component';
@@ -19,6 +20,7 @@ import { SearchSelectedComponent } from './search-selected/search-selected.compo
     ForwardingButtonComponent,
     ForwardingSearchOrganisationsEinheitComponent,
     SearchSelectedComponent,
+    DialogContainerComponent,
   ],
   templateUrl: './forwarding-dialog.component.html',
 })
diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-organisations-einheit/search-organisations-einheit.component.html b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-organisations-einheit/search-organisations-einheit.component.html
index 80f2ebb748..410a1ed860 100644
--- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-organisations-einheit/search-organisations-einheit.component.html
+++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-organisations-einheit/search-organisations-einheit.component.html
@@ -1,3 +1,3 @@
 <ods-forwarding-item>
-  <alfa-search-zustaendige-stelle-form-container cdkFocusInitial focusOnSearchField="true"/>
+  <alfa-search-zustaendige-stelle-form-container focusOnSearchField="true"/>
 </ods-forwarding-item>
\ No newline at end of file
diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-organisations-einheit/search-organisations-einheit.component.spec.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-organisations-einheit/search-organisations-einheit.component.spec.ts
index bbaa57292a..84b0884543 100644
--- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-organisations-einheit/search-organisations-einheit.component.spec.ts
+++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-organisations-einheit/search-organisations-einheit.component.spec.ts
@@ -1,5 +1,8 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 
+import { ZustaendigeStelleModule } from '@alfa-client/zustaendige-stelle';
+import { ForwardingItemComponent } from '@ods/system';
+import { MockComponent, MockModule } from 'ng-mocks';
 import { ForwardingSearchOrganisationsEinheitComponent } from './search-organisations-einheit.component';
 
 describe('ForwardingSearchOrganisationsEinheitComponent', () => {
@@ -9,6 +12,7 @@ describe('ForwardingSearchOrganisationsEinheitComponent', () => {
   beforeEach(async () => {
     await TestBed.configureTestingModule({
       imports: [ForwardingSearchOrganisationsEinheitComponent],
+      declarations: [MockComponent(ForwardingItemComponent), MockModule(ZustaendigeStelleModule)],
     }).compileComponents();
 
     fixture = TestBed.createComponent(ForwardingSearchOrganisationsEinheitComponent);
diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-selected/search-selected.component.spec.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-selected/search-selected.component.spec.ts
index c4c5b403d6..3866c37766 100644
--- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-selected/search-selected.component.spec.ts
+++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/search-selected/search-selected.component.spec.ts
@@ -6,18 +6,18 @@ import { ForwardingItemComponent, ForwardingItemInfoComponent } from '@ods/syste
 import { MockComponent } from 'ng-mocks';
 import { createOrganisationsEinheitResource } from '../../../../../../zustaendige-stelle-shared/test/organisations-einheit';
 import { ChangeButtonContainerComponent } from './change-button-container/change-button-container.component';
-import { ForwardingItemInDialogComponent } from './forwarding-item.component';
+import { SearchSelectedComponent } from './search-selected.component';
 
-describe('ForwardingDialogForwardingItemComponent', () => {
-  let component: ForwardingItemInDialogComponent;
-  let fixture: ComponentFixture<ForwardingItemInDialogComponent>;
+describe('ForwardingSearchOrganisationsEinheitComponent', () => {
+  let component: SearchSelectedComponent;
+  let fixture: ComponentFixture<SearchSelectedComponent>;
 
   const organisationsEinheitResource: OrganisationsEinheitResource = createOrganisationsEinheitResource();
   const anschrift: Anschrift = organisationsEinheitResource.anschrift;
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      imports: [ForwardingItemInDialogComponent],
+      imports: [SearchSelectedComponent],
       declarations: [
         MockComponent(ChangeButtonContainerComponent),
         MockComponent(ForwardingItemComponent),
@@ -25,7 +25,7 @@ describe('ForwardingDialogForwardingItemComponent', () => {
       ],
     }).compileComponents();
 
-    fixture = TestBed.createComponent(ForwardingItemInDialogComponent);
+    fixture = TestBed.createComponent(SearchSelectedComponent);
     component = fixture.componentInstance;
     component.organisationsEinheitResource = organisationsEinheitResource;
     fixture.detectChanges();
-- 
GitLab