From aa0f2f5fa39aaaf1d4f820f406e2b4a3f87e2f76 Mon Sep 17 00:00:00 2001 From: sebo <sebastian.bergandy@external.mgm-cp.com> Date: Tue, 4 Mar 2025 16:17:08 +0100 Subject: [PATCH] OZG-6185 remove bescheid from vorgang detail --- alfa-client/libs/vorgang-detail/src/index.ts | 1 - .../bescheiden-button.component.ts | 14 +- .../bescheiden.formservice.spec.ts | 578 -------------- .../bescheiden.formservice.ts | 307 -------- .../bescheiden.model.ts | 30 - ...scheiden-result-attachments.component.html | 55 -- ...eiden-result-attachments.component.spec.ts | 374 --------- ...bescheiden-result-attachments.component.ts | 109 --- ...-bescheiden-result-dokument.component.html | 67 -- ...scheiden-result-dokument.component.spec.ts | 236 ------ ...il-bescheiden-result-dokument.component.ts | 90 --- ...bescheiden-result-nachricht.component.html | 52 -- ...cheiden-result-nachricht.component.spec.ts | 237 ------ ...l-bescheiden-result-nachricht.component.ts | 80 -- ...il-bescheiden-result-status.component.html | 30 - ...bescheiden-result-status.component.spec.ts | 63 -- ...tail-bescheiden-result-status.component.ts | 33 - ...ng-detail-bescheiden-result.component.html | 134 ---- ...detail-bescheiden-result.component.spec.ts | 719 ------------------ ...gang-detail-bescheiden-result.component.ts | 184 ----- ...tail-bescheiden-step-button.component.html | 86 --- ...l-bescheiden-step-button.component.spec.ts | 132 ---- ...detail-bescheiden-step-button.component.ts | 52 -- ...ail-bescheiden-step-buttons.component.html | 42 - ...-bescheiden-step-buttons.component.spec.ts | 85 --- ...etail-bescheiden-step-buttons.component.ts | 41 - ...etail-bescheiden-step-title.component.html | 28 - ...il-bescheiden-step-title.component.spec.ts | 44 -- ...-detail-bescheiden-step-title.component.ts | 33 - ...bescheiden-abbrechen-button.component.html | 32 - ...cheiden-abbrechen-button.component.spec.ts | 46 -- ...l-bescheiden-abbrechen-button.component.ts | 33 - ...bescheiden-abbrechen-dialog.component.html | 61 -- ...cheiden-abbrechen-dialog.component.spec.ts | 164 ---- ...l-bescheiden-abbrechen-dialog.component.ts | 70 -- ...escheiden-antrag-bescheiden.component.html | 54 -- ...heiden-antrag-bescheiden.component.spec.ts | 73 -- ...-bescheiden-antrag-bescheiden.component.ts | 35 - ...scheiden-bescheid-versenden.component.html | 53 -- ...eiden-bescheid-versenden.component.spec.ts | 188 ----- ...bescheiden-bescheid-versenden.component.ts | 65 -- ...heiden-attachment-hochladen.component.html | 36 - ...den-attachment-hochladen.component.spec.ts | 226 ------ ...scheiden-attachment-hochladen.component.ts | 100 --- ...cheid-automatisch-erstellen.component.html | 40 - ...id-automatisch-erstellen.component.spec.ts | 160 ---- ...escheid-automatisch-erstellen.component.ts | 58 -- ...scheiden-dokument-hochladen.component.html | 39 - ...eiden-dokument-hochladen.component.spec.ts | 125 --- ...bescheiden-dokument-hochladen.component.ts | 82 -- ...eiden-dokumente-hinzufuegen.component.html | 36 - ...en-dokumente-hinzufuegen.component.spec.ts | 70 -- ...cheiden-dokumente-hinzufuegen.component.ts | 44 -- ...ail-bescheiden-step-content.component.html | 40 - ...-bescheiden-step-content.component.spec.ts | 91 --- ...etail-bescheiden-step-content.component.ts | 44 -- ...il-bescheiden-steps-content.component.html | 69 -- ...bescheiden-steps-content.component.spec.ts | 262 ------- ...tail-bescheiden-steps-content.component.ts | 100 --- ...heiden-ueberspringen-button.component.html | 32 - ...den-ueberspringen-button.component.spec.ts | 67 -- ...scheiden-ueberspringen-button.component.ts | 44 -- ...heiden-ueberspringen-dialog.component.html | 68 -- ...den-ueberspringen-dialog.component.spec.ts | 173 ----- ...scheiden-ueberspringen-dialog.component.ts | 68 -- ...ang-detail-bescheiden-steps.component.html | 34 - ...-detail-bescheiden-steps.component.spec.ts | 63 -- ...rgang-detail-bescheiden-steps.component.ts | 36 - ...il-bescheiden-weiter-button.component.html | 36 - ...bescheiden-weiter-button.component.spec.ts | 114 --- ...tail-bescheiden-weiter-button.component.ts | 61 -- .../vorgang-detail-bescheiden.component.html | 54 -- ...organg-detail-bescheiden.component.spec.ts | 210 ----- .../vorgang-detail-bescheiden.component.ts | 88 --- .../vorgang-detail-page.component.ts | 17 +- .../src/lib/vorgang-detail.module.ts | 72 +- 76 files changed, 11 insertions(+), 7658 deletions(-) delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts diff --git a/alfa-client/libs/vorgang-detail/src/index.ts b/alfa-client/libs/vorgang-detail/src/index.ts index d9615b0082..765983a28a 100644 --- a/alfa-client/libs/vorgang-detail/src/index.ts +++ b/alfa-client/libs/vorgang-detail/src/index.ts @@ -23,5 +23,4 @@ */ export * from './lib/aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component'; export * from './lib/aktenzeichen-editable/aktenzeichen-editable.component'; -export * from './lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model'; export * from './lib/vorgang-detail.module'; diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts index 14105a1893..2438d67f49 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts @@ -21,22 +21,16 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { BescheidWizardContainerComponent } from '@alfa-client/bescheid'; +import { BescheidWizardContainerComponent, BescheidWizardDialogData } from '@alfa-client/bescheid'; import { BescheidWizardDialogResult } from '@alfa-client/bescheid-shared'; import { CommandResource } from '@alfa-client/command-shared'; import { createEmptyStateResource, isNotNil, StateResource } from '@alfa-client/tech-shared'; import { OzgcloudDialogService } from '@alfa-client/ui'; -import { - VorgangCommandService, - VorgangService, - VorgangWithEingangLinkRel, - VorgangWithEingangResource, -} from '@alfa-client/vorgang-shared'; +import { VorgangCommandService, VorgangService, VorgangWithEingangLinkRel, VorgangWithEingangResource, } from '@alfa-client/vorgang-shared'; import { DialogRef } from '@angular/cdk/dialog'; import { Component, Input, OnInit } from '@angular/core'; import { hasLink } from '@ngxp/rest'; import { Observable, of } from 'rxjs'; -import { BescheidenDialogData } from '../../vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model'; @Component({ selector: 'alfa-bescheiden-button', @@ -87,10 +81,10 @@ export class BescheidenButtonComponent implements OnInit { } public openBescheidenWizard(): void { - const dialogData: BescheidenDialogData = { vorgangWithEingangResource: this.vorgang }; + const dialogData: BescheidWizardDialogData = { vorgangWithEingangResource: this.vorgang }; const dialogRef: DialogRef<BescheidWizardDialogResult> = this.ozgcloudDialogService.openWizard< BescheidWizardContainerComponent, - BescheidenDialogData, + BescheidWizardDialogData, BescheidWizardDialogResult >(BescheidWizardContainerComponent, dialogData); dialogRef.closed.subscribe((dialogResult: BescheidWizardDialogResult) => this.handleBescheidWizardClosed(dialogResult)); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts deleted file mode 100644 index f69a1d6f6d..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts +++ /dev/null @@ -1,578 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { - Bescheid, - BescheidLinkRel, - BescheidResource, - BescheidSendBy, - BescheidService, - DocumentResource, -} from '@alfa-client/bescheid-shared'; -import { BinaryFileResource } from '@alfa-client/binary-file-shared'; -import { CommandLinkRel, CommandResource } from '@alfa-client/command-shared'; -import { - EMPTY_STRING, - StateResource, - createStateResource, - formatForDatabase, -} from '@alfa-client/tech-shared'; -import { Mock, mock, useFromMock } from '@alfa-client/test-utils'; -import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; -import { registerLocaleData } from '@angular/common'; -import localeDe from '@angular/common/locales/de'; -import { fakeAsync, tick } from '@angular/core/testing'; -import { UntypedFormBuilder } from '@angular/forms'; -import { faker } from '@faker-js/faker'; -import { Resource, ResourceUri } from '@ngxp/rest'; -import { cold } from 'jest-marbles'; -import { - createCommandResource, - createCommandStateResource, -} from 'libs/command-shared/test/command'; -import { toResource } from 'libs/tech-shared/test/resource'; -import { of } from 'rxjs'; -import { - createBescheid, - createBescheidResource, -} from '../../../../../bescheid-shared/src/test/bescheid'; -import { createDocumentResource } from '../../../../../bescheid-shared/src/test/document'; -import { createBinaryFileResource } from '../../../../../binary-file-shared/test/binary-file'; -import { singleCold } from '../../../../../tech-shared/test/marbles'; -import { createVorgangWithEingangResource } from '../../../../../vorgang-shared/test/vorgang'; -import { BescheidenFormService } from './bescheiden.formservice'; - -registerLocaleData(localeDe); - -describe('BescheidenFormService', () => { - let service: BescheidenFormService; - let bescheidService: Mock<BescheidService>; - const now: Date = new Date(); - Date.now = jest.fn().mockReturnValue(now); - - beforeEach(() => { - bescheidService = mock(BescheidService); - service = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService)); - }); - - describe('constructor', () => { - it('should initialize form beschieden am', () => { - expect(service.getValue().beschiedenAm).toEqual(formatForDatabase(now)); - }); - - it('should initialize form bewilligt', () => { - expect(service.getValue().bewilligt).toBeTruthy(); - }); - - it('should initialize form send by', () => { - expect(service.getValue().sendBy).toEqual(BescheidSendBy.NACHRICHT); - }); - - it('should initialize form bescheid dokument', () => { - expect(service.getValue().bescheidDocument).toBeNull(); - }); - - it('should initialize form attachments', () => { - expect(service.getValue().attachments).toEqual([]); - }); - - it('should initialize form nachricht subject', () => { - expect(service.getValue().nachrichtSubject).toEqual(EMPTY_STRING); - }); - - it('should initialize form nachricht text', () => { - expect(service.getValue().nachrichtText).toEqual(EMPTY_STRING); - }); - }); - - describe('init', () => { - it('should subscribe to sendBy', () => { - service.subscribeToSendBy = jest.fn(); - - service.init(); - - expect(service.subscribeToSendBy).toHaveBeenCalled(); - }); - }); - - describe('subscribe to send by', () => { - it('should update send by on value change', () => { - service.updateSendByManual = jest.fn(); - - service.subscribeToSendBy(); - service.form.controls[BescheidenFormService.FIELD_SEND_BY].patchValue(BescheidSendBy.MANUAL); - - expect(service.updateSendByManual).toHaveBeenCalled(); - }); - }); - - describe('update send by manual', () => { - it('should set to true if its manual', () => { - service.updateSendByManual(BescheidSendBy.MANUAL); - - expect(service.sendByManual.value).toBeTruthy(); - }); - it('should set to false if its nachricht', () => { - service.updateSendByManual(BescheidSendBy.NACHRICHT); - - expect(service.sendByManual.value).toBeFalsy(); - }); - it('should not emit if value not changed', () => { - service.sendByManual.next(true); - service.sendByManual.next = jest.fn(); - - service.updateSendByManual(BescheidSendBy.MANUAL); - - expect(service.sendByManual.next).not.toHaveBeenCalled(); - }); - it('should emit on value change', () => { - service.sendByManual.next(false); - service.sendByManual.next = jest.fn(); - - service.updateSendByManual(BescheidSendBy.MANUAL); - - expect(service.sendByManual.next).toHaveBeenCalled(); - }); - }); - - describe('initializeFormChanges', () => { - it('should emit initial form value', () => { - expect(service.getBescheidChanges()).toBeObservable( - cold('a', { - a: { - beschiedenAm: now, - bewilligt: true, - attachments: [], - bescheidDocument: null, - sendBy: BescheidSendBy.NACHRICHT, - nachrichtSubject: '', - nachrichtText: '', - }, - }), - ); - }); - }); - - describe('getValue', () => { - let getFormValue: jest.Mock; - - beforeEach(() => { - getFormValue = service.getFormValue = jest.fn(); - getFormValue.mockReturnValue({ beschiedenAm: now, bewilligt: 'true' }); - }); - - it('should call getFormValue', () => { - service.getValue(); - - expect(getFormValue).toHaveBeenCalled(); - }); - - it('should return bescheid', () => { - const value: Bescheid = service.getValue(); - - expect(value).toEqual({ bewilligt: true, beschiedenAm: formatForDatabase(now) } as Bescheid); - }); - }); - - describe('getValueWithApproved', () => { - it('should convert string bewilligt from bescheid if it is not nil', () => { - const bescheid: Bescheid = { ...createBescheid(), bewilligt: 'true' }; - - const result = service.getValueWithApproved(bescheid); - - expect(result.bewilligt).toBeTruthy(); - }); - - it('should set bewilligt to false if it is nil', () => { - const bescheid: Bescheid = { ...createBescheid(), bewilligt: undefined }; - - const result = service.getValueWithApproved(bescheid); - - expect(result.bewilligt).toBeFalsy(); - }); - }); - - describe('getBescheidChanges', () => { - it('should emit initial form value', () => { - expect(service.getBescheidChanges()).toBeObservable( - singleCold({ - beschiedenAm: now, - bewilligt: true, - attachments: [], - bescheidDocument: null, - sendBy: BescheidSendBy.NACHRICHT, - nachrichtSubject: '', - nachrichtText: '', - }), - ); - }); - }); - - describe('patchValues', () => { - let bescheidResource: BescheidResource; - let patch: jest.Mock; - - beforeEach(() => { - bescheidResource = createBescheidResource(); - patch = service.patch = jest.fn(); - }); - - it('should call patch', () => { - service.patchValues(bescheidResource); - - expect(patch).toHaveBeenCalledWith({ - [BescheidenFormService.FIELD_BESCHIEDEN_AM]: bescheidResource.beschiedenAm, - [BescheidenFormService.FIELD_BEWILLIGT]: String(bescheidResource.bewilligt), - [BescheidenFormService.FIELD_BESCHEID_DOCUMENT]: null, - [BescheidenFormService.FIELD_SEND_BY]: String(bescheidResource.sendBy), - [BescheidenFormService.FIELD_NACHRICHT_SUBJECT]: bescheidResource.nachrichtSubject, - [BescheidenFormService.FIELD_NACHRICHT_TEXT]: bescheidResource.nachrichtText, - }); - }); - - it('should call patch with undefined sendBy', () => { - const bescheidDocumentUri: ResourceUri = faker.internet.url(); - service.patchValues({ - ...bescheidResource, - sendBy: undefined, - _links: { - ...bescheidResource._links, - [BescheidLinkRel.BESCHEID_DOCUMENT]: { href: bescheidDocumentUri }, - }, - }); - - expect(patch).toHaveBeenCalledWith({ - [BescheidenFormService.FIELD_BESCHIEDEN_AM]: bescheidResource.beschiedenAm, - [BescheidenFormService.FIELD_BEWILLIGT]: String(bescheidResource.bewilligt), - [BescheidenFormService.FIELD_SEND_BY]: BescheidSendBy.NACHRICHT, - [BescheidenFormService.FIELD_BESCHEID_DOCUMENT]: bescheidDocumentUri, - [BescheidenFormService.FIELD_NACHRICHT_SUBJECT]: bescheidResource.nachrichtSubject, - [BescheidenFormService.FIELD_NACHRICHT_TEXT]: bescheidResource.nachrichtText, - }); - }); - - it('should not call patch', () => { - service.patchValues(null); - - expect(patch).not.toHaveBeenCalled(); - }); - - it('should patch attachments', () => { - service.patchValues(bescheidResource); - - expect(service.getFormValue().attachments).toEqual(bescheidResource.attachments); - }); - }); - - describe('submit', () => { - const commandStateResource: StateResource<CommandResource> = - createStateResource(createCommandResource()); - - beforeEach(() => { - bescheidService.updateBescheid.mockReturnValue(of(commandStateResource)); - bescheidService.createBescheid.mockReturnValue(of(commandStateResource)); - service.updateNachrichtOnSuccess = jest.fn().mockReturnValue(() => of(commandStateResource)); - }); - - it('should call bescheid service update bescheid draft if is patch', (done) => { - const dummyPatchResource: Resource = toResource({}); - service.patch(dummyPatchResource); - - service.submit().subscribe(() => { - expect(bescheidService.updateBescheid).toHaveBeenCalledWith(service.getValue()); - done(); - }); - }); - - it('should call bescheid service update bescheid draft if bescheid draft exists', (done) => { - bescheidService.existsBescheidDraft.mockReturnValue(true); - - service.submit().subscribe(() => { - expect(bescheidService.updateBescheid).toHaveBeenCalledWith(service.getValue()); - done(); - }); - }); - - it('should call bescheid service create bescheid draft if bescheid draft not exists', (done) => { - bescheidService.existsBescheidDraft.mockReturnValue(false); - - service.submit().subscribe(() => { - expect(bescheidService.createBescheid).toHaveBeenCalledWith( - service.vorgangWithEingangResource, - service.getValue(), - ); - done(); - }); - }); - - it('should update nachricht after successful bescheid creation', (done) => { - bescheidService.existsBescheidDraft.mockReturnValue(false); - - service.submit().subscribe(() => { - expect(service.updateNachrichtOnSuccess).toHaveBeenCalled(); - done(); - }); - }); - }); - - describe('submit draft', () => { - const commandStateResource: StateResource<CommandResource> = createStateResource( - createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]), - ); - - beforeEach(() => { - service.submit = jest.fn().mockReturnValue(of(commandStateResource)); - }); - - it('should call submit', (done) => { - service.submitDraft().subscribe(() => { - expect(service.submit).toHaveBeenCalledWith(); - done(); - }); - }); - - it('should call service to reload vorgang', fakeAsync(() => { - service.submitDraft().subscribe(); - tick(); - - expect(bescheidService.reloadCurrentVorgang).toHaveBeenCalled(); - })); - }); - - describe('setVorgangWithEingangResource', () => { - it('should set vorgangWithEingangResource', () => { - const vorgangWithEingangResource: VorgangWithEingangResource = - createVorgangWithEingangResource(); - - service.setVorgangWithEingangResource(vorgangWithEingangResource); - - expect(service.vorgangWithEingangResource).toBe(vorgangWithEingangResource); - }); - }); - - describe('getVorgangWithEingangResource', () => { - it('should reutrn vorgangWithEingangResource', () => { - const vorgangWithEingangResource: VorgangWithEingangResource = - createVorgangWithEingangResource(); - service.vorgangWithEingangResource = vorgangWithEingangResource; - - const vorang: VorgangWithEingangResource = service.getVorgangWithEingangResource(); - - expect(vorang).toBe(vorgangWithEingangResource); - }); - }); - - describe('deleteFile', () => { - it('should emit binary file resource', (done) => { - const file: BinaryFileResource = createBinaryFileResource(); - - service.getFileDelete().subscribe((deletedFile: BinaryFileResource) => { - expect(deletedFile).toEqual(file); - done(); - }); - - service.deleteFile(file); - }); - }); - - describe('setActiveStep', () => { - it('should emit step', () => { - service.setActiveStep(3); - - expect(service.getActiveStep()).toBeObservable(singleCold(3)); - }); - }); - - describe('patchNachricht', () => { - it('should patch nachrichtSubject with value from document', () => { - const documentResource: DocumentResource = createDocumentResource(); - - service.patchNachricht(documentResource); - - expect(service.getValue().nachrichtSubject).toEqual(documentResource.nachrichtSubject); - }); - - it('should not patch nachrichtSubject if given', () => { - const documentResource: DocumentResource = createDocumentResource(); - const bescheidResource: BescheidResource = createBescheidResource(); - service.patchValues(bescheidResource); - - service.patchNachricht(documentResource); - - expect(service.getValue().nachrichtSubject).toEqual(bescheidResource.nachrichtSubject); - }); - - it('should patch nachrichtText with value from document', () => { - const documentResource: DocumentResource = createDocumentResource(); - - service.patchNachricht(documentResource); - - expect(service.getValue().nachrichtText).toEqual(documentResource.nachrichtText); - }); - - it('should not patch nachrichtText if given', () => { - const documentResource: DocumentResource = createDocumentResource(); - const bescheidResource: BescheidResource = createBescheidResource(); - service.patchValues(bescheidResource); - - service.patchNachricht(documentResource); - - expect(service.getValue().nachrichtText).toEqual(bescheidResource.nachrichtText); - }); - }); - - describe('clearNachricht', () => { - it('should patch values', () => { - const documentResource: DocumentResource = createDocumentResource(); - - service.patchNachricht(documentResource); - service.clearNachricht(); - - expect(service.getValue().nachrichtSubject).toEqual(EMPTY_STRING); - expect(service.getValue().nachrichtText).toEqual(EMPTY_STRING); - }); - }); - - describe('setSendBy', () => { - it.each(Object.keys(BescheidSendBy))( - 'should set control value to %s', - (sendBy: BescheidSendBy) => { - service.setSendBy(sendBy); - - expect(service.getValue().sendBy).toEqual(sendBy); - }, - ); - }); - - describe('validateBescheidDocumentExists', () => { - it('should return true', () => { - service.getValue = jest.fn().mockReturnValue(createBescheid()); - - service.validateBescheidDocumentExists(); - - expect(service.validateBescheidDocumentExists()).toBeTruthy(); - }); - - it('should return false', () => { - service.getValue = jest.fn().mockReturnValue({ - ...createBescheid(), - bescheidDocument: null, - } as Bescheid); - - service.validateBescheidDocumentExists(); - - expect(service.validateBescheidDocumentExists()).toBeFalsy(); - }); - - describe('getShowMissingBescheidDocumentError', () => { - it('should emit true', () => { - service.getValue = jest.fn().mockReturnValue({ - ...createBescheid(), - bescheidDocument: null, - } as Bescheid); - - service.validateBescheidDocumentExists(); - - expect(service.getShowMissingBescheidDocumentError()).toBeObservable(singleCold(true)); - }); - - it('should emit false', () => { - service.getValue = jest.fn().mockReturnValue(createBescheid()); - - service.validateBescheidDocumentExists(); - - expect(service.getShowMissingBescheidDocumentError()).toBeObservable(singleCold(false)); - }); - }); - }); - - describe('isBetreffInvalid', () => { - it('should return true', () => { - service.form.controls[BescheidenFormService.FIELD_NACHRICHT_SUBJECT].setErrors({}); - - expect(service.isBetreffInvalid()).toBeTruthy(); - }); - - it('should return false', () => { - service.form.controls[BescheidenFormService.FIELD_NACHRICHT_SUBJECT].setErrors(null); - - expect(service.isBetreffInvalid()).toBeFalsy(); - }); - }); - - describe('isNachrichtInvalid', () => { - it('should return true', () => { - service.form.controls[BescheidenFormService.FIELD_NACHRICHT_TEXT].setErrors({}); - - expect(service.isNachrichtInvalid()).toBeTruthy(); - }); - - it('should return false', () => { - service.form.controls[BescheidenFormService.FIELD_NACHRICHT_TEXT].setErrors(null); - - expect(service.isNachrichtInvalid()).toBeFalsy(); - }); - }); - - describe('updateNachrichtOnSuccess', () => { - const subject: string = faker.lorem.words(3); - const text: string = faker.lorem.text(); - const bescheidResource: BescheidResource = createBescheidResource(); - - beforeEach(() => { - bescheidResource.nachrichtSubject = subject; - bescheidResource.nachrichtText = text; - bescheidService.getBescheidDraft.mockReturnValue(of(createStateResource(bescheidResource))); - }); - - it('should get bescheid draft', () => { - service - .updateNachrichtOnSuccess()( - of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])), - ) - .subscribe(); - - expect(bescheidService.getBescheidDraft).toHaveBeenCalled(); - }); - - it('should set subject', () => { - service - .updateNachrichtOnSuccess()( - of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])), - ) - .subscribe(); - - expect(service.getValue().nachrichtSubject).toEqual(subject); - }); - - it('should set text', () => { - service - .updateNachrichtOnSuccess()( - of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])), - ) - .subscribe(); - - expect(service.getValue().nachrichtText).toEqual(text); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts deleted file mode 100644 index 27dd254928..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts +++ /dev/null @@ -1,307 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { - Bescheid, - BescheidLinkRel, - BescheidResource, - BescheidSendBy, - BescheidService, - DocumentResource, -} from '@alfa-client/bescheid-shared'; -import { BinaryFileResource } from '@alfa-client/binary-file-shared'; -import { CommandResource, tapOnCommandSuccessfullyDone } from '@alfa-client/command-shared'; -import { - AbstractFormService, - EMPTY_STRING, - StateResource, - convertToBoolean, - formatForDatabase, - isLoaded, - isNotEmpty, - isNotNil, -} from '@alfa-client/tech-shared'; -import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; -import { Injectable, OnDestroy } from '@angular/core'; -import { FormControl, UntypedFormArray, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms'; -import { Resource, ResourceUri, getUrl, hasLink } from '@ngxp/rest'; -import { isEmpty, isNil, isUndefined } from 'lodash-es'; -import { BehaviorSubject, Observable, Subject, Subscription, combineLatest, filter, first, map, startWith } from 'rxjs'; - -@Injectable() -export class BescheidenFormService extends AbstractFormService<CommandResource> implements OnDestroy { - static readonly FIELD_BESCHIEDEN_AM = 'beschiedenAm'; - static readonly FIELD_BEWILLIGT = 'bewilligt'; - static readonly FIELD_BESCHEID_DOCUMENT = 'bescheidDocument'; - static readonly FIELD_ATTACHMENTS = 'attachments'; - public static readonly FIELD_SEND_BY = 'sendBy'; - static readonly FIELD_NACHRICHT_SUBJECT = 'nachrichtSubject'; - static readonly FIELD_NACHRICHT_TEXT = 'nachrichtText'; - - static readonly FIELD_PATH_PREFIX = 'command.body'; - - static readonly BETREFF_DEFAULT: string = 'Ihr Bescheid zum Antrag'; - - private readonly bescheidChanges$: BehaviorSubject<Bescheid>; - private readonly fileDelete$: Subject<BinaryFileResource>; - private readonly showMissingBescheidDocumentError$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false); - - private readonly activeStep$: BehaviorSubject<number> = new BehaviorSubject(1); - readonly sendByManual: BehaviorSubject<boolean> = new BehaviorSubject(false); - - vorgangWithEingangResource: VorgangWithEingangResource; - - private formControlSubscriptions: Subscription; - private formChangesSubscription: Subscription; - - constructor( - formBuilder: UntypedFormBuilder, - private readonly bescheidService: BescheidService, - ) { - super(formBuilder); - - this.bescheidChanges$ = new BehaviorSubject<Bescheid>(this.getFormValue()); - this.fileDelete$ = new Subject<BinaryFileResource>(); - this.init(); - } - - init(): void { - this.formControlSubscriptions = this.subscribeToSendBy(); - this.initializeFormChanges(); - } - - subscribeToSendBy(): Subscription { - return this.form.controls[BescheidenFormService.FIELD_SEND_BY].valueChanges.subscribe((sendBy: BescheidSendBy) => - this.updateSendByManual(sendBy), - ); - } - - updateSendByManual(sendBy: BescheidSendBy): void { - const isSendByManual = sendBy === BescheidSendBy.MANUAL; - if (isSendByManual !== this.sendByManual.value) this.sendByManual.next(isSendByManual); - } - - initializeFormChanges(): void { - this.formChangesSubscription = this.form.valueChanges - .pipe( - startWith(this.getFormValue()), - map((value) => this.getValueWithApproved(value)), - ) - .subscribe((bescheid) => this.bescheidChanges$.next(bescheid)); - } - - ngOnDestroy(): void { - this.unsubscribe(); - } - - private unsubscribe(): void { - if (isNotNil(this.formChangesSubscription) && !this.formChangesSubscription.closed) { - this.formChangesSubscription.unsubscribe(); - } - if (isNotNil(this.formControlSubscriptions)) this.formControlSubscriptions.unsubscribe(); - } - - public patchValues(bescheid: BescheidResource): void { - if (isNil(bescheid)) { - return; - } - const bescheidDocumentUri: ResourceUri = this.getBescheidDocumentUri(bescheid); - this.bescheidService.setDocumentUri(bescheidDocumentUri); - this.patch({ - [BescheidenFormService.FIELD_BESCHIEDEN_AM]: bescheid.beschiedenAm, - [BescheidenFormService.FIELD_BEWILLIGT]: String(bescheid.bewilligt), - [BescheidenFormService.FIELD_BESCHEID_DOCUMENT]: bescheidDocumentUri, - [BescheidenFormService.FIELD_SEND_BY]: isUndefined(bescheid.sendBy) ? BescheidSendBy.NACHRICHT : bescheid.sendBy, - [BescheidenFormService.FIELD_NACHRICHT_SUBJECT]: bescheid.nachrichtSubject, - [BescheidenFormService.FIELD_NACHRICHT_TEXT]: bescheid.nachrichtText, - }); - bescheid.attachments.forEach((attachmentLink) => - (this.form.controls[BescheidenFormService.FIELD_ATTACHMENTS] as UntypedFormArray).push( - new UntypedFormControl(attachmentLink), - ), - ); - } - - private getBescheidDocumentUri(bescheid: BescheidResource): ResourceUri { - if (hasLink(bescheid, BescheidLinkRel.BESCHEID_DOCUMENT)) { - return getUrl(bescheid, BescheidLinkRel.BESCHEID_DOCUMENT); - } - return null; - } - - protected initForm(): UntypedFormGroup { - return this.formBuilder.group({ - [BescheidenFormService.FIELD_BESCHIEDEN_AM]: new UntypedFormControl(new Date(Date.now())), - [BescheidenFormService.FIELD_BEWILLIGT]: new UntypedFormControl('true'), - [BescheidenFormService.FIELD_SEND_BY]: new UntypedFormControl(BescheidSendBy.NACHRICHT), - [BescheidenFormService.FIELD_BESCHEID_DOCUMENT]: new UntypedFormControl(null), - [BescheidenFormService.FIELD_ATTACHMENTS]: new UntypedFormArray([]), - [BescheidenFormService.FIELD_NACHRICHT_SUBJECT]: new UntypedFormControl(''), - [BescheidenFormService.FIELD_NACHRICHT_TEXT]: new UntypedFormControl(''), - }); - } - - protected getPathPrefix(): string { - return BescheidenFormService.FIELD_PATH_PREFIX; - } - - protected doSubmit(): Observable<StateResource<CommandResource>> { - if (this.isPatch() || this.bescheidService.existsBescheidDraft()) { - return this.bescheidService.updateBescheid(this.getValue()); - } else { - return this.bescheidService - .createBescheid(this.vorgangWithEingangResource, this.getValue()) - .pipe(this.updateNachrichtOnSuccess()); - } - } - - updateNachrichtOnSuccess(): (source: Observable<StateResource<CommandResource>>) => Observable<StateResource<CommandResource>> { - return tapOnCommandSuccessfullyDone(() => { - this.bescheidService - .getBescheidDraft() - .pipe(filter(isLoaded), first()) - .subscribe((bescheidStateResource: StateResource<BescheidResource>) => { - this.setNachrichtSubject(bescheidStateResource.resource.nachrichtSubject); - this.setNachrichtText(bescheidStateResource.resource.nachrichtText); - }); - }); - } - - public submitDraft(): Observable<StateResource<Resource>> { - return this.submit().pipe(tapOnCommandSuccessfullyDone(() => this.bescheidService.reloadCurrentVorgang())); - } - - public getValue(): Bescheid { - const value: any = this.getFormValue(); - return { - ...value, - beschiedenAm: formatForDatabase(value.beschiedenAm), - bewilligt: convertToBoolean(value.bewilligt), - attachments: value.attachments, - }; - } - - public getValueWithApproved(value: any): Bescheid { - return { - ...value, - bewilligt: isNotNil(value.bewilligt) ? convertToBoolean(value.bewilligt) : false, - }; - } - - public getBescheidChanges(): Observable<Bescheid> { - return this.bescheidChanges$.asObservable(); - } - - public setVorgangWithEingangResource(vorgangWithEingangResource: VorgangWithEingangResource): void { - this.vorgangWithEingangResource = vorgangWithEingangResource; - } - - public getVorgangWithEingangResource(): VorgangWithEingangResource { - return this.vorgangWithEingangResource; - } - - public deleteFile(binaryFileResource: BinaryFileResource): void { - this.fileDelete$.next(binaryFileResource); - } - - public getFileDelete(): Observable<BinaryFileResource> { - return this.fileDelete$.asObservable(); - } - - public setActiveStep(step: number) { - this.activeStep$.next(step); - } - - public getActiveStep(): Observable<number> { - return this.activeStep$.asObservable(); - } - - public clearBescheidDocumentFile(): void { - this.updateBescheidDocumentFile(null); - } - - public updateBescheidDocumentFile(uri: ResourceUri): void { - this.getBescheidDocumentControl().patchValue(uri); - } - - private getBescheidDocumentControl(): FormControl { - return <FormControl>this.form.controls[BescheidenFormService.FIELD_BESCHEID_DOCUMENT]; - } - - public isSendByManual(): Observable<boolean> { - return this.sendByManual.asObservable(); - } - - public patchNachricht(documentResource: DocumentResource): void { - const value = this.getValue(); - if (isEmpty(value.nachrichtSubject)) { - if (isNotEmpty(documentResource.nachrichtSubject)) { - this.setNachrichtSubject(documentResource.nachrichtSubject); - } - } - - if (isEmpty(value.nachrichtText)) { - if (isNotEmpty(documentResource.nachrichtText)) { - this.setNachrichtText(documentResource.nachrichtText); - } - } - } - - public clearNachricht(): void { - this.setNachrichtSubject(EMPTY_STRING); - this.setNachrichtText(EMPTY_STRING); - } - - private setNachrichtSubject(value: string): void { - this.form.controls[BescheidenFormService.FIELD_NACHRICHT_SUBJECT].patchValue(value); - } - - private setNachrichtText(value: string): void { - this.form.controls[BescheidenFormService.FIELD_NACHRICHT_TEXT].patchValue(value); - } - - public setSendBy(sendBy: BescheidSendBy): void { - this.form.controls[BescheidenFormService.FIELD_SEND_BY].patchValue(sendBy); - } - - public getShowMissingBescheidDocumentError(): Observable<boolean> { - return combineLatest([this.showMissingBescheidDocumentError$.asObservable(), this.getBescheidChanges()]).pipe( - map( - ([showMissingBescheidDocumentError, bescheid]) => showMissingBescheidDocumentError && isEmpty(bescheid.bescheidDocument), - ), - ); - } - - public validateBescheidDocumentExists(): boolean { - this.showMissingBescheidDocumentError$.next(isEmpty(this.getValue().bescheidDocument)); - return isNotEmpty(this.getValue().bescheidDocument); - } - - public isBetreffInvalid(): boolean { - return this.form.controls[BescheidenFormService.FIELD_NACHRICHT_SUBJECT].invalid; - } - - public isNachrichtInvalid(): boolean { - return this.form.controls[BescheidenFormService.FIELD_NACHRICHT_TEXT].invalid; - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts deleted file mode 100644 index 61f653e0c6..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidResource } from '@alfa-client/bescheid-shared'; -import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; - -export interface BescheidenDialogData { - vorgangWithEingangResource: VorgangWithEingangResource; - bescheidDraftResource?: BescheidResource; -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html deleted file mode 100644 index b191b552c4..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html +++ /dev/null @@ -1,55 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<ods-attachment-wrapper> - <alfa-binary-file2-container - *ngFor="let attachment of existingAttachments" - [file]="attachment" - [deletable]="deletable" - (startDelete)="deleteFile($event)" - > - </alfa-binary-file2-container> - <ng-container *ngFor="let attachment of uploadedAttachments"> - <alfa-binary-file2-container - *ngIf="!attachment.loading && attachment.resource" - [file]="attachment.resource" - [deletable]="deletable" - (startDelete)="deleteFile($event)" - [attr.data-test-id]="(attachment.resource.name | convertForDataTest) + '-file2-container'" - > - </alfa-binary-file2-container> - </ng-container> - <ng-container *ngIf="uploadInProgress$ | async as uploadFileInProgress"> - <ods-attachment - data-test-id="attachment-upload-in-progress" - *ngIf="uploadFileInProgress.loading || uploadFileInProgress.error" - [loadingCaption]="uploadFileInProgress.fileName" - errorCaption="Fehler beim Hochladen" - [errorMessages]="uploadFileInProgress.error | convertProblemDetailToErrorMessages" - description="Anhang wird hochgeladen" - [isLoading]="uploadFileInProgress.loading" - ></ods-attachment> - </ng-container> -</ods-attachment-wrapper> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts deleted file mode 100644 index 237ed0fe68..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts +++ /dev/null @@ -1,374 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService } from '@alfa-client/bescheid-shared'; -import { BinaryFile2ContainerComponent } from '@alfa-client/binary-file'; -import { BinaryFileResource } from '@alfa-client/binary-file-shared'; -import { - convertForDataTest, - ConvertForDataTestPipe, - createErrorStateResource, - createStateResource, - FileSizePipe, - StateResource, -} from '@alfa-client/tech-shared'; -import { existsAsHtmlElement, Mock, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils'; -import { OzgcloudSvgIconComponent, SpinnerComponent } from '@alfa-client/ui'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatIcon } from '@angular/material/icon'; -import { AttachmentComponent, AttachmentWrapperComponent, SpinnerIconComponent } from '@ods/system'; -import { ConvertProblemDetailToErrorMessagesPipe } from 'libs/tech-shared/src/lib/pipe/convert-problem-detail-to-error-messages.pipe'; -import { MockComponent, MockPipe } from 'ng-mocks'; -import { BehaviorSubject, EMPTY, Observable, of, Subscription } from 'rxjs'; -import { createUploadFileInProgress } from '../../../../../../../bescheid-shared/src/test/bescheid'; -import { - createBinaryFileResource, - createLoadedBinaryFileResource, - createLoadingBinaryFileStateResource, -} from '../../../../../../../binary-file-shared/test/binary-file'; -import { getDataTestIdOf } from '../../../../../../../tech-shared/test/data-test'; -import { createApiError } from '../../../../../../../tech-shared/test/error'; -import { BescheidenFormService } from '../../bescheiden.formservice'; -import { VorgangDetailBescheidenResultAttachmentsComponent } from './vorgang-detail-bescheiden-result-attachments.component'; - -describe('VorgangDetailBescheidenResultAttachmentsComponent', () => { - let component: VorgangDetailBescheidenResultAttachmentsComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenResultAttachmentsComponent>; - - let bescheidService: Mock<BescheidService>; - let formService: Mock<BescheidenFormService>; - - beforeEach(async () => { - bescheidService = mock(BescheidService); - bescheidService.getAttachments.mockReturnValue(EMPTY); - bescheidService.getUploadedAttachment.mockReturnValue(EMPTY); - - formService = mock(BescheidenFormService); - formService.getBescheidChanges.mockReturnValue( - new BehaviorSubject({ beschiedenAm: new Date(), bewilligt: false }), - ); - - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenResultAttachmentsComponent, - ConvertForDataTestPipe, - MatIcon, - MockPipe(FileSizePipe), - MockPipe(ConvertProblemDetailToErrorMessagesPipe), - MockComponent(OzgcloudSvgIconComponent), - MockComponent(SpinnerComponent), - MockComponent(AttachmentWrapperComponent), - MockComponent(BinaryFile2ContainerComponent), - MockComponent(SpinnerIconComponent), - MockComponent(AttachmentComponent), - ], - providers: [ - { - provide: BescheidenFormService, - useValue: formService, - }, - { - provide: BescheidService, - useValue: bescheidService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenResultAttachmentsComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('render', () => { - const attachment = createStateResource(createBinaryFileResource()); - const dataTestId = getDataTestIdOf( - `${convertForDataTest(attachment.resource.name)}-file2-container`, - ); - const uploadInProgressDataTestId: string = getDataTestIdOf('attachment-upload-in-progress'); - - beforeEach(() => { - component.uploadedAttachments = [attachment]; - }); - - it('should render uploaded file container', () => { - component.ngOnInit(); - fixture.detectChanges(); - - existsAsHtmlElement(fixture, dataTestId); - }); - - it('should not render uploaded file container on loading', () => { - component.uploadedAttachments = [{ ...attachment, loading: true }]; - component.ngOnInit(); - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, dataTestId); - }); - - it('should not render uploaded file container on null resource', () => { - component.uploadedAttachments = [{ ...attachment, resource: null }]; - component.ngOnInit(); - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, dataTestId); - }); - - it('should render attachment in progress component when loading', () => { - component.uploadInProgress$ = of({ ...createUploadFileInProgress(), loading: true }); - - fixture.detectChanges(); - - existsAsHtmlElement(fixture, uploadInProgressDataTestId); - }); - - it('should render attachment in progress component on error', () => { - component.uploadInProgress$ = of({ - ...createUploadFileInProgress(), - loading: false, - error: createApiError(), - }); - - fixture.detectChanges(); - - existsAsHtmlElement(fixture, uploadInProgressDataTestId); - }); - - it('should not render attachment in progress component when not loading and no error', () => { - component.uploadInProgress$ = of({ - ...createUploadFileInProgress(), - loading: false, - error: null, - }); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, uploadInProgressDataTestId); - }); - }); - - describe('ngOnInit', () => { - let loadExistingAttachments: jest.Mock; - let subscribeToAttachmentUpload: jest.Mock; - - beforeEach(() => { - component.loadExistingAttachments = loadExistingAttachments = jest.fn(); - component.subscribeToAttachmentUpload = subscribeToAttachmentUpload = jest.fn(); - }); - - it('should load existing attachments', () => { - component.ngOnInit(); - - expect(loadExistingAttachments).toHaveBeenCalled(); - }); - - it('should subscribe to attachments upload', () => { - component.ngOnInit(); - - expect(subscribeToAttachmentUpload).toHaveBeenCalled(); - }); - - it('should get upload attachment in progress', () => { - component.ngOnInit(); - - expect(bescheidService.getUploadAttachmentInProgress).toHaveBeenCalled(); - }); - }); - - describe('ngOnDestroy', () => { - it('should unsubscribe', () => { - const subscription = mock(Subscription); - const observable = mock(Observable); - observable.subscribe.mockReturnValue(subscription); - bescheidService.getUploadedAttachment.mockReturnValue(observable); - component.ngOnInit(); - - component.ngOnDestroy(); - - expect(subscription.unsubscribe).toHaveBeenCalled(); - }); - }); - - describe('loadExistingAttachments', () => { - let attachment: BinaryFileResource; - - beforeEach(() => { - attachment = createBinaryFileResource(); - bescheidService.getAttachments.mockReturnValue(of([attachment])); - }); - - it('should get attachments', () => { - component.loadExistingAttachments(); - - expect(bescheidService.getAttachments).toHaveBeenCalled(); - }); - - it('should set existing attachments', () => { - component.loadExistingAttachments(); - - expect(component.existingAttachments).toEqual([attachment]); - }); - - it('should reset uploaded attachments', () => { - component.uploadedAttachments = [createStateResource(createBinaryFileResource())]; - - component.loadExistingAttachments(); - - expect(component.uploadedAttachments).toEqual([]); - }); - }); - - describe('subscribeToAttachmentUpload', () => { - let attachment: StateResource<BinaryFileResource>; - - beforeEach(() => { - attachment = createLoadedBinaryFileResource(); - bescheidService.getUploadedAttachment.mockReturnValue(of(attachment)); - }); - - it('should should set uploaded attachments', () => { - component.buildUploadedAttachments = jest.fn().mockReturnValue([attachment]); - - component.subscribeToAttachmentUpload(); - - expect(component.uploadedAttachments).toEqual([attachment]); - }); - }); - - describe('buildUploadedAttachments', () => { - let uploadedAttachment: StateResource<BinaryFileResource>; - let uploadedAttachments: StateResource<BinaryFileResource>[]; - let loadingAttachment: StateResource<BinaryFileResource>; - - beforeEach(() => { - uploadedAttachment = createLoadedBinaryFileResource(); - uploadedAttachments = [uploadedAttachment]; - component.uploadedAttachments = uploadedAttachments; - loadingAttachment = createLoadingBinaryFileStateResource(); - }); - - it('should add loaded state resource', () => { - const newBinaryFileResource = createLoadedBinaryFileResource(); - - const uploaded = component.buildUploadedAttachments(newBinaryFileResource); - - expect(uploaded).toEqual([uploadedAttachment, newBinaryFileResource]); - }); - - it('should add error state resource', () => { - const errorStateResource = createErrorStateResource(createApiError()); - - const uploaded = component.buildUploadedAttachments(errorStateResource); - - expect(uploaded).toEqual([uploadedAttachment, errorStateResource]); - }); - - it('should add loading state resource if none exists', () => { - const uploaded = component.buildUploadedAttachments(loadingAttachment); - - expect(uploaded).toEqual([uploadedAttachment, loadingAttachment]); - }); - - it('should not add loading state resource if one exists', () => { - component.uploadedAttachments = [...component.uploadedAttachments, loadingAttachment]; - - const uploaded = component.buildUploadedAttachments(createLoadingBinaryFileStateResource()); - - expect(uploaded).toEqual([uploadedAttachment, loadingAttachment]); - }); - - it('should should not have error state resource if loading in progress', () => { - component.uploadedAttachments = [createErrorStateResource(createApiError())]; - - const uploaded = component.buildUploadedAttachments(loadingAttachment); - - expect(uploaded).toEqual([loadingAttachment]); - }); - }); - - describe('deleteFile', () => { - let existingAttachment: BinaryFileResource; - let uploadedAttachmentStateResource: StateResource<BinaryFileResource>; - - beforeEach(() => { - existingAttachment = createBinaryFileResource(); - uploadedAttachmentStateResource = createStateResource(createBinaryFileResource()); - }); - - it('should call form service', () => { - const file = createBinaryFileResource(); - - component.deleteFile(file); - - expect(formService.deleteFile).toHaveBeenCalledWith(file); - }); - - it('should delete attachment from uploaded', () => { - component.uploadedAttachments = [uploadedAttachmentStateResource]; - - component.deleteFile(uploadedAttachmentStateResource.resource); - - expect(component.uploadedAttachments).toEqual([]); - }); - - it('should leave errors in uploaded', () => { - const error: StateResource<BinaryFileResource> = createStateResource( - createBinaryFileResource(), - ); - component.uploadedAttachments = [error]; - - component.deleteFile(uploadedAttachmentStateResource.resource); - - expect(component.uploadedAttachments).toEqual([error]); - }); - - it('should not delete attachment from existing', () => { - component.uploadedAttachments = [uploadedAttachmentStateResource]; - component.existingAttachments = [existingAttachment]; - - component.deleteFile(uploadedAttachmentStateResource.resource); - - expect(component.existingAttachments).toEqual([existingAttachment]); - }); - - it('should delete attachment from existing', () => { - component.existingAttachments = [existingAttachment]; - - component.deleteFile(existingAttachment); - - expect(component.existingAttachments).toEqual([]); - }); - - it('should not delete attachment from existing', () => { - component.uploadedAttachments = [uploadedAttachmentStateResource]; - component.existingAttachments = [existingAttachment]; - - component.deleteFile(existingAttachment); - - expect(component.uploadedAttachments).toEqual([uploadedAttachmentStateResource]); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts deleted file mode 100644 index 9095679dea..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService, UploadFileInProgress } from '@alfa-client/bescheid-shared'; -import { BinaryFileResource } from '@alfa-client/binary-file-shared'; -import { - containsLoading, - getSuccessfullyLoaded, - hasStateResourceError, - isLoaded, - isNotNil, - StateResource, -} from '@alfa-client/tech-shared'; -import { Component, Input, OnDestroy, OnInit } from '@angular/core'; -import { getUrl } from '@ngxp/rest'; -import { first, Observable, Subscription } from 'rxjs'; -import { BescheidenFormService } from '../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-result-attachments', - templateUrl: './vorgang-detail-bescheiden-result-attachments.component.html', - styles: [], -}) -export class VorgangDetailBescheidenResultAttachmentsComponent implements OnDestroy, OnInit { - @Input() public deletable: boolean; - - existingAttachments: BinaryFileResource[] = []; - uploadedAttachments: StateResource<BinaryFileResource>[] = []; - uploadInProgress$: Observable<UploadFileInProgress>; - - private attachmentUploadSubscription: Subscription; - - constructor( - public formService: BescheidenFormService, - private readonly bescheidService: BescheidService, - ) {} - - ngOnInit(): void { - this.uploadInProgress$ = this.bescheidService.getUploadAttachmentInProgress(); - this.loadExistingAttachments(); - this.subscribeToAttachmentUpload(); - } - - ngOnDestroy(): void { - if (isNotNil(this.attachmentUploadSubscription)) - this.attachmentUploadSubscription.unsubscribe(); - } - - loadExistingAttachments() { - this.bescheidService - .getAttachments() - .pipe(first()) - .subscribe((attachments) => { - this.uploadedAttachments = []; - this.existingAttachments = attachments; - }); - } - - subscribeToAttachmentUpload() { - this.attachmentUploadSubscription = this.bescheidService - .getUploadedAttachment() - .subscribe( - (stateResource: StateResource<BinaryFileResource>) => - (this.uploadedAttachments = this.buildUploadedAttachments(stateResource)), - ); - } - - buildUploadedAttachments( - uploadStateResource: StateResource<BinaryFileResource>, - ): StateResource<BinaryFileResource>[] { - if (isLoaded(uploadStateResource) || hasStateResourceError(uploadStateResource)) { - return [...getSuccessfullyLoaded(this.uploadedAttachments), uploadStateResource]; - } else if (uploadStateResource.loading && !containsLoading(this.uploadedAttachments)) { - return [...getSuccessfullyLoaded(this.uploadedAttachments), uploadStateResource]; - } - return this.uploadedAttachments; - } - - deleteFile(file: BinaryFileResource): void { - this.formService.deleteFile(file); - this.uploadedAttachments = this.uploadedAttachments.filter( - (attachment: StateResource<BinaryFileResource>) => - !hasStateResourceError(attachment) && getUrl(attachment.resource) !== getUrl(file), - ); - this.existingAttachments = this.existingAttachments.filter( - (attachment: BinaryFileResource) => getUrl(attachment) !== getUrl(file), - ); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html deleted file mode 100644 index 549661320f..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html +++ /dev/null @@ -1,67 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<p - *ngIf="showMissingBescheidDocumentError" - data-test-id="missing-bescheid-document-error-message" - class="text-base text-error" -> - Bitte fügen Sie ein Bescheiddokument hinzu. -</p> -<ods-attachment-wrapper> - <ng-container *ngIf="bescheidDocumentFile.resource"> - <alfa-binary-file2-container - *ngIf=" - !bescheidDocumentFile.loading && - !uploadBescheidDocumentInProgress.loading && - !createDocumentInProgess.loading - " - [file]="bescheidDocumentFile.resource" - [deletable]="deletable" - (startDelete)="deleteFile.emit()" - > - </alfa-binary-file2-container> - </ng-container> - <ods-attachment - *ngIf="uploadBescheidDocumentInProgress.loading || uploadBescheidDocumentInProgress.error" - errorCaption="Fehler beim Hochladen" - [loadingCaption]="uploadBescheidDocumentInProgress.fileName" - [attr.data-test-id]=" - 'upload-bescheid-document-error-' + !!uploadBescheidDocumentInProgress.error - " - [isLoading]="uploadBescheidDocumentInProgress.loading" - [errorMessages]="uploadBescheidDocumentInProgress.error | convertProblemDetailToErrorMessages" - description="Bescheiddokument wird hochgeladen" - ></ods-attachment> - <ods-attachment - *ngIf="createDocumentInProgess.loading || hasCreateDocumentError" - errorCaption="Fehler beim automatischen Erstellen" - loadingCaption="Bescheiddokument" - description="Bescheiddokument wird erstellt" - [isLoading]="createDocumentInProgess.loading" - [errorMessages]="createDocumentErrorMessages" - data-test-id="create-bescheid-document-attachment" - ></ods-attachment> -</ods-attachment-wrapper> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts deleted file mode 100644 index 5ea0a01d38..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidLinkRel, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared'; -import { BinaryFile2ContainerComponent } from '@alfa-client/binary-file'; -import { CommandResource } from '@alfa-client/command-shared'; -import { - StateResource, - createEmptyStateResource, - createStateResource, -} from '@alfa-client/tech-shared'; -import { Mock, existsAsHtmlElement, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { getUrl } from '@ngxp/rest'; -import { AttachmentComponent, AttachmentWrapperComponent } from '@ods/system'; -import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid'; -import { createBinaryFileResource } from 'libs/binary-file-shared/test/binary-file'; -import { ConvertProblemDetailToErrorMessagesPipe } from 'libs/tech-shared/src/lib/pipe/convert-problem-detail-to-error-messages.pipe'; -import { getDataTestIdOf } from 'libs/tech-shared/test/data-test'; -import { createApiError } from 'libs/tech-shared/test/error'; -import { MockComponent, MockPipe } from 'ng-mocks'; -import { - createCommandErrorStateResource, - createCommandResource, - createCommandStateResource, -} from '../../../../../../../command-shared/test/command'; -import { VorgangDetailBescheidenResultDokumentComponent } from './vorgang-detail-bescheiden-result-dokument.component'; - -describe('VorgangDetailBescheidenResultDokumentComponent', () => { - let component: VorgangDetailBescheidenResultDokumentComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenResultDokumentComponent>; - - const createBescheidDocumentAttachment: string = getDataTestIdOf( - 'create-bescheid-document-attachment', - ); - const uploadBescheidDocumentError: string = getDataTestIdOf( - 'upload-bescheid-document-error-true', - ); - const missingBescheidDocumentErrorMessage: string = getDataTestIdOf( - 'missing-bescheid-document-error-message', - ); - - let bescheidService: Mock<BescheidService>; - - beforeEach(async () => { - bescheidService = mock(BescheidService); - - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenResultDokumentComponent, - MockComponent(BinaryFile2ContainerComponent), - MockComponent(AttachmentComponent), - MockComponent(AttachmentWrapperComponent), - MockPipe(ConvertProblemDetailToErrorMessagesPipe), - ], - providers: [ - { - provide: BescheidService, - useValue: bescheidService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenResultDokumentComponent); - component = fixture.componentInstance; - component.bescheidDocumentFile = createStateResource(createBinaryFileResource()); - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('render', () => { - it('should show error message for missing bescheid document', () => { - component.showMissingBescheidDocumentError = true; - - fixture.detectChanges(); - - existsAsHtmlElement(fixture, missingBescheidDocumentErrorMessage); - }); - - it('should not show error message for missing bescheid document', () => { - component.showMissingBescheidDocumentError = false; - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, missingBescheidDocumentErrorMessage); - }); - - describe('create bescheid document ods-attachment', () => { - it('should be shown if error exists', () => { - component.createBescheidDocumentInProgress = createCommandErrorStateResource(); - - fixture.detectChanges(); - - existsAsHtmlElement(fixture, createBescheidDocumentAttachment); - }); - - it('should be shown while loading', () => { - component.createBescheidDocumentInProgress = createStateResource( - createCommandResource(), - true, - ); - - fixture.detectChanges(); - - existsAsHtmlElement(fixture, createBescheidDocumentAttachment); - }); - - it('should be hidden on loaded without error', () => { - component.createBescheidDocumentInProgress = createCommandStateResource(); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, createBescheidDocumentAttachment); - }); - }); - }); - - describe('handle bescheid document', () => { - it('should call service to load bescheid document by uri if link is present', () => { - const bescheid: BescheidResource = createBescheidResource([ - BescheidLinkRel.BESCHEID_DOCUMENT, - ]); - - component.handleBescheidDocument(bescheid); - - expect(bescheidService.loadBescheidDocumentByUri).toHaveBeenCalledWith( - getUrl(bescheid, BescheidLinkRel.BESCHEID_DOCUMENT), - ); - }); - - it('should NOT call service if link is missing', () => { - component.handleBescheidDocument(createBescheidResource()); - - expect(bescheidService.loadBescheidDocumentByUri).not.toHaveBeenCalled(); - }); - }); - - describe('upload bescheid document error', () => { - it('should be shown if error exists', () => { - component.uploadBescheidDocumentInProgress = { loading: false, error: createApiError() }; - - fixture.detectChanges(); - - existsAsHtmlElement(fixture, uploadBescheidDocumentError); - }); - - it('should be hidden on non error', () => { - component.uploadBescheidDocumentInProgress = { loading: false }; - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, uploadBescheidDocumentError); - }); - }); - - describe('set create bescheid document in progress', () => { - beforeEach(() => { - component.handleCreateBescheidDocumentCommandError = jest.fn(); - }); - - it('should set create document in progress', () => { - const commandStateResource: StateResource<CommandResource> = createEmptyStateResource(); - - component.createBescheidDocumentInProgress = commandStateResource; - - expect(component.createDocumentInProgess).toBe(commandStateResource); - }); - - it('should handle command error', () => { - const commandStateResource: StateResource<CommandResource> = createEmptyStateResource(); - - component.createBescheidDocumentInProgress = commandStateResource; - - expect(component.handleCreateBescheidDocumentCommandError).toHaveBeenCalledWith( - commandStateResource, - ); - }); - }); - - describe('handleCreateBescheidDocumentCommandError', () => { - it('should set has error', () => { - component.handleCreateBescheidDocumentCommandError(createCommandErrorStateResource()); - - expect(component.hasCreateDocumentError).toBeTruthy(); - }); - - it('should not set has error', () => { - component.handleCreateBescheidDocumentCommandError(createCommandStateResource()); - - expect(component.hasCreateDocumentError).toBeFalsy(); - }); - - it('should not set has error on empty state resource', () => { - component.handleCreateBescheidDocumentCommandError(createEmptyStateResource()); - - expect(component.hasCreateDocumentError).toBeFalsy(); - }); - - it('should set error messages', () => { - component.handleCreateBescheidDocumentCommandError(createCommandErrorStateResource()); - - expect(component.createDocumentErrorMessages).toEqual([ - VorgangDetailBescheidenResultDokumentComponent.CREATE_DOCUMENT_ERROR_MESSAGE, - ]); - }); - - it('should not set error messages', () => { - component.handleCreateBescheidDocumentCommandError(createCommandStateResource()); - - expect(component.createDocumentErrorMessages).toEqual([]); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts deleted file mode 100644 index 86b59f535b..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { - BescheidLinkRel, - BescheidResource, - BescheidService, - UploadFileInProgress, -} from '@alfa-client/bescheid-shared'; -import { BinaryFileResource } from '@alfa-client/binary-file-shared'; -import { CommandResource, hasCommandError } from '@alfa-client/command-shared'; -import { createEmptyStateResource, isNotNil, StateResource } from '@alfa-client/tech-shared'; -import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { getUrl, hasLink } from '@ngxp/rest'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-result-dokument', - templateUrl: './vorgang-detail-bescheiden-result-dokument.component.html', -}) -export class VorgangDetailBescheidenResultDokumentComponent { - static readonly CREATE_DOCUMENT_ERROR_MESSAGE: string = - 'Bescheiddokument konnte nicht erzeugt werden.'; - - @Input() bescheidDocumentFile: StateResource<BinaryFileResource>; - @Input() uploadBescheidDocumentInProgress: UploadFileInProgress = { loading: false }; - - @Input() set createBescheidDocumentInProgress( - commandStateResource: StateResource<CommandResource>, - ) { - this.createDocumentInProgess = commandStateResource; - this.handleCreateBescheidDocumentCommandError(commandStateResource); - } - - @Input() set bescheidDraftStateResource(bescheidStateResource: StateResource<BescheidResource>) { - this.handleBescheidDocument(bescheidStateResource.resource); - } - - @Input() public deletable: boolean; - - @Input() public showMissingBescheidDocumentError: boolean; - @Output() deleteFile: EventEmitter<void> = new EventEmitter<void>(); - - createDocumentErrorMessages: string[] = []; - createDocumentInProgess: StateResource<CommandResource> = createEmptyStateResource(); - hasCreateDocumentError: boolean = false; - - constructor(private bescheidService: BescheidService) {} - - handleBescheidDocument(bescheid: BescheidResource): void { - if (hasLink(bescheid, BescheidLinkRel.BESCHEID_DOCUMENT)) { - this.bescheidService.loadBescheidDocumentByUri( - getUrl(bescheid, BescheidLinkRel.BESCHEID_DOCUMENT), - ); - } - } - - handleCreateBescheidDocumentCommandError( - commandStateResource: StateResource<CommandResource>, - ): void { - this.hasCreateDocumentError = - isNotNil(commandStateResource.resource) && hasCommandError(commandStateResource.resource); - if (this.hasCreateDocumentError) { - this.createDocumentErrorMessages = [ - VorgangDetailBescheidenResultDokumentComponent.CREATE_DOCUMENT_ERROR_MESSAGE, - ]; - } else { - this.createDocumentErrorMessages = []; - } - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.html deleted file mode 100644 index 3f492daf36..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.html +++ /dev/null @@ -1,52 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<h3 class="mb-3 font-medium text-primary">Neue Nachricht</h3> -<p - *ngIf="empfaenger$ | async as empfaenger" - data-test-id="bescheid-nachricht-empfaenger" - class="mb-2 text-sm font-medium" -> - An: {{ empfaenger }} -</p> -<div [formGroup]="form"> - <ods-text-editor - [formControlName]="formServiceClass.FIELD_NACHRICHT_SUBJECT" - label="Betreff" - placeholder="Betreff hier eingeben" - [focus]="focusBetreff" - [isRequired]="true" - > - </ods-text-editor> - - <ods-textarea-editor - [formControlName]="formServiceClass.FIELD_NACHRICHT_TEXT" - label="Text" - placeholder="Nachrichtentext hier eingeben" - [focus]="focusNachricht" - [isRequired]="true" - > - </ods-textarea-editor> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.spec.ts deleted file mode 100644 index 74477d48db..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.spec.ts +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService, DocumentResource } from '@alfa-client/bescheid-shared'; -import { - createEmptyStateResource, - createErrorStateResource, - createStateResource, - StateResource, -} from '@alfa-client/tech-shared'; -import { getElementFromFixture } from '@alfa-client/test-utils'; -import { registerLocaleData } from '@angular/common'; -import localeDe from '@angular/common/locales/de'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms'; -import { faker } from '@faker-js/faker'; -import { TextareaEditorComponent, TextEditorComponent } from '@ods/component'; -import { Mock, mock, useFromMock } from 'libs/test-utils/src/lib/mocking'; -import { OzgcloudSvgIconComponent } from 'libs/ui/src/lib/ui/ozgcloud-svgicon/ozgcloud-svgicon.component'; -import { MockComponent } from 'ng-mocks'; -import { EMPTY, of } from 'rxjs'; -import { createDocumentResource } from '../../../../../../../bescheid-shared/src/test/document'; -import { getDataTestIdOf } from '../../../../../../../tech-shared/test/data-test'; -import { createApiError } from '../../../../../../../tech-shared/test/error'; -import { singleColdCompleted } from '../../../../../../../tech-shared/test/marbles'; -import { BescheidenFormService } from '../../bescheiden.formservice'; -import { VorgangDetailBescheidenResultNachrichtComponent } from './vorgang-detail-bescheiden-result-nachricht.component'; - -registerLocaleData(localeDe); - -describe('VorgangDetailBescheidenResultNachrichtComponent', () => { - let component: VorgangDetailBescheidenResultNachrichtComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenResultNachrichtComponent>; - - let bescheidService: Mock<BescheidService>; - let formService: BescheidenFormService; - - const bescheidNachrichtEmpfaengerElement: string = getDataTestIdOf( - 'bescheid-nachricht-empfaenger', - ); - - beforeEach(async () => { - bescheidService = mock(BescheidService); - formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService)); - - await TestBed.configureTestingModule({ - imports: [ReactiveFormsModule], - declarations: [ - VorgangDetailBescheidenResultNachrichtComponent, - MockComponent(OzgcloudSvgIconComponent), - MockComponent(TextEditorComponent), - MockComponent(TextareaEditorComponent), - ], - providers: [ - { - provide: BescheidService, - useValue: bescheidService, - }, - { - provide: BescheidenFormService, - useValue: formService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenResultNachrichtComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('render', () => { - it('should render Nachrichtenempfänger', () => { - const empfaenger: string = `${faker.person.firstName()} ${faker.person.lastName()}`; - bescheidService.getEmpfaenger.mockReturnValue(of(empfaenger)); - component.ngOnInit(); - - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, bescheidNachrichtEmpfaengerElement); - expect(element).toBeInstanceOf(HTMLElement); - }); - - it('should not render Nachrichtenempfänger', () => { - bescheidService.getEmpfaenger.mockReturnValue(EMPTY); - component.ngOnInit(); - - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, bescheidNachrichtEmpfaengerElement); - expect(element).not.toBeInstanceOf(HTMLElement); - }); - }); - - describe('ngOnInit', () => { - it('should set Nachrichtenempfänger', () => { - const empfaenger: string = `${faker.person.firstName()} ${faker.person.lastName()}`; - bescheidService.getEmpfaenger.mockReturnValue(of(empfaenger)); - - component.ngOnInit(); - - expect(component.empfaenger$).toBeObservable(singleColdCompleted(empfaenger)); - }); - }); - - describe('set bescheidDocumentStateResource', () => { - beforeEach(() => { - formService.patchNachricht = jest.fn(); - }); - - it('should patch form', () => { - const documentStateResource: StateResource<DocumentResource> = - createStateResource(createDocumentResource()); - jest.spyOn(formService.form, 'valid', 'get').mockReturnValue(true); - - component.bescheidDocumentStateResource = documentStateResource; - - expect(formService.patchNachricht).toHaveBeenCalledWith(documentStateResource.resource); - }); - - it('should not patch if form is invalid', () => { - const documentStateResource: StateResource<DocumentResource> = - createStateResource(createDocumentResource()); - jest.spyOn(formService.form, 'valid', 'get').mockReturnValue(false); - - component.bescheidDocumentStateResource = documentStateResource; - - expect(formService.patchNachricht).not.toHaveBeenCalledWith(documentStateResource.resource); - }); - - it('should not patch form if document loading', () => { - component.bescheidDocumentStateResource = { ...createEmptyStateResource(), loading: true }; - - expect(formService.patchNachricht).not.toHaveBeenCalled(); - }); - - it('should not patch form if document loaded with error', () => { - component.bescheidDocumentStateResource = createErrorStateResource(createApiError()); - - expect(formService.patchNachricht).not.toHaveBeenCalled(); - }); - - it.each([null, undefined])( - 'should not patch form if document resource is %s', - (resource: DocumentResource) => { - component.bescheidDocumentStateResource = createStateResource(resource); - - expect(formService.patchNachricht).not.toHaveBeenCalled(); - }, - ); - }); - - describe('resetFocus', () => { - it('should reset betreff focus', () => { - component.focusBetreff = true; - - component.resetFocus(); - - expect(component.focusBetreff).toBeFalsy(); - }); - - it('should reset nachricht focus', () => { - component.focusNachricht = true; - - component.resetFocus(); - - expect(component.focusNachricht).toBeFalsy(); - }); - }); - - describe('sendWithNachrichtCommandStateResource', () => { - beforeEach(() => { - component.resetFocus = jest.fn(); - }); - - it('should reset focus', () => { - component.sendWithNachrichtCommandStateResource = createEmptyStateResource(); - - expect(component.resetFocus).toHaveBeenCalled(); - }); - - it('should focus betreff', () => { - component.focusBetreff = false; - formService.isBetreffInvalid = jest.fn().mockReturnValue(true); - formService.isNachrichtInvalid = jest.fn().mockReturnValue(false); - - component.sendWithNachrichtCommandStateResource = createErrorStateResource(createApiError()); - - expect(component.focusBetreff).toBeTruthy(); - }); - - it('should focus nachricht', () => { - component.focusNachricht = false; - formService.isBetreffInvalid = jest.fn().mockReturnValue(false); - formService.isNachrichtInvalid = jest.fn().mockReturnValue(true); - - component.sendWithNachrichtCommandStateResource = createErrorStateResource(createApiError()); - - expect(component.focusNachricht).toBeTruthy(); - }); - - it('should focus betreff first', () => { - component.focusNachricht = false; - component.focusBetreff = false; - formService.isBetreffInvalid = jest.fn().mockReturnValue(true); - formService.isNachrichtInvalid = jest.fn().mockReturnValue(true); - - component.sendWithNachrichtCommandStateResource = createErrorStateResource(createApiError()); - - expect(component.focusBetreff).toBeTruthy(); - expect(component.focusNachricht).toBeFalsy(); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.ts deleted file mode 100644 index 9805935d7b..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService, DocumentResource } from '@alfa-client/bescheid-shared'; -import { CommandResource } from '@alfa-client/command-shared'; -import { hasStateResourceError, isNotNil, StateResource } from '@alfa-client/tech-shared'; -import { Component, Input, OnInit } from '@angular/core'; -import { FormGroup } from '@angular/forms'; -import { Observable } from 'rxjs'; -import { BescheidenFormService } from '../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-result-nachricht', - templateUrl: './vorgang-detail-bescheiden-result-nachricht.component.html', -}) -export class VorgangDetailBescheidenResultNachrichtComponent implements OnInit { - @Input() - set bescheidDocumentStateResource(stateResource: StateResource<DocumentResource>) { - if (!stateResource.loading && !stateResource.error && isNotNil(stateResource.resource)) { - if (isNotNil(this.form) && this.form.valid) { - this.formService.patchNachricht(stateResource.resource); - } - } - } - - @Input() - set sendWithNachrichtCommandStateResource(stateResource: StateResource<CommandResource>) { - this.resetFocus(); - if (isNotNil(stateResource) && hasStateResourceError(stateResource)) { - if (this.formService.isBetreffInvalid()) { - this.focusBetreff = true; - } else if (this.formService.isNachrichtInvalid()) { - this.focusNachricht = true; - } - } - } - - resetFocus() { - this.focusBetreff = false; - this.focusNachricht = false; - } - - empfaenger$: Observable<string>; - form: FormGroup; - - public focusBetreff: boolean = false; - public focusNachricht: boolean = false; - - readonly formServiceClass = BescheidenFormService; - - constructor( - private readonly bescheidService: BescheidService, - private readonly formService: BescheidenFormService, - ) {} - - ngOnInit(): void { - this.empfaenger$ = this.bescheidService.getEmpfaenger(); - this.form = this.formService.form; - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.html deleted file mode 100644 index 8326ca0d52..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.html +++ /dev/null @@ -1,30 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<ods-bescheid-status-text - [bewilligt]="bescheid.bewilligt" - [dateText]="bescheid.beschiedenAm | date: 'dd.MM.yyyy'" - [hasBescheidDraft]="false" -></ods-bescheid-status-text> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.spec.ts deleted file mode 100644 index cab1ef0562..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.spec.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { registerLocaleData } from '@angular/common'; -import localeDe from '@angular/common/locales/de'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatIcon } from '@angular/material/icon'; -import { MatIconTestingModule } from '@angular/material/icon/testing'; -import { BescheidStatusTextComponent } from '@ods/system'; -import { createBescheid } from 'libs/bescheid-shared/src/test/bescheid'; -import { FormatFullDatePipe } from 'libs/tech-shared/src/lib/pipe/format-full-date.pipe'; -import { OzgcloudSvgIconComponent } from 'libs/ui/src/lib/ui/ozgcloud-svgicon/ozgcloud-svgicon.component'; -import { MockComponent } from 'ng-mocks'; -import { VorgangDetailBescheidenResultStatusComponent } from './vorgang-detail-bescheiden-result-status.component'; - -registerLocaleData(localeDe); - -describe('VorgangDetailBescheidenResultStatusComponent', () => { - let component: VorgangDetailBescheidenResultStatusComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenResultStatusComponent>; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [MatIconTestingModule], - declarations: [ - VorgangDetailBescheidenResultStatusComponent, - MatIcon, - FormatFullDatePipe, - MockComponent(OzgcloudSvgIconComponent), - MockComponent(BescheidStatusTextComponent), - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenResultStatusComponent); - component = fixture.componentInstance; - component.bescheid = createBescheid(); - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.ts deleted file mode 100644 index 37662cc9de..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { Bescheid } from '@alfa-client/bescheid-shared'; -import { Component, Input } from '@angular/core'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-result-status', - templateUrl: './vorgang-detail-bescheiden-result-status.component.html', -}) -export class VorgangDetailBescheidenResultStatusComponent { - @Input() bescheid: Bescheid; -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.html deleted file mode 100644 index 1f1fef09c5..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.html +++ /dev/null @@ -1,134 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<section - class="flex w-full flex-col justify-between overflow-auto rounded-xl bg-background-100 px-4 py-5" - *ngIf="{ - activeStep: activeStep$ | async, - sendByManual: sendByManual$ | async - } as wizardData" - tabindex="0" -> - <div class="flex-1"> - <h3 - *ngIf="wizardData.sendByManual || wizardData.activeStep !== 3" - class="mb-4 text-base font-bold text-primary-600" - > - Bescheid - </h3> - - <div - class="my-4" - data-test-id="bescheid-status-text" - *ngIf=" - wizardData.activeStep === 1 || - wizardData.activeStep === 2 || - (wizardData.activeStep === 3 && wizardData.sendByManual) - " - > - <alfa-vorgang-detail-bescheiden-result-status - data-test-id="bescheid-status" - [bescheid]="bescheid$ | async" - ></alfa-vorgang-detail-bescheiden-result-status> - </div> - - <div *ngIf="!wizardData.sendByManual && wizardData.activeStep === 3 && (canSend$ | async)"> - <alfa-vorgang-detail-bescheiden-result-nachricht - [bescheidDocumentStateResource]="bescheidDocument$ | async" - [sendWithNachrichtCommandStateResource]="sendWithNachricht$ | async" - data-test-id="bescheid-nachricht-an-antragsteller" - ></alfa-vorgang-detail-bescheiden-result-nachricht> - </div> - - <div - class="my-4" - *ngIf=" - wizardData.activeStep === 2 || - (wizardData.activeStep === 3 && (wizardData.sendByManual || (canSend$ | async))) - " - data-test-id="bescheid-status-dokument" - > - <alfa-vorgang-detail-bescheiden-result-dokument - data-test-id="bescheid-document" - [deletable]="wizardData.activeStep === 2" - [bescheidDraftStateResource]="bescheidDraftStateResource$ | async" - [uploadBescheidDocumentInProgress]="uploadBescheidDocumentInProgress$ | async" - [createBescheidDocumentInProgress]="createBescheidDocumentInProgress$ | async" - [bescheidDocumentFile]="bescheidDocumentFile$ | async" - [showMissingBescheidDocumentError]="showMissingBescheidDocumentError$ | async" - (deleteFile)="deleteBescheidDocument()" - ></alfa-vorgang-detail-bescheiden-result-dokument> - </div> - - <div - class="my-4" - data-test-id="bescheid-status-attachments" - *ngIf=" - wizardData.activeStep === 2 || - (wizardData.activeStep === 3 && (wizardData.sendByManual || (canSend$ | async))) - " - > - <alfa-vorgang-detail-bescheiden-result-attachments - [deletable]="wizardData.activeStep === 2" - data-test-id="bescheid-attachments" - ></alfa-vorgang-detail-bescheiden-result-attachments> - </div> - </div> - <div class="flex-none"> - <div class="flex flex-col"> - <ng-container *ngIf="wizardData.sendByManual && wizardData.activeStep === 3"> - <p class="mb-8 text-base font-normal text-text"> - Der Bescheid muss manuell versendet werden. - </p> - - <ng-container *ngIf="bescheidDraftStateResource$ | async as bescheidDraftStateResource"> - <ods-button-with-spinner - class="self-end" - *ngIf="canSave$ | async" - data-test-id="confirm-and-save-button" - [stateResource]="saveAndSendInProgress$ | async" - text="Antrag bescheiden und speichern" - (clickEmitter)="saveAndSendManually(bescheidDraftStateResource.resource)" - ></ods-button-with-spinner> - </ng-container> - <!-- --> - </ng-container> - <ng-container - *ngIf="wizardData.activeStep === 3 && !wizardData.sendByManual && (canSend$ | async)" - > - <ng-container *ngIf="bescheidDraftStateResource$ | async as bescheidDraftStateResource"> - <ods-button-with-spinner - class="self-end" - *ngIf="canSend$ | async" - data-test-id="send-button" - [stateResource]="saveAndSendInProgress$ | async" - text="Bescheid senden" - (clickEmitter)="saveAndSendWithNachricht(bescheidDraftStateResource.resource)" - ></ods-button-with-spinner> - </ng-container> - </ng-container> - </div> - </div> -</section> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.spec.ts deleted file mode 100644 index 48eff7cb96..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.spec.ts +++ /dev/null @@ -1,719 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidLinkRel, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared'; -import { CommandOrder, CommandResource } from '@alfa-client/command-shared'; -import { - createEmptyStateResource, - createStateResource, - StateResource, -} from '@alfa-client/tech-shared'; -import { - dispatchEventFromFixture, - existsAsHtmlElement, - getElementFromFixture, - Mock, - mock, - notExistsAsHtmlElement, -} from '@alfa-client/test-utils'; -import { OzgcloudButtonWithSpinnerComponent } from '@alfa-client/ui'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ButtonWithSpinnerComponent } from '@ods/component'; -import { - createBescheidResource, - createBescheidStateResource, -} from 'libs/bescheid-shared/src/test/bescheid'; -import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel'; -import { - createCommandResource, - createCommandStateResource, -} from 'libs/command-shared/test/command'; -import { getDataTestIdOf } from 'libs/tech-shared/test/data-test'; -import { MockComponent } from 'ng-mocks'; -import { BehaviorSubject, EMPTY, first, of } from 'rxjs'; -import { singleColdCompleted } from '../../../../../../tech-shared/test/marbles'; -import { BescheidenFormService } from '../bescheiden.formservice'; -import { VorgangDetailBescheidenResultAttachmentsComponent } from './vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component'; -import { VorgangDetailBescheidenResultDokumentComponent } from './vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component'; -import { VorgangDetailBescheidenResultNachrichtComponent } from './vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component'; -import { VorgangDetailBescheidenResultStatusComponent } from './vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component'; -import { VorgangDetailBescheidenResultComponent } from './vorgang-detail-bescheiden-result.component'; - -describe('VorgangDetailBescheidenResultComponent', () => { - let component: VorgangDetailBescheidenResultComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenResultComponent>; - - let bescheidService: Mock<BescheidService>; - let formService: Mock<BescheidenFormService>; - - const bescheidStatus: string = getDataTestIdOf('bescheid-status'); - const bescheidDocument: string = getDataTestIdOf('bescheid-document'); - const bescheidAttachments: string = getDataTestIdOf('bescheid-attachments'); - const saveAndSendButton: string = getDataTestIdOf('confirm-and-save-button'); - const sendButton: string = getDataTestIdOf('send-button'); - const nachrichtAntragstellerComponent = getDataTestIdOf('bescheid-nachricht-an-antragsteller'); - - beforeEach(async () => { - bescheidService = mock(BescheidService); - bescheidService.getBescheidDraft.mockReturnValue(EMPTY); - - formService = mock(BescheidenFormService); - formService.getBescheidChanges.mockReturnValue( - new BehaviorSubject({ beschiedenAm: new Date(), bewilligt: false }), - ); - formService.getActiveStep.mockReturnValue(EMPTY); - formService.isSendByManual.mockReturnValue(EMPTY); - - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenResultComponent, - MockComponent(VorgangDetailBescheidenResultStatusComponent), - MockComponent(VorgangDetailBescheidenResultDokumentComponent), - MockComponent(VorgangDetailBescheidenResultAttachmentsComponent), - MockComponent(OzgcloudButtonWithSpinnerComponent), - MockComponent(VorgangDetailBescheidenResultNachrichtComponent), - MockComponent(ButtonWithSpinnerComponent), - ], - providers: [ - { - provide: BescheidService, - useValue: bescheidService, - }, - { - provide: BescheidenFormService, - useValue: formService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenResultComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('render Nachricht component', () => { - it('should render', () => { - formService.getActiveStep.mockReturnValue(of(3)); - formService.isSendByManual.mockReturnValue(of(false)); - component.ngOnInit(); - component.canSend$ = of(true); - - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, nachrichtAntragstellerComponent); - expect(element).toBeInstanceOf(HTMLElement); - }); - - it.each([1, 2])('should not render in step %d', (step) => { - formService.getActiveStep.mockReturnValue(of(step)); - formService.isSendByManual.mockReturnValue(of(false)); - component.ngOnInit(); - component.canSend$ = of(true); - - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, nachrichtAntragstellerComponent); - expect(element).not.toBeInstanceOf(HTMLElement); - }); - - it('should not render if send by manual', () => { - formService.getActiveStep.mockReturnValue(of(3)); - formService.isSendByManual.mockReturnValue(of(true)); - component.ngOnInit(); - component.canSend$ = of(true); - - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, nachrichtAntragstellerComponent); - expect(element).not.toBeInstanceOf(HTMLElement); - }); - - it('should not render if postfach not configured', () => { - formService.getActiveStep.mockReturnValue(of(3)); - formService.isSendByManual.mockReturnValue(of(false)); - component.ngOnInit(); - component.canSend$ = of(false); - - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, nachrichtAntragstellerComponent); - expect(element).not.toBeInstanceOf(HTMLElement); - }); - }); - - describe('render send button', () => { - it('should render', () => { - formService.getActiveStep.mockReturnValue(of(3)); - formService.isSendByManual.mockReturnValue(of(false)); - bescheidService.getBescheidDraft.mockReturnValue( - of(createStateResource(createBescheidResource())), - ); - component.ngOnInit(); - component.canSend$ = of(true); - - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, sendButton); - expect(element).toBeInstanceOf(HTMLElement); - }); - - it.each([1, 2])('should not render in step %d', (step) => { - formService.getActiveStep.mockReturnValue(of(step)); - formService.isSendByManual.mockReturnValue(of(false)); - component.ngOnInit(); - component.canSend$ = of(true); - - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, sendButton); - expect(element).not.toBeInstanceOf(HTMLElement); - }); - - it('should not render if send by manual', () => { - formService.getActiveStep.mockReturnValue(of(3)); - formService.isSendByManual.mockReturnValue(of(true)); - component.ngOnInit(); - component.canSend$ = of(true); - - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, sendButton); - expect(element).not.toBeInstanceOf(HTMLElement); - }); - - it('should not render if postfach not configured', () => { - formService.getActiveStep.mockReturnValue(of(3)); - formService.isSendByManual.mockReturnValue(of(false)); - component.ngOnInit(); - component.canSend$ = of(false); - - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, sendButton); - expect(element).not.toBeInstanceOf(HTMLElement); - }); - }); - - describe('ngOnInit', () => { - it('should call service to get bescheid document file', () => { - component.ngOnInit(); - - expect(bescheidService.getBescheidDocumentFile).toHaveBeenCalled(); - }); - - it('should call service to get bescheid draft', () => { - component.ngOnInit(); - - expect(bescheidService.getBescheidDraft).toHaveBeenCalled(); - }); - - it('should call service to get bescheid document', () => { - component.ngOnInit(); - - expect(bescheidService.getBescheidDocument).toHaveBeenCalled(); - }); - - it('should call formservice to get current bescheid/formular', () => { - component.ngOnInit(); - - expect(formService.getBescheidChanges).toHaveBeenCalled(); - }); - - it('should get is send by manual', () => { - component.getIsSendManually = jest.fn(); - - component.ngOnInit(); - - expect(component.getIsSendManually).toHaveBeenCalled(); - }); - - it('should call service to get upload bescheid document in progress', () => { - component.ngOnInit(); - - expect(bescheidService.getUploadBescheidDocumentInProgress).toHaveBeenCalled(); - }); - - it('should call service to get create bescheid document in progress', () => { - component.ngOnInit(); - - expect(bescheidService.getCreateBescheidDocumentInProgress).toHaveBeenCalled(); - }); - - it('should get active step', () => { - component.getActiveStep = jest.fn(); - - component.ngOnInit(); - - expect(component.getActiveStep).toHaveBeenCalled(); - }); - - describe('canSave$', () => { - it('should emit true', () => { - bescheidService.getBescheidDraft.mockReturnValue( - of(createBescheidStateResource([BescheidLinkRel.BESCHEIDEN])), - ); - component.ngOnInit(); - - expect(component.canSave$).toBeObservable(singleColdCompleted(true)); - }); - - it('should emit false', () => { - bescheidService.getBescheidDraft.mockReturnValue(of(createBescheidStateResource())); - component.ngOnInit(); - - expect(component.canSave$).toBeObservable(singleColdCompleted(false)); - }); - }); - - describe('canSend$', () => { - it('should emit true', () => { - bescheidService.getBescheidDraft.mockReturnValue( - of(createBescheidStateResource([BescheidLinkRel.BESCHEIDEN_UND_SENDEN])), - ); - component.ngOnInit(); - - expect(component.canSend$).toBeObservable(singleColdCompleted(true)); - }); - - it('should emit false', () => { - bescheidService.getBescheidDraft.mockReturnValue(of(createBescheidStateResource())); - component.ngOnInit(); - - expect(component.canSend$).toBeObservable(singleColdCompleted(false)); - }); - }); - - describe('showMissingBescheidDocumentError$', () => { - it('should emit true', () => { - formService.getShowMissingBescheidDocumentError.mockReturnValue(of(true)); - - component.ngOnInit(); - - expect(component.showMissingBescheidDocumentError$).toBeObservable( - singleColdCompleted(true), - ); - }); - - it('should emit false', () => { - formService.getShowMissingBescheidDocumentError.mockReturnValue(of(false)); - - component.ngOnInit(); - - expect(component.showMissingBescheidDocumentError$).toBeObservable( - singleColdCompleted(false), - ); - }); - }); - }); - - describe('deleteBescheidDocument', () => { - it('should call service to delete bescheid document', () => { - component.deleteBescheidDocument(); - - expect(bescheidService.deleteBescheidDocument).toHaveBeenCalled(); - }); - - it('should clear bescheid document file', () => { - component.deleteBescheidDocument(); - - expect(formService.clearBescheidDocumentFile).toHaveBeenCalled(); - }); - }); - - describe('save and send manually', () => { - const bescheidDraft: BescheidResource = createBescheidResource(); - const bescheidStateResource: StateResource<BescheidResource> = - createStateResource(bescheidDraft); - - beforeEach(() => { - component.bescheidDraftStateResource$ = of(bescheidStateResource); - component.sendByManual$ = of(true); - component.activeStep$ = of(3); - }); - - it('should clear nachricht', () => { - component.doUpdateAndSend = jest.fn(); - - component.saveAndSendManually(bescheidDraft); - - expect(formService.clearNachricht).toHaveBeenCalled(); - }); - - it('should call component on event dispatch', () => { - component.saveAndSendManually = jest.fn(); - component.canSave$ = of(true); - - fixture.detectChanges(); - - dispatchEventFromFixture(fixture, saveAndSendButton, 'clickEmitter'); - - expect(component.saveAndSendManually).toHaveBeenCalledWith(bescheidDraft); - }); - - it('should call do update and send', () => { - component.doUpdateAndSend = jest.fn(); - - component.saveAndSendManually(bescheidDraft); - - expect(component.doUpdateAndSend).toHaveBeenCalled(); - }); - }); - - describe('save and send with Nachricht', () => { - const bescheidDraft: BescheidResource = createBescheidResource(); - const bescheidStateResource: StateResource<BescheidResource> = - createStateResource(bescheidDraft); - let doUpdateAndSendMock: jest.Mock; - - beforeEach(() => { - component.bescheidDraftStateResource$ = of(bescheidStateResource); - component.sendByManual$ = of(true); - component.activeStep$ = of(3); - doUpdateAndSendMock = component.doUpdateAndSend = jest.fn(); - }); - - it('should call do update and send', () => { - component.saveAndSendWithNachricht(bescheidDraft); - - expect(doUpdateAndSendMock).toHaveBeenCalledWith(bescheidDraft, expect.any(Function)); - }); - - it('should send bescheid to antragsteller', () => { - bescheidService.sendBescheidToAntragsteller.mockReturnValue(of(createCommandStateResource())); - component.saveAndSendWithNachricht(bescheidDraft); - const sendCallback = doUpdateAndSendMock.mock.calls[0][1]; - - sendCallback(bescheidDraft); - - expect(bescheidService.sendBescheidToAntragsteller).toHaveBeenCalledWith(bescheidDraft); - }); - - it('should emit send nachricht', () => { - const sendCommandStateResource: StateResource<CommandResource> = createCommandStateResource(); - bescheidService.sendBescheidToAntragsteller.mockReturnValue(of(sendCommandStateResource)); - component.saveAndSendWithNachricht(bescheidDraft); - const sendCallback = doUpdateAndSendMock.mock.calls[0][1]; - - sendCallback(bescheidDraft).subscribe(); - - expect(component.sendWithNachricht$.value).toEqual(sendCommandStateResource); - }); - }); - - describe('doUpdateAndSend', () => { - const bescheidDraft: BescheidResource = createBescheidResource(); - const commandStateResource: StateResource<CommandResource> = createStateResource( - createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]), - ); - - beforeEach(() => { - component.sendByManual$ = of(true); - formService.submit = jest.fn().mockReturnValue(of(commandStateResource)); - }); - - it('should call formservice submit', () => { - component.doUpdateAndSend(bescheidDraft, jest.fn()).subscribe(); - - expect(formService.submit).toHaveBeenCalled(); - }); - - it('should call send after successfully update', () => { - component.doSendAfterSuccessfullyUpdate = jest.fn(); - const sendMock = jest.fn(); - - component.doUpdateAndSend(bescheidDraft, sendMock).subscribe(); - - expect(component.doSendAfterSuccessfullyUpdate).toHaveBeenCalledWith(bescheidDraft, sendMock); - }); - - it('should close dialog on successfully done command', () => { - const sendMock = jest.fn(); - formService.submit = jest.fn().mockReturnValue( - of( - createStateResource({ - ...createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]), - order: CommandOrder.SEND_BESCHEID, - }), - ), - ); - const emit = (component.closeDialog.emit = jest.fn()); - - component.doUpdateAndSend(bescheidDraft, sendMock).subscribe(); - - expect(emit).toHaveBeenCalled(); - }); - }); - - describe('doSendAfterSuccessfullyUpdate', () => { - const bescheidDraft: BescheidResource = createBescheidResource(); - - it('should call send', () => { - const commandStateResource: StateResource<CommandResource> = createStateResource( - createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]), - ); - const sendMock = jest.fn(); - - component - .doSendAfterSuccessfullyUpdate(bescheidDraft, sendMock)(of(commandStateResource)) - .subscribe(); - - expect(sendMock).toHaveBeenCalled(); - }); - - it('should not call send', () => { - const commandStateResource: StateResource<CommandResource> = createEmptyStateResource(); - const sendMock = jest.fn(); - - component - .doSendAfterSuccessfullyUpdate(bescheidDraft, sendMock)(of(commandStateResource)) - .subscribe(); - - expect(sendMock).not.toHaveBeenCalled(); - }); - }); - - describe('bescheid status text', () => { - it('should NOT be visible on NOT send by manual', () => { - component.sendByManual$ = of(false); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, bescheidStatus); - }); - - it('should NOT be visible on step 3 and NOT send by manual', () => { - component.sendByManual$ = of(false); - component.activeStep$ = of(3); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, bescheidStatus); - }); - }); - - describe('bescheid document', () => { - it('should NOT be visible on NOT send by manual', () => { - component.sendByManual$ = of(false); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, bescheidDocument); - }); - - it('should NOT be visible on step 3', () => { - component.sendByManual$ = of(false); - component.activeStep$ = of(3); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, bescheidDocument); - }); - - it('should NOT be visible on step 1', () => { - component.sendByManual$ = of(false); - component.activeStep$ = of(1); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, bescheidDocument); - }); - - it('should be visible in step 3 when link exists', () => { - component.sendByManual$ = of(false); - component.activeStep$ = of(3); - component.canSend$ = of(true); - - fixture.detectChanges(); - - existsAsHtmlElement(fixture, bescheidDocument); - }); - }); - - describe('bescheid attachments', () => { - it('should NOT be visible on NOT send by manual', () => { - component.sendByManual$ = of(false); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, bescheidAttachments); - }); - - it('should NOT be visible on step 3', () => { - component.sendByManual$ = of(false); - component.activeStep$ = of(3); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, bescheidAttachments); - }); - - it('should NOT be visible on step 1', () => { - component.sendByManual$ = of(false); - component.activeStep$ = of(1); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, bescheidAttachments); - }); - - it('should be visible in step 3 when postfach is configured', () => { - component.sendByManual$ = of(false); - component.activeStep$ = of(3); - component.canSend$ = of(true); - - fixture.detectChanges(); - - existsAsHtmlElement(fixture, bescheidAttachments); - }); - }); - - describe('update and bescheiden', () => { - it('should NOT be visible on step 1', () => { - component.sendByManual$ = of(false); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, saveAndSendButton); - }); - - it('should NOT be visible on setp 2', () => { - component.sendByManual$ = of(false); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, saveAndSendButton); - }); - it('should NOT be visible on step 3 and NOT send by manual', () => { - component.sendByManual$ = of(false); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, saveAndSendButton); - }); - }); - - describe('resetSend', () => { - it('should set to empty state resource', () => { - component.saveAndSendInProgress$ = of(createStateResource(createCommandResource())); - - component.resetSend(); - - expect(component.saveAndSendInProgress$).toBeObservable( - singleColdCompleted(createEmptyStateResource()), - ); - }); - }); - - describe('get active step', () => { - it('should call formService', () => { - component.getActiveStep().subscribe(); - - expect(formService.getActiveStep).toHaveBeenCalled(); - }); - - it.each([1, VorgangDetailBescheidenResultComponent.BESCHEID_VERSENDEN_STEP])( - 'should call bescheidService to clear attachment upload on step %s', - (step: number) => { - formService.getActiveStep.mockReturnValue(of(step)); - - component.getActiveStep().subscribe(); - - expect(bescheidService.clearAttachmentUpload).toHaveBeenCalled(); - }, - ); - - describe('reset send', () => { - beforeEach(() => { - component.resetSend = jest.fn(); - }); - - it.each([1, VorgangDetailBescheidenResultComponent.ADD_DOCUMENTS_STEP])( - 'should be called on step %s', - (step: number) => { - formService.getActiveStep.mockReturnValue(of(step)); - - component.getActiveStep().subscribe(); - - expect(component.resetSend).toHaveBeenCalled(); - }, - ); - - it('should not be called on last step', () => { - formService.getActiveStep.mockReturnValue(of(3)); - - component.getActiveStep().subscribe(); - - expect(component.resetSend).not.toHaveBeenCalled(); - }); - }); - }); - - describe('reset send', () => { - it('should clear saveAndSendInProgress', (done) => { - component.saveAndSendInProgress$ = of(createCommandStateResource()); - - component.resetSend(); - - component.saveAndSendInProgress$ - .subscribe((saveAndSendInProgress: StateResource<CommandResource>) => { - expect(saveAndSendInProgress).toEqual(createEmptyStateResource()); - done(); - }); - }); - - it('should clear sendWithNachricht', () => { - component.sendWithNachricht$.next(createCommandStateResource()); - - component.resetSend(); - - expect(component.sendWithNachricht$.value).toEqual(createEmptyStateResource()); - }); - }); - - describe('getIsSendManually', () => { - beforeEach(() => { - component.resetSend = jest.fn(); - }); - - it('should get is send by manual from from service', () => { - component.getIsSendManually(); - - expect(formService.isSendByManual).toHaveBeenCalled(); - }); - - it.each([true, false])( - 'should reset send if send by manual is %s', - (isSendByManual: boolean) => { - formService.isSendByManual.mockReturnValue(of(isSendByManual)); - - component.getIsSendManually().subscribe(); - - expect(component.resetSend).toHaveBeenCalled(); - }, - ); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.ts deleted file mode 100644 index 5b77ac192e..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.ts +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { - Bescheid, - BescheidLinkRel, - BescheidResource, - BescheidService, - DocumentResource, - UploadFileInProgress, -} from '@alfa-client/bescheid-shared'; -import { BinaryFileResource } from '@alfa-client/binary-file-shared'; -import { - CommandOrder, - CommandResource, - switchMapCommandSuccessfullyDone, - tapOnCommandSuccessfullyDone, -} from '@alfa-client/command-shared'; -import { createEmptyStateResource, isLoaded, StateResource } from '@alfa-client/tech-shared'; -import { Component, EventEmitter, OnInit, Output } from '@angular/core'; -import { hasLink } from '@ngxp/rest'; -import { BehaviorSubject, filter, map, Observable, of, OperatorFunction, tap } from 'rxjs'; -import { BescheidenFormService } from '../bescheiden.formservice'; - -type sendBescheid = (BescheidResource: BescheidResource) => Observable<StateResource<CommandResource>>; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-result', - templateUrl: './vorgang-detail-bescheiden-result.component.html', -}) -export class VorgangDetailBescheidenResultComponent implements OnInit { - static readonly ADD_DOCUMENTS_STEP: number = 2; - static readonly BESCHEID_VERSENDEN_STEP: number = 3; - - @Output() closeDialog: EventEmitter<void> = new EventEmitter(); - - public activeStep$: Observable<number>; - public bescheid$: Observable<Bescheid>; - public sendByManual$: Observable<boolean>; - - public bescheidDraftStateResource$: Observable<StateResource<BescheidResource>> = - of(createEmptyStateResource<BescheidResource>()); - public bescheidDocumentFile$: Observable<StateResource<BinaryFileResource>> = - of(createEmptyStateResource<BinaryFileResource>()); - public bescheidDocument$: Observable<StateResource<DocumentResource>> = of(createEmptyStateResource<DocumentResource>()); - public saveAndSendInProgress$: Observable<StateResource<CommandResource>> = of(createEmptyStateResource<CommandResource>()); - - public uploadBescheidDocumentInProgress$: Observable<UploadFileInProgress> = of({ - loading: false, - }); - - public createBescheidDocumentInProgress$: Observable<StateResource<CommandResource>> = - of(createEmptyStateResource<CommandResource>()); - - public sendWithNachricht$: BehaviorSubject<StateResource<CommandResource>> = new BehaviorSubject( - createEmptyStateResource<CommandResource>(), - ); - - public canSave$: Observable<boolean> = of(true); - public canSend$: Observable<boolean> = of(true); - public showMissingBescheidDocumentError$: Observable<boolean> = of(false); - - public bescheidLinkRel = BescheidLinkRel; - - constructor( - private bescheidService: BescheidService, - public formService: BescheidenFormService, - ) {} - - ngOnInit(): void { - this.bescheidDraftStateResource$ = this.bescheidService.getBescheidDraft(); - this.bescheidDocumentFile$ = this.bescheidService.getBescheidDocumentFile(); - this.uploadBescheidDocumentInProgress$ = this.bescheidService.getUploadBescheidDocumentInProgress(); - this.createBescheidDocumentInProgress$ = this.bescheidService.getCreateBescheidDocumentInProgress(); - this.bescheidDocument$ = this.bescheidService.getBescheidDocument(); - - this.activeStep$ = this.getActiveStep(); - this.bescheid$ = this.formService.getBescheidChanges(); - this.sendByManual$ = this.getIsSendManually(); - - this.canSave$ = this.bescheidDraftStateResource$.pipe( - filter(isLoaded), - map((stateResource: StateResource<BescheidResource>) => hasLink(stateResource.resource, BescheidLinkRel.BESCHEIDEN)), - ); - this.canSend$ = this.bescheidDraftStateResource$.pipe( - filter(isLoaded), - map((stateResource: StateResource<BescheidResource>) => - hasLink(stateResource.resource, BescheidLinkRel.BESCHEIDEN_UND_SENDEN), - ), - ); - this.showMissingBescheidDocumentError$ = this.formService.getShowMissingBescheidDocumentError(); - } - - getActiveStep(): Observable<number> { - return this.formService.getActiveStep().pipe(tap((step: number) => this.resetStateOnStepChange(step))); - } - - getIsSendManually(): Observable<boolean> { - return this.formService.isSendByManual().pipe(tap(() => this.resetSend())); - } - - private resetStateOnStepChange(step: number): void { - if (this.isNotLast(step)) this.resetSend(); - if (this.shouldClearAttachmentInProgress(step)) this.bescheidService.clearAttachmentUpload(); - } - - private isNotLast(step: number): boolean { - return step < VorgangDetailBescheidenResultComponent.BESCHEID_VERSENDEN_STEP; - } - - private shouldClearAttachmentInProgress(step: number): boolean { - return step != VorgangDetailBescheidenResultComponent.ADD_DOCUMENTS_STEP; - } - - resetSend(): void { - this.saveAndSendInProgress$ = of(createEmptyStateResource<CommandResource>()); - this.sendWithNachricht$.next(createEmptyStateResource<CommandResource>()); - } - - public deleteBescheidDocument(): void { - this.formService.clearBescheidDocumentFile(); - this.bescheidService.deleteBescheidDocument(); - } - - public saveAndSendManually(bescheidDraft: BescheidResource): void { - this.formService.clearNachricht(); - this.saveAndSendInProgress$ = this.doUpdateAndSend(bescheidDraft, (bescheidResource) => - this.bescheidService.sendBescheidManually(bescheidResource), - ); - } - - public saveAndSendWithNachricht(bescheidDraft: BescheidResource): void { - this.saveAndSendInProgress$ = this.doUpdateAndSend(bescheidDraft, (bescheidResource) => - this.bescheidService - .sendBescheidToAntragsteller(bescheidResource) - .pipe( - tap((sendCommandStateResource: StateResource<CommandResource>) => - this.sendWithNachricht$.next(sendCommandStateResource), - ), - ), - ); - } - - doUpdateAndSend(bescheidDraft: BescheidResource, send: sendBescheid): Observable<StateResource<CommandResource>> { - return this.formService.submit(this.doSendAfterSuccessfullyUpdate(bescheidDraft, send)).pipe( - tapOnCommandSuccessfullyDone((commandStateResource: StateResource<CommandResource>) => { - if (this.isSendBescheidCommand(commandStateResource)) { - this.closeDialog.emit(); - } - }), - ); - } - - doSendAfterSuccessfullyUpdate( - bescheidDraft: BescheidResource, - send: sendBescheid, - ): OperatorFunction<StateResource<CommandResource>, StateResource<CommandResource>> { - return switchMapCommandSuccessfullyDone(() => send(bescheidDraft)); - } - - private isSendBescheidCommand(commandStateResource: StateResource<CommandResource>): boolean { - return commandStateResource.resource.order == CommandOrder.SEND_BESCHEID; - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.html deleted file mode 100644 index ebdc411aa0..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.html +++ /dev/null @@ -1,86 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div class="relative z-10 flex min-h-28 flex-col items-center"> - <div - class="-z-1 absolute w-1" - [ngClass]=" - step === 1 ? - isPrevious() ? 'bottom-0 top-2 bg-primary-600' - : 'bottom-0 top-2 bg-gray-500' - : step === 2 ? - isPrevious() ? 'bottom-0 top-0 bg-primary-600' - : 'bottom-0 top-0 bg-gray-500' - : step === 3 ? - isActive() ? 'top-0 h-2 bg-primary-600' - : 'top-0 h-2 bg-gray-500' - : '' - " - aria-hidden="true" - ></div> - - <button - class="z-10 flex" - (click)="clickHandler(step)" - [ngClass]="isPrevious() ? 'cursor-pointer' : 'cursor-default'" - [attr.data-test-id]=" - step === 1 ? 'step-1-button' - : step === 2 ? 'step-2-button' - : step === 3 ? 'step-3-button' - : '' - " - role="tab" - [attr.aria-selected]="isActive()" - [attr.aria-disabled]="!isActive()" - attr.aria-controls="vorgang-detail-bescheiden-step-content-{{ step }}" - [tabindex]=" - isActive() ? '0' - : isPrevious() ? '0' - : '-1' - " - [attr.aria-label]=" - step === 1 ? 'Step 1. Antrag bescheiden' - : step === 2 ? 'Step 2. Dokumente hinzufügen' - : step === 3 ? 'Step 3. Bescheid versenden' - : '' - " - > - <span - class="flex size-10 items-center justify-center rounded-full" - [ngClass]=" - isActive() ? - 'border-4 border-primary-600 bg-background-50' - : 'border-transparent bg-transparent' - " - > - <span - class="flex size-7 items-center justify-center rounded-full text-sm text-whitetext" - [ngClass]="isPrevious() || isActive() ? 'bg-primary-600' : 'bg-gray-500'" - > - {{ step }} - </span> - </span> - </button> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.spec.ts deleted file mode 100644 index 80d87d9ba6..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.spec.ts +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { mock } from '@alfa-client/test-utils'; -import { EventEmitter } from '@angular/core'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { VorgangDetailBescheidenStepButtonComponent } from './vorgang-detail-bescheiden-step-button.component'; - -describe('VorgangDetailBescheidenStepButtonComponent', () => { - let component: VorgangDetailBescheidenStepButtonComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenStepButtonComponent>; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [VorgangDetailBescheidenStepButtonComponent], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenStepButtonComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('isActive', () => { - it('return true if step equals activeStep', () => { - component.step = 2; - component.activeStep = 2; - - expect(component.isActive()).toBeTruthy(); - }); - - it('return false if step not equals activeStep', () => { - component.step = 1; - component.activeStep = 2; - - expect(component.isActive()).toBeFalsy(); - }); - }); - - describe('isPrevious', () => { - it('return true if step is less than activeStep', () => { - component.step = 1; - component.activeStep = 2; - - expect(component.isPrevious()).toBeTruthy(); - }); - - it('return false if step equals activeStep', () => { - component.step = 2; - component.activeStep = 2; - - expect(component.isPrevious()).toBeFalsy(); - }); - - it('return false if step is greater than activeStep', () => { - component.step = 3; - component.activeStep = 2; - - expect(component.isPrevious()).toBeFalsy(); - }); - }); - - describe('isNext', () => { - it('return false if step is less than activeStep', () => { - component.step = 1; - component.activeStep = 2; - - expect(component.isNext()).toBeFalsy(); - }); - - it('return false if step equals activeStep', () => { - component.step = 2; - component.activeStep = 2; - - expect(component.isNext()).toBeFalsy(); - }); - - it('return true if step is greater than activeStep', () => { - component.step = 3; - component.activeStep = 2; - - expect(component.isNext()).toBeTruthy(); - }); - }); - - describe('clickHandler', () => { - const isPreviousMock = jest.fn(); - beforeEach(() => { - component.isPrevious = isPreviousMock; - component.activeStepChange = <any>mock(EventEmitter); - }); - - it('should emit step', () => { - isPreviousMock.mockReturnValue(true); - - component.clickHandler(1); - - expect(component.activeStepChange.emit).toHaveBeenCalledWith(1); - }); - - it('should not emit step', () => { - isPreviousMock.mockReturnValue(false); - - component.clickHandler(1); - - expect(component.activeStepChange.emit).not.toHaveBeenCalled(); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.ts deleted file mode 100644 index 31db0b3d31..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { Component, EventEmitter, Input, Output } from '@angular/core'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-step-button', - templateUrl: './vorgang-detail-bescheiden-step-button.component.html', -}) -export class VorgangDetailBescheidenStepButtonComponent { - @Input() step: number; - @Input() activeStep: number; - @Output() activeStepChange = new EventEmitter<number>(); - - clickHandler(step: number): void { - if (this.isPrevious()) { - this.activeStepChange.emit(step); - } - } - - isActive(): boolean { - return this.step === this.activeStep; - } - - isPrevious(): boolean { - return this.step < this.activeStep; - } - - isNext(): boolean { - return this.step > this.activeStep; - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.html deleted file mode 100644 index cab555ca05..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.html +++ /dev/null @@ -1,42 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div role="tablist"> - <alfa-vorgang-detail-bescheiden-step-button - [activeStep]="activeStep" - (activeStepChange)="changeActiveStep($event)" - [step]="1" - ></alfa-vorgang-detail-bescheiden-step-button> - <alfa-vorgang-detail-bescheiden-step-button - [activeStep]="activeStep" - (activeStepChange)="changeActiveStep($event)" - [step]="2" - ></alfa-vorgang-detail-bescheiden-step-button> - <alfa-vorgang-detail-bescheiden-step-button - [activeStep]="activeStep" - (activeStepChange)="changeActiveStep($event)" - [step]="3" - ></alfa-vorgang-detail-bescheiden-step-button> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.spec.ts deleted file mode 100644 index c20c00972f..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.spec.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService } from '@alfa-client/bescheid-shared'; -import { Mock, mock } from '@alfa-client/test-utils'; -import { EventEmitter } from '@angular/core'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MockComponent } from 'ng-mocks'; -import { BescheidenFormService } from '../../bescheiden.formservice'; -import { VorgangDetailBescheidenStepButtonComponent } from './vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component'; -import { VorgangDetailBescheidenStepButtonsComponent } from './vorgang-detail-bescheiden-step-buttons.component'; - -describe('VorgangDetailBescheidenStepButtonsComponent', () => { - let component: VorgangDetailBescheidenStepButtonsComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenStepButtonsComponent>; - - const formService: Mock<BescheidenFormService> = mock(BescheidenFormService); - const bescheidService: Mock<BescheidService> = mock(BescheidService); - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenStepButtonsComponent, - MockComponent(VorgangDetailBescheidenStepButtonComponent), - ], - providers: [ - { - provide: BescheidenFormService, - useValue: formService, - }, - { - provide: BescheidService, - useValue: bescheidService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenStepButtonsComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('changeActiveStep', () => { - const step: number = 1; - beforeEach(() => { - component.activeStepChange = <any>mock(EventEmitter); - }); - - it('should emit step', () => { - component.changeActiveStep(step); - - expect(component.activeStepChange.emit).toHaveBeenCalledWith(step); - }); - - it('should set active step in formservice', () => { - component.changeActiveStep(step); - - expect(formService.setActiveStep).toHaveBeenCalledWith(step); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.ts deleted file mode 100644 index 41e080d47b..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { BescheidenFormService } from '../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-step-buttons', - templateUrl: './vorgang-detail-bescheiden-step-buttons.component.html', -}) -export class VorgangDetailBescheidenStepButtonsComponent { - @Input() activeStep: number = 1; - @Output() activeStepChange = new EventEmitter<number>(); - - constructor(private formService: BescheidenFormService) {} - - public changeActiveStep(step: number): void { - this.formService.setActiveStep(step); - this.activeStepChange.emit(step); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.html deleted file mode 100644 index 8a82e62b23..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.html +++ /dev/null @@ -1,28 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div class="text-base font-bold text-primary-600" data-test-id="step-caption"> - {{ label }} -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.spec.ts deleted file mode 100644 index 1f35318674..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.spec.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { VorgangDetailBescheidenStepTitleComponent } from './vorgang-detail-bescheiden-step-title.component'; - -describe('VorgangDetailBescheidenStepTitleComponent', () => { - let component: VorgangDetailBescheidenStepTitleComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenStepTitleComponent>; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [VorgangDetailBescheidenStepTitleComponent], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenStepTitleComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.ts deleted file mode 100644 index b327556813..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { Component, Input } from '@angular/core'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-step-title', - templateUrl: './vorgang-detail-bescheiden-step-title.component.html', -}) -export class VorgangDetailBescheidenStepTitleComponent { - @Input() - public label: string; -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html deleted file mode 100644 index 1670968d3d..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html +++ /dev/null @@ -1,32 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<button - (click)="clickEmitter.emit()" - class="absolute right-3 top-3 text-text" - data-test-id="close-bescheid" -> - <mat-icon>close</mat-icon> -</button> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.ts deleted file mode 100644 index f332bc85b6..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatIcon } from '@angular/material/icon'; -import { VorgangDetailBescheidenAbbrechenButtonComponent } from './vorgang-detail-bescheiden-abbrechen-button.component'; - -describe('VorgangDetailBescheidenAbbrechenButtonComponent', () => { - let component: VorgangDetailBescheidenAbbrechenButtonComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenAbbrechenButtonComponent>; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [VorgangDetailBescheidenAbbrechenButtonComponent], - imports: [MatIcon], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenAbbrechenButtonComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.ts deleted file mode 100644 index aff28de42e..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { Component, EventEmitter, Output } from '@angular/core'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-abbrechen-button', - templateUrl: './vorgang-detail-bescheiden-abbrechen-button.component.html', - styles: [], -}) -export class VorgangDetailBescheidenAbbrechenButtonComponent { - @Output() public clickEmitter: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>(); -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.html deleted file mode 100644 index b535a27820..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.html +++ /dev/null @@ -1,61 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div - class="relative m-6 max-w-2xl rounded-lg bg-modalBg p-6 shadow-xl" - data-test-id="bescheid-close-dialog" -> - <div class="flex flex-col gap-6"> - <div> - <h4 class="text-lg font-medium text-primary">Bescheiderstellung abbrechen</h4> - </div> - <div class="grow"> - <p class="text-base"> - Soll der Bescheid-Entwurf zur späteren Bearbeitung gespeichert oder verworfen werden? - </p> - </div> - <div class="flex gap-4"> - <ozgcloud-stroked-button-with-spinner - (click)="saveBescheidDraft()" - data-test-id="bescheiderstellung-abbrechen-entwurf-speichern" - text="Entwurf speichern" - type="submit" - icon="check" - [stateResource]="saveDraftInProgress$ | async" - > - </ozgcloud-stroked-button-with-spinner> - <ozgcloud-stroked-button-with-spinner - (click)="onCancel()" - data-test-id="bescheiderstellung-abbrechen-entwurf-verwerfen" - text="Verwerfen" - color="" - icon="clear" - type="submit" - [stateResource]="deleteBescheid$ | async" - > - </ozgcloud-stroked-button-with-spinner> - </div> - </div> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.spec.ts deleted file mode 100644 index 8f5036fdc8..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.spec.ts +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService } from '@alfa-client/bescheid-shared'; -import { CommandLinkRel, CommandResource } from '@alfa-client/command-shared'; -import { StateResource, createStateResource } from '@alfa-client/tech-shared'; -import { mock } from '@alfa-client/test-utils'; -import { OzgcloudDialogService, OzgcloudStrokedButtonWithSpinnerComponent } from '@alfa-client/ui'; -import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; -import { ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing'; -import { MatIcon } from '@angular/material/icon'; -import { - createCommandResource, - createCommandStateResource, -} from 'libs/command-shared/test/command'; -import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang'; -import { MockComponent } from 'ng-mocks'; -import { of } from 'rxjs'; -import { BescheidenFormService } from '../../../bescheiden.formservice'; -import { VorgangDetailBescheidenAbbrechenDialogComponent } from './vorgang-detail-bescheiden-abbrechen-dialog.component'; - -describe('VorgangDetailBescheidenAbbrechenDialogComponent', () => { - let component: VorgangDetailBescheidenAbbrechenDialogComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenAbbrechenDialogComponent>; - - const bescheidService = mock(BescheidService); - const ozgcloudDialogService = mock(OzgcloudDialogService); - const formService = mock(BescheidenFormService); - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenAbbrechenDialogComponent, - MockComponent(OzgcloudStrokedButtonWithSpinnerComponent), - MockComponent(MatIcon), - ], - providers: [ - { - provide: BescheidService, - useValue: bescheidService, - }, - { - provide: OzgcloudDialogService, - useValue: ozgcloudDialogService, - }, - { - provide: BescheidenFormService, - useValue: formService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenAbbrechenDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('saveBescheidDraft', () => { - beforeEach(() => { - const submitCommand: StateResource<CommandResource> = createCommandStateResource([ - CommandLinkRel.EFFECTED_RESOURCE, - ]); - formService.submitDraft = jest.fn().mockReturnValue(of(submitCommand)); - }); - - it('should call formService.submit', () => { - component.saveBescheidDraft(); - - expect(formService.submitDraft).toHaveBeenCalled(); - }); - - describe('on successfully done command', () => { - it('should call ozgcloudDialogService.closeAll', fakeAsync(() => { - component.saveBescheidDraft(); - component.saveDraftInProgress$.subscribe(); - tick(); - - expect(ozgcloudDialogService.closeAll).toHaveBeenCalled(); - })); - - it('should call bescheid service to refresh list', fakeAsync(() => { - component.saveBescheidDraft(); - component.saveDraftInProgress$.subscribe(); - tick(); - - expect(bescheidService.refreshList).toHaveBeenCalled(); - })); - }); - }); - - describe('onCancel', () => { - it('should call deleteBescheidDraft if Vorgang has bescheidDraft', () => { - bescheidService.existsBescheidDraft.mockReturnValue(true); - component.deleteBescheidDraft = jest.fn(); - - component.onCancel(); - - expect(component.deleteBescheidDraft).toHaveBeenCalled(); - }); - - it('should call ozgcloudDialogService.closeAll if Vorgang has no bescheidDraft', () => { - bescheidService.existsBescheidDraft.mockReturnValue(false); - - component.onCancel(); - - expect(ozgcloudDialogService.closeAll).toHaveBeenCalled(); - }); - }); - - describe('deleteBescheidDraft', () => { - beforeEach(() => { - const vorgangWithBescheid: VorgangWithEingangResource = createVorgangWithEingangResource([ - VorgangWithEingangLinkRel.BESCHEID_DRAFT, - ]); - formService.getVorgangWithEingangResource = jest.fn().mockReturnValue(vorgangWithBescheid); - - const commandResource: CommandResource = createCommandResource([ - CommandLinkRel.EFFECTED_RESOURCE, - ]); - const commandStateResource: StateResource<CommandResource> = - createStateResource(commandResource); - - bescheidService.bescheidVerwerfen = jest.fn().mockReturnValue(of(commandStateResource)); - }); - - it('should call bescheidService.bescheidVerwerfen', fakeAsync(() => { - component.deleteBescheidDraft(); - component.deleteBescheid$.subscribe(); - tick(); - - expect(bescheidService.bescheidVerwerfen).toHaveBeenCalled(); - })); - - it('should call ozgcloudDialogService.closeAll', () => { - component.deleteBescheidDraft(); - - expect(ozgcloudDialogService.closeAll).toHaveBeenCalled(); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.ts deleted file mode 100644 index fb480448c1..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService } from '@alfa-client/bescheid-shared'; -import { CommandResource, tapOnCommandSuccessfullyDone } from '@alfa-client/command-shared'; -import { StateResource } from '@alfa-client/tech-shared'; -import { OzgcloudDialogService } from '@alfa-client/ui'; -import { Component } from '@angular/core'; -import { Observable } from 'rxjs'; -import { BescheidenFormService } from '../../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-abbrechen-dialog', - templateUrl: './vorgang-detail-bescheiden-abbrechen-dialog.component.html', -}) -export class VorgangDetailBescheidenAbbrechenDialogComponent { - saveDraftInProgress$: Observable<StateResource<CommandResource>>; - deleteBescheid$: Observable<StateResource<CommandResource>>; - - constructor( - private readonly bescheidService: BescheidService, - private readonly ozgcloudDialogService: OzgcloudDialogService, - private readonly formService: BescheidenFormService, - ) {} - - public saveBescheidDraft() { - this.saveDraftInProgress$ = this.formService.submitDraft().pipe( - tapOnCommandSuccessfullyDone(() => { - this.ozgcloudDialogService.closeAll(); - this.bescheidService.refreshList(); - }), - ); - } - - public onCancel() { - if (this.bescheidService.existsBescheidDraft()) { - this.deleteBescheidDraft(); - } else { - this.ozgcloudDialogService.closeAll(); - } - } - - deleteBescheidDraft(): void { - this.deleteBescheid$ = this.bescheidService.bescheidVerwerfen().pipe( - tapOnCommandSuccessfullyDone(() => { - this.ozgcloudDialogService.closeAll(); - }), - ); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html deleted file mode 100644 index 9f568635f1..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html +++ /dev/null @@ -1,54 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div [formGroup]="formService.form" role="radiogroup" aria-label="Bescheidstatus"> - <div class="my-10 flex max-w-2xl gap-8"> - <ods-radio-button-card - label="bewilligt" - [name]="formServiceClass.FIELD_BEWILLIGT" - value="true" - data-test-id="button-bewilligt" - variant="bescheid_bewilligt" - ><ods-stamp-icon size="large"></ods-stamp-icon> - </ods-radio-button-card> - <ods-radio-button-card - label="abgelehnt" - [name]="formServiceClass.FIELD_BEWILLIGT" - value="false" - data-test-id="button-abgelehnt" - variant="bescheid_abgelehnt" - ><ods-close-icon size="large" class="fill-abgelehnt"></ods-close-icon> - </ods-radio-button-card> - </div> - <div class="flex w-full"> - <ozgcloud-date-editor - [formControlName]="formServiceClass.FIELD_BESCHIEDEN_AM" - label="am" - aria-label="Bescheiddatum" - [required]="true" - > - </ozgcloud-date-editor> - </div> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts deleted file mode 100644 index f476bc0b4a..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService } from '@alfa-client/bescheid-shared'; -import { Mock, mock, useFromMock } from '@alfa-client/test-utils'; -import { DateEditorComponent } from '@alfa-client/ui'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms'; -import { CloseIconComponent, RadioButtonCardComponent, StampIconComponent } from '@ods/system'; -import { MockComponent } from 'ng-mocks'; -import { BescheidenFormService } from '../../../bescheiden.formservice'; -import { VorgangDetailBescheidenAntragBescheidenComponent } from './vorgang-detail-bescheiden-antrag-bescheiden.component'; - -describe('VorgangDetailBescheidenAntragBescheidenComponent', () => { - let component: VorgangDetailBescheidenAntragBescheidenComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenAntragBescheidenComponent>; - - let bescheidService: Mock<BescheidService>; - let formService: BescheidenFormService; - - beforeEach(async () => { - bescheidService = mock(BescheidService); - formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService)); - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenAntragBescheidenComponent, - MockComponent(RadioButtonCardComponent), - MockComponent(DateEditorComponent), - MockComponent(StampIconComponent), - MockComponent(CloseIconComponent), - ], - imports: [ReactiveFormsModule], - providers: [ - { - provide: BescheidenFormService, - useValue: formService, - }, - { - provide: BescheidService, - useValue: bescheidService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenAntragBescheidenComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.ts deleted file mode 100644 index 0e8a3cb8ec..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { Component } from '@angular/core'; -import { BescheidenFormService } from '../../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-antrag-bescheiden', - templateUrl: './vorgang-detail-bescheiden-antrag-bescheiden.component.html', -}) -export class VorgangDetailBescheidenAntragBescheidenComponent { - protected readonly formServiceClass = BescheidenFormService; - - constructor(public formService: BescheidenFormService) {} -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.html deleted file mode 100644 index db7e7a2afb..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.html +++ /dev/null @@ -1,53 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div - [formGroup]="formService.form" - class="mt-5 flex w-full max-w-72 flex-col gap-4" - role="radiogroup" - aria-level="Bescheid versenden" -> - <ng-container *ngIf="bescheidResource$ | async | hasLink: bescheidLinkRel.BESCHEIDEN_UND_SENDEN"> - <ods-radio-button-card - label="Als neue Nachricht an den Antragsteller senden" - [value]="sendBy.NACHRICHT" - [name]="formServiceClass.FIELD_SEND_BY" - variant="bescheid_save" - [fullWidthText]="true" - data-test-id="send-to-antragsteller-button" - ><ods-send-icon size="large"></ods-send-icon - ></ods-radio-button-card> - <ods-radio-button-card - *ngIf="bescheidResource$ | async | hasLink: bescheidLinkRel.BESCHEIDEN" - label="Nur speichern" - [value]="sendBy.MANUAL" - [name]="formServiceClass.FIELD_SEND_BY" - variant="bescheid_save" - [fullWidthText]="true" - data-test-id="save-button" - ><ods-save-icon size="large"></ods-save-icon - ></ods-radio-button-card> - </ng-container> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts deleted file mode 100644 index cb8eeb6c18..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { - BescheidLinkRel, - BescheidResource, - BescheidSendBy, - BescheidService, -} from '@alfa-client/bescheid-shared'; -import { HasLinkPipe, createStateResource } from '@alfa-client/tech-shared'; -import { Mock, getElementFromFixture, mock, useFromMock } from '@alfa-client/test-utils'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms'; -import { MatIconTestingModule } from '@angular/material/icon/testing'; -import { RadioButtonCardComponent, SaveIconComponent, SendIconComponent } from '@ods/system'; -import { MockComponent } from 'ng-mocks'; -import { EMPTY, of } from 'rxjs'; -import { createBescheidResource } from '../../../../../../../../bescheid-shared/src/test/bescheid'; -import { getDataTestIdOf } from '../../../../../../../../tech-shared/test/data-test'; -import { BescheidenFormService } from '../../../bescheiden.formservice'; -import { VorgangDetailBescheidenBescheidVersendenComponent } from './vorgang-detail-bescheiden-bescheid-versenden.component'; - -describe('VorgangDetailBescheidenBescheidVersendenComponent', () => { - let component: VorgangDetailBescheidenBescheidVersendenComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenBescheidVersendenComponent>; - - let bescheidService: Mock<BescheidService>; - let formService: BescheidenFormService; - - const sendToAntragstellerButtonTestId: string = getDataTestIdOf('send-to-antragsteller-button'); - const saveAndSendButtonTestId: string = getDataTestIdOf('save-button'); - - beforeEach(async () => { - bescheidService = mock(BescheidService); - formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService)); - - await TestBed.configureTestingModule({ - imports: [ReactiveFormsModule, MatIconTestingModule], - declarations: [ - VorgangDetailBescheidenBescheidVersendenComponent, - HasLinkPipe, - MockComponent(RadioButtonCardComponent), - MockComponent(SendIconComponent), - MockComponent(SaveIconComponent), - ], - providers: [ - { - provide: BescheidenFormService, - useValue: formService, - }, - { - provide: BescheidService, - useValue: bescheidService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenBescheidVersendenComponent); - component = fixture.componentInstance; - bescheidService.getBescheidDraft.mockReturnValue(EMPTY); - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('render', () => { - it('should render send button', () => { - bescheidService.getBescheidDraft.mockReturnValue( - of(createStateResource(createBescheidResource([BescheidLinkRel.BESCHEIDEN_UND_SENDEN]))), - ); - - component.ngOnInit(); - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, sendToAntragstellerButtonTestId); - expect(element).toBeInstanceOf(HTMLElement); - }); - - it('should not render send button', () => { - bescheidService.getBescheidDraft.mockReturnValue( - of(createStateResource(createBescheidResource())), - ); - - component.ngOnInit(); - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, sendToAntragstellerButtonTestId); - expect(element).not.toBeInstanceOf(HTMLElement); - }); - - it('should render save button', () => { - bescheidService.getBescheidDraft.mockReturnValue( - of( - createStateResource( - createBescheidResource([ - BescheidLinkRel.BESCHEIDEN, - BescheidLinkRel.BESCHEIDEN_UND_SENDEN, - ]), - ), - ), - ); - - component.ngOnInit(); - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, saveAndSendButtonTestId); - expect(element).toBeInstanceOf(HTMLElement); - }); - - it('should not render save button if send link missing', () => { - bescheidService.getBescheidDraft.mockReturnValue( - of(createStateResource(createBescheidResource([BescheidLinkRel.BESCHEIDEN]))), - ); - - component.ngOnInit(); - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, saveAndSendButtonTestId); - expect(element).not.toBeInstanceOf(HTMLElement); - }); - - it('should not render save button if link is missing', () => { - bescheidService.getBescheidDraft.mockReturnValue( - of(createStateResource(createBescheidResource([BescheidLinkRel.BESCHEIDEN_UND_SENDEN]))), - ); - - component.ngOnInit(); - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, saveAndSendButtonTestId); - expect(element).not.toBeInstanceOf(HTMLElement); - }); - }); - - describe('ngOnInit', () => { - const bescheidResource: BescheidResource = createBescheidResource(); - - it('should set sendBy in form', () => { - component.initSendBy = jest.fn(); - bescheidService.getBescheidDraft.mockReturnValue(of(createStateResource(bescheidResource))); - - component.ngOnInit(); - component.bescheidResource$.subscribe(); - - expect(component.initSendBy).toHaveBeenCalledWith(bescheidResource); - }); - }); - - describe('initSendBy', () => { - it('should call form service', () => { - formService.setSendBy = jest.fn(); - - component.initSendBy(createBescheidResource()); - - expect(formService.setSendBy).toHaveBeenCalledWith(BescheidSendBy.MANUAL); - }); - - it('should not call form service', () => { - formService.setSendBy = jest.fn(); - - component.initSendBy(createBescheidResource([BescheidLinkRel.BESCHEIDEN_UND_SENDEN])); - - expect(formService.setSendBy).not.toHaveBeenCalled(); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.ts deleted file mode 100644 index 4ffba257e5..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.ts +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { - BescheidLinkRel, - BescheidResource, - BescheidSendBy, - BescheidService, -} from '@alfa-client/bescheid-shared'; -import { StateResource, isLoaded, notHasLink } from '@alfa-client/tech-shared'; -import { Component, OnInit } from '@angular/core'; -import { Observable, filter, map, tap } from 'rxjs'; -import { BescheidenFormService } from '../../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-bescheid-versenden', - templateUrl: './vorgang-detail-bescheiden-bescheid-versenden.component.html', -}) -export class VorgangDetailBescheidenBescheidVersendenComponent implements OnInit { - public bescheidResource$: Observable<BescheidResource>; - - public readonly formServiceClass = BescheidenFormService; - public readonly sendBy = BescheidSendBy; - - public bescheidLinkRel = BescheidLinkRel; - - constructor( - public formService: BescheidenFormService, - private readonly bescheidService: BescheidService, - ) {} - - ngOnInit(): void { - this.bescheidResource$ = this.bescheidService.getBescheidDraft().pipe( - filter(isLoaded), - map((stateResource: StateResource<BescheidResource>) => stateResource.resource), - tap((bescheidResource: BescheidResource) => this.initSendBy(bescheidResource)), - ); - } - - initSendBy(bescheidResource: BescheidResource): void { - if (notHasLink(bescheidResource, BescheidLinkRel.BESCHEIDEN_UND_SENDEN)) { - this.formService.setSendBy(BescheidSendBy.MANUAL); - } - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html deleted file mode 100644 index 7dd1b32d5d..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html +++ /dev/null @@ -1,36 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div [formGroup]="formService.form" class="mt-4"> - <ods-file-upload-editor - [attr.data-test-id]="'vorgang-bescheiden-upload-editor' + formServiceClass.FIELD_ATTACHMENTS" - [parentFormArrayName]="formServiceClass.FIELD_ATTACHMENTS" - [uploadInProgress]="uploadInProgress$ | async" - (newFile)="uploadFile($event)" - [fileLinkList]="getFileLinkList()" - label="Anhang hochladen" - > - </ods-file-upload-editor> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts deleted file mode 100644 index d4cecc3e41..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared'; -import { BinaryFileAttachmentContainerComponent } from '@alfa-client/binary-file'; -import { BinaryFileResource } from '@alfa-client/binary-file-shared'; -import { StateResource, createStateResource } from '@alfa-client/tech-shared'; -import { Mock, mock, useFromMock } from '@alfa-client/test-utils'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms'; -import { FileUploadEditorComponent } from '@ods/component'; -import { MockComponent } from 'ng-mocks'; -import { EMPTY, Observable, Subscription, of } from 'rxjs'; -import { createBescheidStateResource } from '../../../../../../../../../bescheid-shared/src/test/bescheid'; -import { createBinaryFileResource } from '../../../../../../../../../binary-file-shared/test/binary-file'; -import { createFile } from '../../../../../../../../../tech-shared/test/file'; -import { singleColdCompleted } from '../../../../../../../../../tech-shared/test/marbles'; -import { BescheidenFormService } from '../../../../bescheiden.formservice'; -import { VorgangDetailBescheidenAttachmentHochladenComponent } from './vorgang-detail-bescheiden-attachment-hochladen.component'; - -describe('VorgangDetailBescheidenDokumentHochladenComponent', () => { - let component: VorgangDetailBescheidenAttachmentHochladenComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenAttachmentHochladenComponent>; - const selfLink: string = 'self'; - - let bescheidService: Mock<BescheidService>; - let formService: BescheidenFormService; - - beforeEach(async () => { - bescheidService = mock(BescheidService); - bescheidService.getAttachments.mockReturnValue(EMPTY); - - formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService)); - - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenAttachmentHochladenComponent, - MockComponent(BinaryFileAttachmentContainerComponent), - MockComponent(FileUploadEditorComponent), - ], - imports: [ReactiveFormsModule], - providers: [ - { - provide: BescheidenFormService, - useValue: formService, - }, - { - provide: BescheidService, - useValue: bescheidService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenAttachmentHochladenComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('ngOnInit', () => { - let loadExistingAttachments: jest.Mock; - let subscribeToFileDeletion: jest.Mock; - - beforeEach(() => { - loadExistingAttachments = component.loadExistingAttachments = jest.fn(); - subscribeToFileDeletion = component.subscribeToFileDeletion = jest.fn(); - }); - - it('should load existing attachments', () => { - component.ngOnInit(); - - expect(loadExistingAttachments).toHaveBeenCalled(); - }); - - it('should subscribe to file deletion', () => { - component.ngOnInit(); - - expect(subscribeToFileDeletion).toHaveBeenCalled(); - }); - }); - - describe('ngOnDestroy', () => { - it('should unsubscribe from file deletion', () => { - const subscription = mock(Subscription); - const getDeleteFile = (formService.getFileDelete = jest.fn()); - const observable = mock(Observable); - getDeleteFile.mockReturnValue(observable); - observable.subscribe.mockReturnValue(subscription); - component.ngOnInit(); - - component.ngOnDestroy(); - - expect(subscription.unsubscribe).toHaveBeenCalled(); - }); - }); - - describe('loadExistingAttachments', () => { - let binaryFileResource: BinaryFileResource; - - beforeEach(() => { - binaryFileResource = createBinaryFileResource(); - bescheidService.getAttachments.mockReturnValue(of([binaryFileResource])); - }); - - it('should get attachments', () => { - component.loadExistingAttachments(); - - expect(bescheidService.getAttachments).toHaveBeenCalled(); - }); - - it('should add attachments to fileList', () => { - component.loadExistingAttachments(); - - expect(component.fileList).toEqual([binaryFileResource]); - }); - }); - - describe('subscribeToFileDeletion', () => { - let getFileDelete: jest.Mock; - let getFileDeleteObservable: Mock<Observable<BinaryFileResource>>; - - beforeEach(() => { - getFileDeleteObservable = mock(Observable); - getFileDelete = formService.getFileDelete = jest - .fn() - .mockReturnValue(getFileDeleteObservable); - }); - - it('should subscribe to file deletion', () => { - component.subscribeToFileDeletion(); - - expect(getFileDelete).toHaveBeenCalled(); - }); - }); - - describe('deleteFile', () => { - let binaryFileResource: BinaryFileResource; - - beforeEach(() => { - binaryFileResource = createBinaryFileResource(); - }); - - it('should remove file from list', () => { - component.fileList = [binaryFileResource]; - - component.deleteFile(binaryFileResource); - - expect(component.fileList).toEqual([]); - }); - }); - - describe('getFileLinkList', () => { - it('should return url list', () => { - const binaryFileResource = createBinaryFileResource([selfLink]); - component.fileList = [binaryFileResource]; - - const uriList = component.getFileLinkList(); - - expect(uriList[0]).toEqual(binaryFileResource._links.self.href); - }); - }); - - describe('uploadFile', () => { - const bescheidDraftStateResource: StateResource<BescheidResource> = - createBescheidStateResource(); - const file: File = createFile(); - const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource( - createBinaryFileResource(), - ); - - beforeEach(() => { - bescheidService.uploadAttachment.mockReturnValue(of(binaryFileStateResource)); - component.bescheidDraftStateResource = bescheidDraftStateResource; - }); - - it('should upload attachment', () => { - component.uploadFile(file); - - component.uploadInProgress$.subscribe(); - - expect(bescheidService.uploadAttachment).toHaveBeenCalledWith( - bescheidDraftStateResource.resource, - file, - ); - }); - - it('should add to file list', () => { - component.uploadFile(file); - - component.uploadInProgress$.subscribe(); - - expect(component.fileList).toEqual([binaryFileStateResource.resource]); - }); - - it('should emit', () => { - component.uploadFile(file); - - expect(component.uploadInProgress$).toBeObservable( - singleColdCompleted(binaryFileStateResource), - ); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.ts deleted file mode 100644 index 6c5fe5d18d..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.ts +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared'; -import { BinaryFileResource } from '@alfa-client/binary-file-shared'; -import { - StateResource, - createEmptyStateResource, - doOnValidStateResource, - isNotNil, -} from '@alfa-client/tech-shared'; -import { Component, Input, OnDestroy, OnInit } from '@angular/core'; -import { getUrl } from '@ngxp/rest'; -import { Observable, Subscription, first, of, tap } from 'rxjs'; -import { BescheidenFormService } from '../../../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-attachment-hochladen', - templateUrl: './vorgang-detail-bescheiden-attachment-hochladen.component.html', - styles: [], -}) -export class VorgangDetailBescheidenAttachmentHochladenComponent implements OnInit, OnDestroy { - @Input() bescheidDraftStateResource: StateResource<BescheidResource>; - - uploadInProgress$: Observable<StateResource<BinaryFileResource>>; - fileList: BinaryFileResource[] = []; - private deleteFileSubscription: Subscription; - - readonly formServiceClass = BescheidenFormService; - - constructor( - public readonly formService: BescheidenFormService, - private readonly bescheidService: BescheidService, - ) { - this.uploadInProgress$ = of(createEmptyStateResource<BinaryFileResource>()); - } - - ngOnInit(): void { - this.loadExistingAttachments(); - this.subscribeToFileDeletion(); - } - - ngOnDestroy(): void { - if (isNotNil(this.deleteFileSubscription)) this.deleteFileSubscription.unsubscribe(); - } - - loadExistingAttachments(): void { - this.bescheidService - .getAttachments() - .pipe(first()) - .subscribe((attachments) => (this.fileList = attachments)); - } - - subscribeToFileDeletion(): void { - this.deleteFileSubscription = this.formService - .getFileDelete() - .subscribe((binaryFileResource) => this.deleteFile(binaryFileResource)); - } - - deleteFile(binaryFileResource: BinaryFileResource) { - this.fileList = this.fileList.filter((file) => getUrl(file) !== getUrl(binaryFileResource)); - } - - getFileLinkList(): string[] { - return this.fileList.map((fileResource: BinaryFileResource) => getUrl(fileResource)); - } - - public uploadFile(file: File): void { - this.uploadInProgress$ = this.bescheidService - .uploadAttachment(this.bescheidDraftStateResource.resource, file) - .pipe( - tap((stateResource: StateResource<BinaryFileResource>) => - doOnValidStateResource( - stateResource, - () => (this.fileList = [...this.fileList, stateResource.resource]), - ), - ), - ); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html deleted file mode 100644 index 93076b339f..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html +++ /dev/null @@ -1,40 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<ng-container *ngIf="bescheidDraftStateResource.resource as bescheidDraft"> - <div class="mt-4"> - <ods-button-card - *ngIf="bescheidDraft | hasLink: bescheidLinkRel.CREATE_DOCUMENT" - class="w-72" - [isLoading]="(createBescheidDocumentInProgress$ | async).loading" - (click)="createBescheidDocument()" - data-test-id="create-bescheid-document-button" - text="Bescheiddokument" - subText="automatisch erstellen" - > - <ods-bescheid-generate-icon icon /> - </ods-button-card> - </div> -</ng-container> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts deleted file mode 100644 index 28bf0e8b5b..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidLinkRel, BescheidService } from '@alfa-client/bescheid-shared'; -import { CommandLinkRel } from '@alfa-client/command-shared'; -import { - createEmptyStateResource, - createStateResource, - HasLinkPipe, -} from '@alfa-client/tech-shared'; -import { - dispatchEventFromFixture, - existsAsHtmlElement, - Mock, - mock, - notExistsAsHtmlElement, -} from '@alfa-client/test-utils'; -import { OzgcloudButtonWithSpinnerComponent } from '@alfa-client/ui'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { - BescheidGenerateIconComponent, - ButtonCardComponent, - SpinnerIconComponent, -} from '@ods/system'; -import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid'; -import { getDataTestIdOf } from 'libs/tech-shared/test/data-test'; -import { MockComponent } from 'ng-mocks'; -import { of } from 'rxjs'; -import { - createCommandErrorStateResource, - createCommandStateResource, -} from '../../../../../../../../../command-shared/test/command'; -import { BescheidenFormService } from '../../../../bescheiden.formservice'; -import { VorgangDetailBescheidenBescheidAutomatischErstellenComponent } from './vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component'; - -describe('VorgangDetailBescheidenBescheidAutomatischErstellenComponent', () => { - let component: VorgangDetailBescheidenBescheidAutomatischErstellenComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenBescheidAutomatischErstellenComponent>; - - const createBescheidDocumentButton: string = getDataTestIdOf('create-bescheid-document-button'); - - let bescheidService: Mock<BescheidService>; - let formService: Mock<BescheidenFormService>; - - beforeEach(async () => { - bescheidService = mock(BescheidService); - formService = mock(BescheidenFormService); - - await TestBed.configureTestingModule({ - imports: [HasLinkPipe], - declarations: [ - VorgangDetailBescheidenBescheidAutomatischErstellenComponent, - MockComponent(OzgcloudButtonWithSpinnerComponent), - MockComponent(ButtonCardComponent), - MockComponent(SpinnerIconComponent), - MockComponent(BescheidGenerateIconComponent), - ], - providers: [ - { - provide: BescheidService, - useValue: bescheidService, - }, - { - provide: BescheidenFormService, - useValue: formService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenBescheidAutomatischErstellenComponent); - component = fixture.componentInstance; - component.bescheidDraftStateResource = createStateResource(createBescheidResource()); - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('create bescheid document button', () => { - beforeEach(() => { - component.bescheidDraftStateResource = createStateResource( - createBescheidResource([BescheidLinkRel.CREATE_DOCUMENT]), - ); - - fixture.detectChanges(); - }); - it('should call bescheid service on click', () => { - dispatchEventFromFixture(fixture, createBescheidDocumentButton, 'click'); - - expect(bescheidService.createBescheidDocument).toHaveBeenCalled(); - }); - - it('should be hidden if link is NOT present', () => { - component.bescheidDraftStateResource = createStateResource(createBescheidResource()); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, createBescheidDocumentButton); - }); - - it('should be visible if link is present', () => { - component.bescheidDraftStateResource = createStateResource( - createBescheidResource([BescheidLinkRel.CREATE_DOCUMENT]), - ); - fixture.detectChanges(); - - existsAsHtmlElement(fixture, createBescheidDocumentButton); - }); - - it('should clear nachricht', () => { - bescheidService.createBescheidDocument.mockReturnValue( - of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])), - ); - - component.createBescheidDocument(); - - component.createBescheidDocumentInProgress$.subscribe(); - expect(formService.clearNachricht).toHaveBeenCalled(); - }); - - it('should not clear nachricht when loading', () => { - bescheidService.createBescheidDocument.mockReturnValue(of(createEmptyStateResource(true))); - - component.createBescheidDocument(); - - component.createBescheidDocumentInProgress$.subscribe(); - expect(formService.clearNachricht).not.toHaveBeenCalled(); - }); - - it('should not clear nachricht when error', () => { - bescheidService.createBescheidDocument.mockReturnValue(of(createCommandErrorStateResource())); - - component.createBescheidDocument(); - - component.createBescheidDocumentInProgress$.subscribe(); - expect(formService.clearNachricht).not.toHaveBeenCalled(); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.ts deleted file mode 100644 index 47ceb4fb1f..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.ts +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidLinkRel, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared'; -import { CommandResource, isSuccessfulDone } from '@alfa-client/command-shared'; -import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared'; -import { Component, Input } from '@angular/core'; -import { Observable, of, tap } from 'rxjs'; -import { BescheidenFormService } from '../../../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-bescheid-automatisch-erstellen', - templateUrl: './vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html', -}) -export class VorgangDetailBescheidenBescheidAutomatischErstellenComponent { - @Input() public bescheidDraftStateResource: StateResource<BescheidResource>; - - public createBescheidDocumentInProgress$: Observable<StateResource<CommandResource>> = of( - createEmptyStateResource<CommandResource>(), - ); - - public readonly bescheidLinkRel = BescheidLinkRel; - - constructor( - private readonly bescheidService: BescheidService, - private readonly formService: BescheidenFormService, - ) {} - - public createBescheidDocument(): void { - this.createBescheidDocumentInProgress$ = this.bescheidService.createBescheidDocument().pipe( - tap((commandStateResource: StateResource<CommandResource>) => { - if (isSuccessfulDone(commandStateResource.resource)) { - this.formService.clearNachricht(); - } - }), - ); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.html deleted file mode 100644 index cf032e3993..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.html +++ /dev/null @@ -1,39 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div [formGroup]="formService.form"> - <ods-single-file-upload-editor - *ngIf="bescheidDraftStateResource.resource | hasLink: bescheidLinkRel.UPLOAD_BESCHEID_FILE" - [uploadInProgress]="(uploadDocumentFileInProgress$ | async).loading" - class="w-72" - attr.data-test-id="vorgang-bescheiden-upload-editor" - [formControlName]="formServiceClass.FIELD_BESCHEID_DOCUMENT" - (newFile)="uploadFile($event)" - > - <ods-bescheid-upload-icon icon></ods-bescheid-upload-icon> - <ods-spinner-icon spinner size="extra-large"></ods-spinner-icon> - <div text class="text-center">Bescheiddokument hochladen</div> - </ods-single-file-upload-editor> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts deleted file mode 100644 index 5b089dac01..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService } from '@alfa-client/bescheid-shared'; -import { HasLinkPipe } from '@alfa-client/tech-shared'; -import { Mock, mock, useFromMock } from '@alfa-client/test-utils'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms'; -import { MatIcon } from '@angular/material/icon'; -import { faker } from '@faker-js/faker'; -import { ResourceUri } from '@ngxp/rest'; -import { SingleFileUploadEditorComponent } from '@ods/component'; -import { SpinnerIconComponent } from '@ods/system'; -import { MockComponent, MockPipe } from 'ng-mocks'; -import { of } from 'rxjs'; -import { createBescheidStateResource } from '../../../../../../../../../bescheid-shared/src/test/bescheid'; -import { createFile } from '../../../../../../../../../tech-shared/test/file'; -import { BescheidenFormService } from '../../../../bescheiden.formservice'; -import { VorgangDetailBescheidenDokumentHochladenComponent } from './vorgang-detail-bescheiden-dokument-hochladen.component'; - -describe('VorgangDetailBescheidenDokumentHochladenComponent', () => { - let component: VorgangDetailBescheidenDokumentHochladenComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenDokumentHochladenComponent>; - - let bescheidService: Mock<BescheidService>; - let formService: BescheidenFormService; - - beforeEach(async () => { - bescheidService = mock(BescheidService); - bescheidService.getDocumentUri.mockReturnValue(of(null)); - - formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService)); - - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenDokumentHochladenComponent, - MatIcon, - MockPipe(HasLinkPipe), - MockComponent(SingleFileUploadEditorComponent), - MockComponent(SpinnerIconComponent), - ], - imports: [ReactiveFormsModule], - providers: [ - { - provide: BescheidenFormService, - useValue: formService, - }, - { - provide: BescheidService, - useValue: bescheidService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenDokumentHochladenComponent); - component = fixture.componentInstance; - component.bescheidDraftStateResource = createBescheidStateResource(); - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('ngOnInit', () => { - it('should handle document uri changes', () => { - bescheidService.getDocumentUri.mockReturnValue(of('DocumentUriDummy')); - component.handleDocumentUriChanges = jest.fn(); - - component.ngOnInit(); - - expect(component.handleDocumentUriChanges).toHaveBeenCalledWith('DocumentUriDummy'); - }); - }); - - describe('handle document uri changes', () => { - it('should update bescheid document file in form service', () => { - const documentUri: ResourceUri = faker.person.firstName(); - formService.updateBescheidDocumentFile = jest.fn(); - - component.handleDocumentUriChanges(documentUri); - - expect(formService.updateBescheidDocumentFile).toHaveBeenCalledWith(documentUri); - }); - it('should clear bescheid document file in form service', () => { - formService.clearBescheidDocumentFile = jest.fn(); - - component.handleDocumentUriChanges(null); - - expect(formService.clearBescheidDocumentFile).toHaveBeenCalled(); - }); - }); - - describe('upload file', () => { - it('should call service to upload bescheid document', () => { - const bescheidStateResource = createBescheidStateResource(); - const file = createFile(); - component.bescheidDraftStateResource = bescheidStateResource; - - component.uploadFile(file); - - expect(bescheidService.uploadBescheidDocument).toHaveBeenCalledWith(bescheidStateResource.resource, file); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.ts deleted file mode 100644 index ebf303e9cc..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.ts +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { - BescheidLinkRel, - BescheidResource, - BescheidService, - UploadFileInProgress, -} from '@alfa-client/bescheid-shared'; -import { isNotNil, StateResource } from '@alfa-client/tech-shared'; -import { Component, Input, OnDestroy, OnInit } from '@angular/core'; -import { ResourceUri } from '@ngxp/rest'; -import { isNull } from 'lodash-es'; -import { Observable, of, Subscription } from 'rxjs'; -import { BescheidenFormService } from '../../../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-dokument-hochladen', - templateUrl: './vorgang-detail-bescheiden-dokument-hochladen.component.html', - styles: [], -}) -export class VorgangDetailBescheidenDokumentHochladenComponent implements OnInit, OnDestroy { - @Input() bescheidDraftStateResource: StateResource<BescheidResource>; - - public uploadDocumentFileInProgress$: Observable<UploadFileInProgress> = of({ loading: false }); - - public readonly formServiceClass = BescheidenFormService; - public readonly bescheidLinkRel = BescheidLinkRel; - - private documentUriChangeSubscription: Subscription; - - constructor( - public readonly formService: BescheidenFormService, - private bescheidService: BescheidService, - ) {} - - ngOnInit(): void { - this.documentUriChangeSubscription = this.bescheidService - .getDocumentUri() - .subscribe((documentUri) => this.handleDocumentUriChanges(documentUri)); - } - - handleDocumentUriChanges(uri: ResourceUri): void { - if (isNull(uri)) { - this.formService.clearBescheidDocumentFile(); - } else { - this.formService.updateBescheidDocumentFile(uri); - } - } - - public uploadFile(file: File): void { - this.uploadDocumentFileInProgress$ = this.bescheidService.uploadBescheidDocument( - this.bescheidDraftStateResource.resource, - file, - ); - } - - ngOnDestroy(): void { - if (isNotNil(this.documentUriChangeSubscription)) - this.documentUriChangeSubscription.unsubscribe(); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.html deleted file mode 100644 index 93c1452270..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.html +++ /dev/null @@ -1,36 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div class="flex flex-col gap-4"> - <alfa-vorgang-detail-bescheiden-bescheid-automatisch-erstellen - [bescheidDraftStateResource]="bescheidDraftStateResource$ | async" - ></alfa-vorgang-detail-bescheiden-bescheid-automatisch-erstellen> - <alfa-vorgang-detail-bescheiden-dokument-hochladen - [bescheidDraftStateResource]="bescheidDraftStateResource$ | async" - ></alfa-vorgang-detail-bescheiden-dokument-hochladen> - <alfa-vorgang-detail-bescheiden-attachment-hochladen - [bescheidDraftStateResource]="bescheidDraftStateResource$ | async" - ></alfa-vorgang-detail-bescheiden-attachment-hochladen> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.spec.ts deleted file mode 100644 index ea893f621e..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.spec.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService } from '@alfa-client/bescheid-shared'; -import { Mock, mock } from '@alfa-client/test-utils'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MockComponent } from 'ng-mocks'; -import { VorgangDetailBescheidenAttachmentHochladenComponent } from './vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component'; -import { VorgangDetailBescheidenBescheidAutomatischErstellenComponent } from './vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component'; -import { VorgangDetailBescheidenDokumentHochladenComponent } from './vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component'; -import { VorgangDetailBescheidenDokumenteHinzufuegenComponent } from './vorgang-detail-bescheiden-dokumente-hinzufuegen.component'; - -describe('VorgangDetailBescheidenDokumenteHinzufuegenComponent', () => { - let component: VorgangDetailBescheidenDokumenteHinzufuegenComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenDokumenteHinzufuegenComponent>; - - const bescheidService: Mock<BescheidService> = mock(BescheidService); - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenDokumenteHinzufuegenComponent, - MockComponent(VorgangDetailBescheidenBescheidAutomatischErstellenComponent), - MockComponent(VorgangDetailBescheidenDokumentHochladenComponent), - MockComponent(VorgangDetailBescheidenAttachmentHochladenComponent), - ], - providers: [ - { - provide: BescheidService, - useValue: bescheidService, - }, - ], - }).compileComponents(); - fixture = TestBed.createComponent(VorgangDetailBescheidenDokumenteHinzufuegenComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('ngOnInit', () => { - it('should call service get bescheid draft if exists', () => { - component.ngOnInit(); - - expect(bescheidService.getBescheidDraft).toHaveBeenCalled(); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.ts deleted file mode 100644 index ae454a1d2e..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared'; -import { StateResource, createEmptyStateResource } from '@alfa-client/tech-shared'; -import { Component, OnInit } from '@angular/core'; -import { Observable, of } from 'rxjs'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-dokumente-hinzufuegen', - templateUrl: './vorgang-detail-bescheiden-dokumente-hinzufuegen.component.html', - styles: [], -}) -export class VorgangDetailBescheidenDokumenteHinzufuegenComponent implements OnInit { - public bescheidDraftStateResource$: Observable<StateResource<BescheidResource>> = of( - createEmptyStateResource<BescheidResource>(), - ); - - constructor(private bescheidService: BescheidService) {} - - ngOnInit(): void { - this.bescheidDraftStateResource$ = this.bescheidService.getBescheidDraft(); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.html deleted file mode 100644 index d940d1a0b6..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.html +++ /dev/null @@ -1,40 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div - *ngIf="shouldShowStep()" - class="min-h-28 flex-1" - id="vorgang-detail-bescheiden-step-content-{{ step }}" - role="tabpanel" - [tabindex]="shouldShowStepContent() ? '0' : '-1'" -> - <alfa-vorgang-detail-bescheiden-step-title - [label]="stepTitle" - data-test-id="step-caption" - ></alfa-vorgang-detail-bescheiden-step-title> - <div *ngIf="shouldShowStepContent()"> - <ng-content></ng-content> - </div> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.spec.ts deleted file mode 100644 index 825d6d08b6..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.spec.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MockComponent } from 'ng-mocks'; -import { VorgangDetailBescheidenStepTitleComponent } from '../../vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component'; -import { VorgangDetailBescheidenWeiterButtonComponent } from '../../vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component'; -import { VorgangDetailBescheidenStepContentComponent } from './vorgang-detail-bescheiden-step-content.component'; - -describe('VorgangDetailBescheidenStepsContentComponent', () => { - let component: VorgangDetailBescheidenStepContentComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenStepContentComponent>; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenStepContentComponent, - MockComponent(VorgangDetailBescheidenWeiterButtonComponent), - MockComponent(VorgangDetailBescheidenStepTitleComponent), - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenStepContentComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('shouldShowStep', () => { - it('should return true', () => { - component.activeStep = 2; - component.step = 2; - - const shouldShowStep = component.shouldShowStep(); - - expect(shouldShowStep).toBeTruthy(); - }); - - it('should return false', () => { - component.activeStep = 2; - component.step = 3; - - const shouldShowStep = component.shouldShowStep(); - - expect(shouldShowStep).toBeFalsy(); - }); - }); - - describe('shouldShowStepContent', () => { - it('should return true', () => { - component.activeStep = 2; - component.step = 2; - - const shouldShowStep = component.shouldShowStepContent(); - - expect(shouldShowStep).toBeTruthy(); - }); - - it('should return false', () => { - component.activeStep = 2; - component.step = 1; - - const shouldShowStep = component.shouldShowStepContent(); - - expect(shouldShowStep).toBeFalsy(); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.ts deleted file mode 100644 index 4ab18f4714..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { Component, Input } from '@angular/core'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-step-content', - templateUrl: './vorgang-detail-bescheiden-step-content.component.html', - styles: [':host {@apply flex}'], -}) -export class VorgangDetailBescheidenStepContentComponent { - @Input() stepTitle: string; - @Input() step: number; - @Input() nextStep: number; - @Input() activeStep: number = 1; - - public shouldShowStep(): boolean { - return this.activeStep > this.step - 1; - } - - public shouldShowStepContent(): boolean { - return this.activeStep === this.step; - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.html deleted file mode 100644 index ab8c1d21a7..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.html +++ /dev/null @@ -1,69 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<alfa-vorgang-detail-bescheiden-step-content - stepTitle="Antrag bescheiden" - [step]="1" - [nextStep]="2" - [activeStep]="activeStep$ | async" -> - <alfa-vorgang-detail-bescheiden-antrag-bescheiden></alfa-vorgang-detail-bescheiden-antrag-bescheiden> - <alfa-vorgang-detail-bescheiden-weiter-button - (clickEmitter)="changeActiveStep(2)" - [submitResource]="submitResource" - ></alfa-vorgang-detail-bescheiden-weiter-button> -</alfa-vorgang-detail-bescheiden-step-content> - -<alfa-vorgang-detail-bescheiden-step-content - stepTitle="Dokumente hinzufügen" - [step]="2" - [nextStep]="3" - [activeStep]="activeStep$ | async" -> - <alfa-vorgang-detail-bescheiden-dokumente-hinzufuegen - *ngIf="(activeStep$ | async) === 2" - data-test-id="bescheid-documents-upload" - ></alfa-vorgang-detail-bescheiden-dokumente-hinzufuegen> - <alfa-vorgang-detail-bescheiden-weiter-button - (clickEmitter)="changeActiveStep(3)" - [submitResource]="submitResource" - ></alfa-vorgang-detail-bescheiden-weiter-button> -</alfa-vorgang-detail-bescheiden-step-content> - -<alfa-vorgang-detail-bescheiden-step-content - stepTitle="Bescheid versenden" - [step]="3" - [nextStep]="3" - [activeStep]="activeStep$ | async" -> - <alfa-vorgang-detail-bescheiden-bescheid-versenden - *ngIf="(activeStep$ | async) === 3" - data-test-id="bescheiden-bescheid-versenden" - ></alfa-vorgang-detail-bescheiden-bescheid-versenden> -</alfa-vorgang-detail-bescheiden-step-content> - -<alfa-vorgang-detail-bescheiden-ueberspringen-button - *ngIf="showBescheidErstellungUeberspringen$ | async" -></alfa-vorgang-detail-bescheiden-ueberspringen-button> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.spec.ts deleted file mode 100644 index d9ff1e4db6..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.spec.ts +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService } from '@alfa-client/bescheid-shared'; -import { - createEmptyStateResource, - createErrorStateResource, - createStateResource, -} from '@alfa-client/tech-shared'; -import { Mock, getElementFromFixture, mock } from '@alfa-client/test-utils'; -import { VorgangService, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared'; -import { EventEmitter } from '@angular/core'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { createApiError } from 'libs/tech-shared/test/error'; -import { MockComponent } from 'ng-mocks'; -import { EMPTY, of } from 'rxjs'; -import { - createCommandResource, - createCommandStateResource, -} from '../../../../../../../command-shared/test/command'; -import { getDataTestIdOf } from '../../../../../../../tech-shared/test/data-test'; -import { singleCold } from '../../../../../../../tech-shared/test/marbles'; -import { createVorgangWithEingangResource } from '../../../../../../../vorgang-shared/test/vorgang'; -import { BescheidenFormService } from '../../bescheiden.formservice'; -import { VorgangDetailBescheidenStepTitleComponent } from '../vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component'; -import { VorgangDetailBescheidenWeiterButtonComponent } from '../vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component'; -import { VorgangDetailBescheidenAntragBescheidenComponent } from './vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component'; -import { VorgangDetailBescheidenBescheidVersendenComponent } from './vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component'; -import { VorgangDetailBescheidenDokumenteHinzufuegenComponent } from './vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component'; -import { VorgangDetailBescheidenStepContentComponent } from './vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component'; -import { VorgangDetailBescheidenStepsContentComponent } from './vorgang-detail-bescheiden-steps-content.component'; -import { VorgangDetailBescheidenUeberspringenButtonComponent } from './vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component'; - -describe('VorgangDetailBescheidenStepsContentComponent', () => { - let component: VorgangDetailBescheidenStepsContentComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenStepsContentComponent>; - - let vorgangService: Mock<VorgangService>; - let bescheidService: Mock<BescheidService>; - let formService: Mock<BescheidenFormService>; - - const bescheidVersendenTestId: string = getDataTestIdOf('bescheiden-bescheid-versenden'); - - beforeEach(async () => { - vorgangService = mock(VorgangService); - vorgangService.getVorgangWithEingang.mockReturnValue(EMPTY); - - bescheidService = mock(BescheidService); - formService = mock(BescheidenFormService); - - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenStepsContentComponent, - MockComponent(VorgangDetailBescheidenWeiterButtonComponent), - MockComponent(VorgangDetailBescheidenStepTitleComponent), - MockComponent(VorgangDetailBescheidenStepContentComponent), - MockComponent(VorgangDetailBescheidenUeberspringenButtonComponent), - MockComponent(VorgangDetailBescheidenAntragBescheidenComponent), - MockComponent(VorgangDetailBescheidenDokumenteHinzufuegenComponent), - MockComponent(VorgangDetailBescheidenBescheidVersendenComponent), - ], - providers: [ - { - provide: VorgangService, - useValue: vorgangService, - }, - { - provide: BescheidService, - useValue: bescheidService, - }, - { - provide: BescheidenFormService, - useValue: formService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenStepsContentComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('render', () => { - it('should show documents component in step 2', () => { - component.activeStep = 2; - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, getDataTestIdOf('bescheid-documents-upload')); - - expect(element).toBeInstanceOf(HTMLElement); - }); - - it.each([1, 3])('should not show documents component in step %d', (step) => { - component.activeStep = step; - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, getDataTestIdOf('bescheid-documents-upload')); - - expect(element).not.toBeInstanceOf(HTMLElement); - }); - - it('should show bescheid versenden in step 3', () => { - component.activeStep = 3; - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, bescheidVersendenTestId); - - expect(element).toBeInstanceOf(HTMLElement); - }); - - it.each([1, 2])('should not show bescheid versenden in step %d', (step: number) => { - component.activeStep = step; - fixture.detectChanges(); - - const element = getElementFromFixture(fixture, bescheidVersendenTestId); - - expect(element).not.toBeInstanceOf(HTMLElement); - }); - }); - - describe('changeActiveStep', () => { - beforeEach(() => { - component.activeStepChange = <any>mock(EventEmitter); - formService.submit = jest.fn(); - }); - - it('should submit', () => { - component.canChangeTo = jest.fn().mockReturnValue(true); - formService.submit = jest.fn().mockReturnValue(EMPTY); - - component.changeActiveStep(1); - - expect(formService.submit).toHaveBeenCalled(); - }); - - it('should not submit', () => { - component.canChangeTo = jest.fn().mockReturnValue(false); - formService.submit = jest.fn().mockReturnValue(EMPTY); - - component.changeActiveStep(1); - - expect(formService.submit).not.toHaveBeenCalled(); - }); - }); - - describe('canChangeTo', () => { - it.each([1, 2])('should true for step %d', (step: number) => { - const canChange = component.canChangeTo(step); - - expect(canChange).toBeTruthy(); - }); - - it('should return true for step 3', () => { - formService.validateBescheidDocumentExists.mockReturnValue(true); - - const canChange = component.canChangeTo(3); - - expect(canChange).toBeTruthy(); - }); - - it('should return false for step 3', () => { - formService.validateBescheidDocumentExists.mockReturnValue(false); - - const canChange = component.canChangeTo(3); - - expect(canChange).toBeFalsy(); - }); - }); - - describe('ngOnInit', () => { - it('should render überspringen und abschliessen button', () => { - component.activeStep = 1; - vorgangService.getVorgangWithEingang.mockReturnValue( - of( - createStateResource( - createVorgangWithEingangResource([VorgangWithEingangLinkRel.ABSCHLIESSEN]), - ), - ), - ); - - component.ngOnInit(); - - expect(component.showBescheidErstellungUeberspringen$).toBeObservable(singleCold(true)); - }); - - it('should not render überspringen und abschliessen button for active step 2', () => { - component.activeStep = 2; - vorgangService.getVorgangWithEingang.mockReturnValue( - of( - createStateResource( - createVorgangWithEingangResource([VorgangWithEingangLinkRel.ABSCHLIESSEN]), - ), - ), - ); - - component.ngOnInit(); - - expect(component.showBescheidErstellungUeberspringen$).toBeObservable(singleCold(false)); - }); - - it('should not render überspringen und abschliessen button if link missing', () => { - component.activeStep = 1; - vorgangService.getVorgangWithEingang.mockReturnValue( - of(createStateResource(createVorgangWithEingangResource())), - ); - - component.ngOnInit(); - - expect(component.showBescheidErstellungUeberspringen$).toBeObservable(singleCold(false)); - }); - }); - - describe('noError', () => { - it('should return true', () => { - const noError = component.noError(createCommandStateResource()); - - expect(noError).toBeTruthy(); - }); - - it('should return false on not loaded state resource', () => { - const noError = component.noError(createEmptyStateResource()); - - expect(noError).toBeFalsy(); - }); - - it('should return false on loading state resource', () => { - const noError = component.noError(createStateResource(createCommandResource(), true)); - - expect(noError).toBeFalsy(); - }); - - it('should return false on error state resource', () => { - const noError = component.noError(createErrorStateResource(createApiError())); - - expect(noError).toBeFalsy(); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts deleted file mode 100644 index c880db36f7..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { - StateResource, - createEmptyStateResource, - hasStateResourceError, - isLoaded, -} from '@alfa-client/tech-shared'; -import { - VorgangService, - VorgangWithEingangLinkRel, - VorgangWithEingangResource, -} from '@alfa-client/vorgang-shared'; -import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; -import { Resource, hasLink } from '@ngxp/rest'; -import { BehaviorSubject, Observable, combineLatest, filter, first, map, tap } from 'rxjs'; -import { BescheidenFormService } from '../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-steps-content', - templateUrl: './vorgang-detail-bescheiden-steps-content.component.html', - styles: [':host {@apply flex flex-col}'], -}) -export class VorgangDetailBescheidenStepsContentComponent implements OnInit { - readonly activeStep$ = new BehaviorSubject(1); - - @Input() set activeStep(step: number) { - this.activeStep$.next(step); - } - @Output() activeStepChange = new EventEmitter<number>(); - - showBescheidErstellungUeberspringen$: Observable<boolean>; - - submitResource: StateResource<Resource> = createEmptyStateResource(); - - constructor( - private readonly vorgangService: VorgangService, - private formService: BescheidenFormService, - ) {} - - ngOnInit(): void { - this.showBescheidErstellungUeberspringen$ = combineLatest([ - this.vorgangService.getVorgangWithEingang().pipe( - filter(isLoaded), - map((stateResource: StateResource<VorgangWithEingangResource>) => - hasLink(stateResource.resource, VorgangWithEingangLinkRel.ABSCHLIESSEN), - ), - ), - this.activeStep$.pipe(map((step) => step === 1)), - ]).pipe(map(([hasAbschliessenLink, isFirstStep]) => hasAbschliessenLink && isFirstStep)); - } - - public changeActiveStep(step: number): void { - if (this.canChangeTo(step)) { - this.formService - .submit() - .pipe( - tap((resource: StateResource<Resource>) => (this.submitResource = resource)), - filter(this.noError), - first(), - ) - .subscribe(() => { - this.formService.setActiveStep(step); - this.activeStepChange.emit(step); - }); - } - } - - canChangeTo(nextStep: number): boolean { - if (nextStep < 3) { - return true; - } - return this.formService.validateBescheidDocumentExists(); - } - - noError(stateResource: StateResource<Resource>): boolean { - return isLoaded(stateResource) && !hasStateResourceError(stateResource); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.html deleted file mode 100644 index c12b66319d..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.html +++ /dev/null @@ -1,32 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<button - (click)="onClick()" - data-test-id="bescheid-ueberspringen" - class="mt-6 select-none text-left text-primary hover:underline" -> - Bescheiderstellung überspringen<br />und abschließen -</button> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.ts deleted file mode 100644 index 6b574a9707..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { Mock, mock } from '@alfa-client/test-utils'; -import { OzgcloudDialogService } from '@alfa-client/ui'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { VorgangDetailBescheidenUeberspringenDialogComponent } from '../vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component'; -import { VorgangDetailBescheidenUeberspringenButtonComponent } from './vorgang-detail-bescheiden-ueberspringen-button.component'; - -describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { - let component: VorgangDetailBescheidenUeberspringenButtonComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenUeberspringenButtonComponent>; - - let ozgcloudDialogService: Mock<OzgcloudDialogService>; - - beforeEach(async () => { - ozgcloudDialogService = mock(OzgcloudDialogService); - - await TestBed.configureTestingModule({ - declarations: [VorgangDetailBescheidenUeberspringenButtonComponent], - providers: [ - { - provide: OzgcloudDialogService, - useValue: ozgcloudDialogService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenUeberspringenButtonComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('onClick', () => { - it('should open dialog', () => { - component.onClick(); - - expect(ozgcloudDialogService.open).toHaveBeenCalledWith( - VorgangDetailBescheidenUeberspringenDialogComponent, - ); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.ts deleted file mode 100644 index 37aa7deb4c..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { OzgcloudDialogService } from '@alfa-client/ui'; -import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; -import { Component, Input } from '@angular/core'; -import { VorgangDetailBescheidenUeberspringenDialogComponent } from '../vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-button', - templateUrl: './vorgang-detail-bescheiden-ueberspringen-button.component.html', - styles: [':host {@apply flex flex-1 items-end}'], -}) -export class VorgangDetailBescheidenUeberspringenButtonComponent { - @Input() vorgang: VorgangWithEingangResource; - - constructor(private readonly ozgcloudDialogService: OzgcloudDialogService) {} - - public onClick(): void { - this.ozgcloudDialogService.open<VorgangDetailBescheidenUeberspringenDialogComponent>( - VorgangDetailBescheidenUeberspringenDialogComponent, - ); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.html deleted file mode 100644 index 407ab86311..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.html +++ /dev/null @@ -1,68 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div - class="relative m-6 max-w-2xl rounded-lg bg-modalBg p-6 shadow-xl" - data-test-id="bescheid-ueberspringen-dialog" -> - <button - class="absolute right-4 top-4 flex size-12 items-center justify-center rounded-full hover:bg-background-100" - (click)="onClose()" - > - <mat-icon>close</mat-icon> - </button> - - <div class="flex flex-col gap-6"> - <div> - <h4 class="text-lg font-medium text-primary">Bescheiderstellung überspringen</h4> - </div> - <div class="grow"> - <p class="text-base"> - Soll die Bescheiderstellung übersprungen und der Vorgang direkt in den Status Abgeschlossen - gesetzt werden? - </p> - </div> - <div class="flex gap-4"> - <ozgcloud-stroked-button-with-spinner - (click)="onConfirm()" - data-test-id="ueberspringen-abschliessen-button" - text="Überspringen und abschließen" - type="submit" - icon="check" - [stateResource]="bescheiderstellungUeberspringen$ | async" - > - </ozgcloud-stroked-button-with-spinner> - <ozgcloud-stroked-button-with-spinner - (click)="onCancel()" - data-test-id="ueberspringen-abbrechen-button" - text="Abbrechen" - color="" - icon="clear" - type="submit" - > - </ozgcloud-stroked-button-with-spinner> - </div> - </div> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts deleted file mode 100644 index 8429d31856..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService } from '@alfa-client/bescheid-shared'; -import { CommandResource } from '@alfa-client/command-shared'; -import { - StateResource, - createEmptyStateResource, - createStateResource, -} from '@alfa-client/tech-shared'; -import { Mock, mock } from '@alfa-client/test-utils'; -import { OzgcloudDialogService, OzgcloudStrokedButtonWithSpinnerComponent } from '@alfa-client/ui'; -import { VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; -import { DialogRef } from '@angular/cdk/dialog'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatIcon } from '@angular/material/icon'; -import { cold } from 'jest-marbles'; -import { MockComponent } from 'ng-mocks'; -import { of } from 'rxjs'; -import { CommandLinkRel } from '../../../../../../../../command-shared/src/lib/command.linkrel'; -import { createCommandResource } from '../../../../../../../../command-shared/test/command'; -import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang'; -import { VorgangDetailBescheidenUeberspringenDialogComponent } from './vorgang-detail-bescheiden-ueberspringen-dialog.component'; - -describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { - let component: VorgangDetailBescheidenUeberspringenDialogComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenUeberspringenDialogComponent>; - - let dialogRef: Mock<DialogRef>; - let bescheidService: Mock<BescheidService>; - let ozgcloudDialogService: Mock<OzgcloudDialogService>; - let vorgangService: Mock<VorgangService>; - - beforeEach(async () => { - dialogRef = mock(DialogRef); - bescheidService = mock(BescheidService); - ozgcloudDialogService = mock(OzgcloudDialogService); - vorgangService = mock(VorgangService); - - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenUeberspringenDialogComponent, - MockComponent(OzgcloudStrokedButtonWithSpinnerComponent), - MockComponent(MatIcon), - ], - providers: [ - { - provide: DialogRef, - useValue: dialogRef, - }, - { - provide: BescheidService, - useValue: bescheidService, - }, - { - provide: OzgcloudDialogService, - useValue: ozgcloudDialogService, - }, - { - provide: VorgangService, - useValue: vorgangService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenUeberspringenDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('onCancel', () => { - it('should close dialog', () => { - component.onCancel(); - - expect(dialogRef.close).toHaveBeenCalled(); - }); - }); - - describe('onConfirm', () => { - let vorgangWithEingangResource: VorgangWithEingangResource; - const successfullyDoneCommandStateResource: StateResource<CommandResource> = - createStateResource(createCommandResource([CommandLinkRel.EFFECTED_RESOURCE])); - - beforeEach(() => { - vorgangWithEingangResource = createVorgangWithEingangResource(); - vorgangService.getVorgangWithEingang.mockReturnValue( - of(createStateResource(vorgangWithEingangResource)), - ); - bescheidService.bescheidErstellungUeberspringen.mockReturnValue( - of(successfullyDoneCommandStateResource), - ); - }); - - it('should get vorgang with eingang', () => { - component.onConfirm(); - - expect(vorgangService.getVorgangWithEingang).toHaveBeenCalled(); - }); - - it('should call bescheid service erstellung ueberspringen', (done) => { - component.onConfirm(); - - component.bescheiderstellungUeberspringen$.subscribe(() => { - expect(bescheidService.bescheidErstellungUeberspringen).toHaveBeenCalledWith( - vorgangWithEingangResource, - ); - done(); - }); - }); - - it('should close all dialogs on success', (done) => { - component.onConfirm(); - - component.bescheiderstellungUeberspringen$.subscribe(() => { - expect(ozgcloudDialogService.closeAll).toHaveBeenCalled(); - done(); - }); - }); - - it('should not close all dialogs on command not done successfully', (done) => { - bescheidService.bescheidErstellungUeberspringen.mockReturnValue( - of(createEmptyStateResource()), - ); - - component.onConfirm(); - - component.bescheiderstellungUeberspringen$.subscribe(() => { - expect(ozgcloudDialogService.closeAll).not.toHaveBeenCalled(); - done(); - }); - }); - - it('should return command', () => { - component.onConfirm(); - - expect(component.bescheiderstellungUeberspringen$).toBeObservable( - cold('(a|)', { a: successfullyDoneCommandStateResource }), - ); - }); - }); - - describe('onClose', () => { - it('should close dialog', () => { - component.onClose(); - - expect(dialogRef.close).toHaveBeenCalled(); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts deleted file mode 100644 index c960ee26ac..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidService } from '@alfa-client/bescheid-shared'; -import { CommandResource, tapOnCommandSuccessfullyDone } from '@alfa-client/command-shared'; -import { StateResource, isLoaded } from '@alfa-client/tech-shared'; -import { OzgcloudDialogService } from '@alfa-client/ui'; -import { VorgangService } from '@alfa-client/vorgang-shared'; -import { DialogRef } from '@angular/cdk/dialog'; -import { Component } from '@angular/core'; -import { Observable, filter, first, switchMap } from 'rxjs'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-dialog', - templateUrl: './vorgang-detail-bescheiden-ueberspringen-dialog.component.html', -}) -export class VorgangDetailBescheidenUeberspringenDialogComponent { - bescheiderstellungUeberspringen$: Observable<StateResource<CommandResource>>; - - constructor( - private readonly dialogRef: DialogRef, - private readonly bescheidService: BescheidService, - private readonly ozgcloudDialogService: OzgcloudDialogService, - private readonly vorgangService: VorgangService, - ) {} - - public onClose(): void { - this.dialogRef.close(); - } - - public onConfirm(): void { - this.bescheiderstellungUeberspringen$ = this.vorgangService.getVorgangWithEingang().pipe( - filter(isLoaded), - first(), - switchMap((stateResource) => - this.bescheidService.bescheidErstellungUeberspringen(stateResource.resource).pipe( - tapOnCommandSuccessfullyDone(() => { - this.ozgcloudDialogService.closeAll(); - }), - ), - ), - ); - } - - public onCancel(): void { - this.dialogRef.close(); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.html deleted file mode 100644 index 5036dc81f8..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.html +++ /dev/null @@ -1,34 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div class="flex w-full flex-row gap-7" role="tablist" aria-orientation="vertical"> - <alfa-vorgang-detail-bescheiden-step-buttons - [(activeStep)]="activeStep" - ></alfa-vorgang-detail-bescheiden-step-buttons> - <alfa-vorgang-detail-bescheiden-steps-content - class="flex-1" - [(activeStep)]="activeStep" - ></alfa-vorgang-detail-bescheiden-steps-content> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.spec.ts deleted file mode 100644 index 3f3fe9261b..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.spec.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MockComponent } from 'ng-mocks'; -import { VorgangDetailBescheidenStepButtonsComponent } from './vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component'; -import { VorgangDetailBescheidenStepsContentComponent } from './vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component'; -import { VorgangDetailBescheidenStepsComponent } from './vorgang-detail-bescheiden-steps.component'; -import { VorgangDetailBescheidenWeiterButtonComponent } from './vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component'; - -describe('VorgangDetailBescheidenStepsComponent', () => { - let component: VorgangDetailBescheidenStepsComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenStepsComponent>; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenStepsComponent, - MockComponent(VorgangDetailBescheidenStepButtonsComponent), - MockComponent(VorgangDetailBescheidenWeiterButtonComponent), - MockComponent(VorgangDetailBescheidenStepsContentComponent), - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenStepsComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('changeActiveStep', () => { - it('should set activeStep', () => { - const step: number = 1; - - component.changeActiveStep(step); - - expect(component.activeStep).toBe(step); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.ts deleted file mode 100644 index c77004f343..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { Component, Input } from '@angular/core'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-steps', - templateUrl: './vorgang-detail-bescheiden-steps.component.html', -}) -export class VorgangDetailBescheidenStepsComponent { - @Input() activeStep: number = 1; - - public changeActiveStep(step: number): void { - this.activeStep = step; - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.html deleted file mode 100644 index 49e6a9a790..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.html +++ /dev/null @@ -1,36 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<ods-button-with-spinner - *ngIf="showButton$ | async" - (clickEmitter)="clickEmitter.emit()" - [stateResource]="submitResource" - variant="primary" - size="medium" - class="mt-8 flex" - dataTestId="bescheid-weiter-button" - text="Weiter" -> -</ods-button-with-spinner> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.spec.ts deleted file mode 100644 index 510d50d1bc..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.spec.ts +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidLinkRel, BescheidService } from '@alfa-client/bescheid-shared'; -import { createStateResource } from '@alfa-client/tech-shared'; -import { Mock, mock } from '@alfa-client/test-utils'; -import { VorgangService, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { cold } from 'jest-marbles'; -import { EMPTY, of } from 'rxjs'; -import { createBescheidResource } from '../../../../../../../bescheid-shared/src/test/bescheid'; -import { createVorgangWithEingangResource } from '../../../../../../../vorgang-shared/test/vorgang'; -import { BescheidenFormService } from '../../bescheiden.formservice'; -import { VorgangDetailBescheidenWeiterButtonComponent } from './vorgang-detail-bescheiden-weiter-button.component'; - -describe('VorgangDetailBescheidenWeiterButtonComponent', () => { - let component: VorgangDetailBescheidenWeiterButtonComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenWeiterButtonComponent>; - - let formService: Mock<BescheidenFormService>; - let bescheidService: Mock<BescheidService>; - let vorgangService: Mock<VorgangService>; - - beforeEach(async () => { - formService = mock(BescheidenFormService); - bescheidService = mock(BescheidService); - vorgangService = mock(VorgangService); - bescheidService.getBescheidDraftIfExists.mockReturnValue(EMPTY); - vorgangService.getVorgangWithEingang.mockReturnValue(EMPTY); - - await TestBed.configureTestingModule({ - declarations: [VorgangDetailBescheidenWeiterButtonComponent], - providers: [ - { - provide: BescheidenFormService, - useValue: formService, - }, - { - provide: BescheidService, - useValue: bescheidService, - }, - { - provide: VorgangService, - useValue: vorgangService, - }, - ], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenWeiterButtonComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('ngOnInit', () => { - it('should show button if update link available', () => { - const bescheidResource = createBescheidResource([BescheidLinkRel.UPDATE]); - bescheidService.getBescheidDraftIfExists.mockReturnValue( - of(createStateResource(bescheidResource)), - ); - - component.ngOnInit(); - - expect(component.showButton$).toBeObservable(cold('(a|)', { a: true })); - }); - - it('should not show button if update link unavailable', () => { - const bescheidResource = createBescheidResource(); - bescheidService.getBescheidDraftIfExists.mockReturnValue( - of(createStateResource(bescheidResource)), - ); - - component.ngOnInit(); - - expect(component.showButton$).toBeObservable(cold('(a|)', { a: false })); - }); - - it('should show button if create bescheid draft link available', () => { - const vorgangWithEingangResource = createVorgangWithEingangResource([ - VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT, - ]); - vorgangService.getVorgangWithEingang.mockReturnValue( - of(createStateResource(vorgangWithEingangResource)), - ); - - component.ngOnInit(); - - expect(component.showButton$).toBeObservable(cold('(a|)', { a: true })); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts deleted file mode 100644 index 8a231cf355..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidLinkRel, BescheidService } from '@alfa-client/bescheid-shared'; -import { StateResource, createEmptyStateResource, isLoaded } from '@alfa-client/tech-shared'; -import { VorgangService, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared'; -import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; -import { Resource, hasLink } from '@ngxp/rest'; -import { Observable, filter, map, merge } from 'rxjs'; -import { BescheidenFormService } from '../../bescheiden.formservice'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden-weiter-button', - templateUrl: './vorgang-detail-bescheiden-weiter-button.component.html', -}) -export class VorgangDetailBescheidenWeiterButtonComponent implements OnInit { - @Input() submitResource: StateResource<Resource> = createEmptyStateResource(); - @Output() clickEmitter: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>(); - - showButton$: Observable<boolean>; - - constructor( - public formService: BescheidenFormService, - private readonly bescheidService: BescheidService, - private readonly vorgangService: VorgangService, - ) {} - - ngOnInit(): void { - this.showButton$ = merge( - this.vorgangService.getVorgangWithEingang(), - this.bescheidService.getBescheidDraftIfExists(), - ).pipe( - filter(isLoaded), - map( - (stateResource) => - hasLink(stateResource.resource, VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT) || - hasLink(stateResource.resource, BescheidLinkRel.UPDATE), - ), - ); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html deleted file mode 100644 index da99c64248..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html +++ /dev/null @@ -1,54 +0,0 @@ -<!-- - - Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<div - class="relative z-10 duration-500 ease-in-out" - aria-label="Bescheid Dialog" - role="dialog" - aria-modal="true" - data-test-id="bescheid-wizard" -> - <div class="fixed inset-0 z-10 w-screen overflow-y-auto"> - <div class="flex h-full items-center justify-center p-8"> - <div - class="relative h-full w-full max-w-7xl transform overflow-hidden rounded-lg bg-background-200 px-6 py-10 text-left shadow-xl transition-all" - > - <alfa-vorgang-detail-bescheiden-abbrechen-button - (clickEmitter)="cancelWizard()" - ></alfa-vorgang-detail-bescheiden-abbrechen-button> - <form [formGroup]="formService.form" class="flex h-full flex-row gap-11"> - <alfa-vorgang-detail-bescheiden-steps - class="flex w-1/2" - ></alfa-vorgang-detail-bescheiden-steps> - <alfa-vorgang-detail-bescheiden-result - data-test-id="bescheiden-result" - (closeDialog)="onClose()" - class="flex w-1/2" - ></alfa-vorgang-detail-bescheiden-result> - </form> - </div> - </div> - </div> -</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts deleted file mode 100644 index b976d702d6..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared'; -import { PostfachService } from '@alfa-client/postfach-shared'; -import { Mock, dispatchEventFromFixture, mock, useFromMock } from '@alfa-client/test-utils'; -import { OzgcloudDialogService } from '@alfa-client/ui'; -import { VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; -import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms'; -import { MatIcon } from '@angular/material/icon'; -import { getDataTestIdOf } from 'libs/tech-shared/test/data-test'; -import { MockComponent } from 'ng-mocks'; -import { Subscription, of } from 'rxjs'; -import { createBescheidResource } from '../../../../../bescheid-shared/src/test/bescheid'; -import { createVorgangWithEingangResource } from '../../../../../vorgang-shared/test/vorgang'; -import { BescheidenFormService } from './bescheiden.formservice'; -import { VorgangDetailBescheidenResultComponent } from './vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component'; -import { VorgangDetailBescheidenAbbrechenButtonComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component'; -import { VorgangDetailBescheidenAbbrechenDialogComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component'; -import { VorgangDetailBescheidenStepsComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component'; -import { VorgangDetailBescheidenComponent } from './vorgang-detail-bescheiden.component'; - -describe('VorgangDetailBescheidenComponent', () => { - let component: VorgangDetailBescheidenComponent; - let fixture: ComponentFixture<VorgangDetailBescheidenComponent>; - - let bescheidService: Mock<BescheidService>; - let vorgangService: Mock<VorgangService>; - let formService: BescheidenFormService; - let postfachService: Mock<PostfachService>; - let ozgcloudDialogService: Mock<OzgcloudDialogService>; - - let vorgangWithEingangResource: VorgangWithEingangResource; - let bescheidDraftResource: BescheidResource; - - const bescheidenResult: string = getDataTestIdOf('bescheiden-result'); - - beforeEach(async () => { - bescheidService = mock(BescheidService); - vorgangService = mock(VorgangService); - formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService)); - postfachService = mock(PostfachService); - ozgcloudDialogService = mock(OzgcloudDialogService); - - vorgangWithEingangResource = createVorgangWithEingangResource(); - bescheidDraftResource = createBescheidResource(); - - TestBed.overrideComponent(VorgangDetailBescheidenComponent, { - set: { - providers: [ - { - provide: BescheidenFormService, - useValue: formService, - }, - ], - }, - }); - await TestBed.configureTestingModule({ - declarations: [ - VorgangDetailBescheidenComponent, - MockComponent(VorgangDetailBescheidenStepsComponent), - MockComponent(VorgangDetailBescheidenResultComponent), - MockComponent(VorgangDetailBescheidenAbbrechenButtonComponent), - MockComponent(MatIcon), - ], - providers: [ - { - provide: BescheidService, - useValue: bescheidService, - }, - { - provide: VorgangService, - useValue: vorgangService, - }, - { - provide: DialogRef, - useValue: { keydownEvents: of(KeyboardEvent), close: jest.fn(), disableClose: false }, - }, - { - provide: DIALOG_DATA, - useValue: { vorgangWithEingangResource, bescheidDraftResource }, - }, - { - provide: PostfachService, - useValue: postfachService, - }, - { - provide: OzgcloudDialogService, - useValue: ozgcloudDialogService, - }, - ], - imports: [ReactiveFormsModule], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangDetailBescheidenComponent); - component = fixture.componentInstance; - - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('ngOnInit', () => { - it('should set vorgang on form service', () => { - const setVorgangWithEingangResource = (formService.setVorgangWithEingangResource = jest.fn()); - - component.ngOnInit(); - - expect(setVorgangWithEingangResource).toHaveBeenCalledWith(vorgangWithEingangResource); - }); - - it('should patch values', () => { - const patchValues = (formService.patchValues = jest.fn()); - - component.ngOnInit(); - - expect(patchValues).toHaveBeenCalledWith(bescheidDraftResource); - }); - - it('should call handleEscapeKey', () => { - component.handleEscapeKey = jest.fn(); - - component.ngOnInit(); - - expect(component.handleEscapeKey).toHaveBeenCalled(); - }); - }); - - describe('handleEscapeKey', () => { - it('should subscribe to dialogRef.keydownEvents', () => { - component.handleEscapeKey(); - - expect(component.keydownEventsSubscription).toBeInstanceOf(Subscription); - }); - }); - - describe('ngOnDestroy', () => { - it('should unsubscribe keydownEventsSubscription', () => { - component.keydownEventsSubscription = new Subscription(); - jest.spyOn(component.keydownEventsSubscription, 'unsubscribe'); - - component.ngOnDestroy(); - - expect(component.keydownEventsSubscription.unsubscribe).toHaveBeenCalled(); - }); - }); - - describe('onClose', () => { - it('should call dialogRef.close', () => { - component.onClose(); - - expect(component.dialogRef.close).toHaveBeenCalled(); - }); - - it('should call vorgang service to reload current vorgang', () => { - component.onClose(); - - expect(vorgangService.reloadCurrentVorgang).toHaveBeenCalled(); - }); - - it('should reload postfach mail list', () => { - component.onClose(); - - expect(postfachService.setPostfachMailOnReload).toHaveBeenCalled(); - }); - }); - - describe('close dialog on bescheiden result', () => { - it('should close dialog ref', () => { - dispatchEventFromFixture(fixture, bescheidenResult, 'closeDialog'); - - expect(component.dialogRef.close).toHaveBeenCalled(); - }); - }); - - describe('cancelWizard', () => { - it('should call ozgcloudDialogService.open', () => { - component.cancelWizard(); - - expect(ozgcloudDialogService.openInCallingComponentContext).toHaveBeenCalledWith( - VorgangDetailBescheidenAbbrechenDialogComponent, - component.viewContainerRef, - ); - }); - }); -}); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts deleted file mode 100644 index 24f030b719..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -import { BescheidResource } from '@alfa-client/bescheid-shared'; -import { PostfachService } from '@alfa-client/postfach-shared'; -import { isEscapeKey } from '@alfa-client/tech-shared'; -import { OzgcloudDialogService } from '@alfa-client/ui'; -import { VorgangService } from '@alfa-client/vorgang-shared'; -import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog'; -import { Component, Inject, OnDestroy, OnInit, ViewContainerRef } from '@angular/core'; -import { Subscription, filter } from 'rxjs'; -import { BescheidenFormService } from './bescheiden.formservice'; -import { BescheidenDialogData } from './bescheiden.model'; -import { VorgangDetailBescheidenAbbrechenDialogComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component'; - -@Component({ - selector: 'alfa-vorgang-detail-bescheiden', - templateUrl: './vorgang-detail-bescheiden.component.html', - providers: [BescheidenFormService], -}) -export class VorgangDetailBescheidenComponent implements OnDestroy, OnInit { - private readonly bescheidDraftResource: BescheidResource; - - keydownEventsSubscription: Subscription; - - public activeStep: number = 1; - - constructor( - public dialogRef: DialogRef, - public readonly formService: BescheidenFormService, - private readonly vorgangService: VorgangService, - private readonly postfachService: PostfachService, - @Inject(DIALOG_DATA) private readonly dialogData: BescheidenDialogData, - private readonly ozgcloudDialogService: OzgcloudDialogService, - readonly viewContainerRef: ViewContainerRef, - ) { - this.bescheidDraftResource = dialogData.bescheidDraftResource; - } - - ngOnInit(): void { - this.formService.setVorgangWithEingangResource(this.dialogData.vorgangWithEingangResource); - this.formService.patchValues(this.bescheidDraftResource); - this.handleEscapeKey(); - } - - handleEscapeKey(): void { - this.keydownEventsSubscription = this.dialogRef.keydownEvents - .pipe(filter(isEscapeKey)) - .subscribe(() => this.cancelWizard()); - } - - ngOnDestroy(): void { - this.keydownEventsSubscription.unsubscribe(); - } - - public onClose(): void { - this.dialogRef.close(); - this.vorgangService.reloadCurrentVorgang(); - this.postfachService.setPostfachMailOnReload(); - } - - public cancelWizard(): void { - this.ozgcloudDialogService.openInCallingComponentContext<VorgangDetailBescheidenAbbrechenDialogComponent>( - VorgangDetailBescheidenAbbrechenDialogComponent, - this.viewContainerRef, - ); - } -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts index 44f75752c4..150d74f675 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts @@ -24,22 +24,16 @@ import { CommandResource } from '@alfa-client/command-shared'; import { LoeschAnforderungService } from '@alfa-client/loesch-anforderung-shared'; import { NavigationService } from '@alfa-client/navigation-shared'; -import { StateResource, isResourceNotFoundError } from '@alfa-client/tech-shared'; +import { isResourceNotFoundError, StateResource } from '@alfa-client/tech-shared'; import { Messages, SnackBarService } from '@alfa-client/ui'; -import { - VorgangCommandService, - VorgangService, - VorgangWithEingangResource, -} from '@alfa-client/vorgang-shared'; +import { VorgangCommandService, VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; import { Component, OnInit } from '@angular/core'; import { Observable, tap } from 'rxjs'; -import { BescheidenFormService } from './vorgang-detail-bescheiden/bescheiden.formservice'; @Component({ selector: 'alfa-vorgang-detail-page', templateUrl: './vorgang-detail-page.component.html', styleUrls: ['./vorgang-detail-page.component.scss'], - providers: [BescheidenFormService], }) export class VorgangDetailPageComponent implements OnInit { vorgangStateResource$: Observable<StateResource<VorgangWithEingangResource>>; @@ -57,12 +51,9 @@ export class VorgangDetailPageComponent implements OnInit { ngOnInit(): void { this.vorgangStateResource$ = this.vorgangService .getVorgangWithEingang() - .pipe( - tap((resource: StateResource<VorgangWithEingangResource>) => this.handleApiError(resource)), - ); + .pipe(tap((resource: StateResource<VorgangWithEingangResource>) => this.handleApiError(resource))); this.revokeCommandStateResource$ = this.vorgangCommandService.getRevokeCommand(); - this.vorgangLoeschenCommandStateResource$ = - this.loeschAnforderungService.getEndgueltigLoeschenCommand(); + this.vorgangLoeschenCommandStateResource$ = this.loeschAnforderungService.getEndgueltigLoeschenCommand(); } handleApiError(resource: StateResource<VorgangWithEingangResource>) { diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts index df1ec6563f..275fc4d082 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts @@ -32,21 +32,7 @@ import { LoeschAnforderungSharedModule } from '@alfa-client/loesch-anforderung-s import { PostfachModule } from '@alfa-client/postfach'; import { PostfachSharedModule } from '@alfa-client/postfach-shared'; import { ConvertForDataTestPipe, ConvertProblemDetailToErrorMessagesPipe, HasLinkPipe } from '@alfa-client/tech-shared'; -import { - BackButtonComponent, - DateEditorComponent, - ExpansionPanelComponent, - IconButtonWithSpinnerComponent, - OzgcloudIconButtonPrimaryComponent, - OzgcloudIconComponent, - OzgcloudMenuComponent, - OzgcloudPasteTextButtonComponent, - OzgcloudStrokedButtonWithSpinnerComponent, - OzgcloudTextEditorComponent, - SpinnerComponent, - SpinnerTransparencyComponent, - SubnavigationComponent, -} from '@alfa-client/ui'; +import { BackButtonComponent, DateEditorComponent, ExpansionPanelComponent, IconButtonWithSpinnerComponent, OzgcloudIconButtonPrimaryComponent, OzgcloudIconComponent, OzgcloudMenuComponent, OzgcloudPasteTextButtonComponent, OzgcloudStrokedButtonWithSpinnerComponent, OzgcloudTextEditorComponent, SpinnerComponent, SpinnerTransparencyComponent, SubnavigationComponent, } from '@alfa-client/ui'; import { UserProfileModule } from '@alfa-client/user-profile'; import { UserProfileSharedModule } from '@alfa-client/user-profile-shared'; import { VorgangSharedModule } from '@alfa-client/vorgang-shared'; @@ -60,13 +46,7 @@ import { MatIcon } from '@angular/material/icon'; import { MatMenuTrigger } from '@angular/material/menu'; import { MatTab, MatTabContent, MatTabGroup } from '@angular/material/tabs'; import { RouterModule, Routes } from '@angular/router'; -import { - ButtonWithSpinnerComponent, - FileUploadEditorComponent, - SingleFileUploadEditorComponent, - TextareaEditorComponent, - TextEditorComponent, -} from '@ods/component'; +import { ButtonWithSpinnerComponent, FileUploadEditorComponent, SingleFileUploadEditorComponent, TextareaEditorComponent, TextEditorComponent, } from '@ods/component'; import { ArchiveIconComponent, AttachmentComponent, @@ -119,29 +99,6 @@ import { VorgangDetailFormularDatenComponent } from './vorgang-detail-page/vorga import { VorgangDetailHeaderComponent } from './vorgang-detail-page/vorgang-detail-area/vorgang-detail-header/vorgang-detail-header.component'; import { VorgangDetailBackButtonContainerComponent } from './vorgang-detail-page/vorgang-detail-back-button-container/vorgang-detail-back-button-container.component'; import { VorgangDetailBackButtonComponent } from './vorgang-detail-page/vorgang-detail-back-button-container/vorgang-detail-back-button/vorgang-detail-back-button.component'; -import { VorgangDetailBescheidenResultAttachmentsComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component'; -import { VorgangDetailBescheidenResultDokumentComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component'; -import { VorgangDetailBescheidenResultNachrichtComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component'; -import { VorgangDetailBescheidenResultStatusComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component'; -import { VorgangDetailBescheidenResultComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component'; -import { VorgangDetailBescheidenStepButtonComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component'; -import { VorgangDetailBescheidenStepButtonsComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component'; -import { VorgangDetailBescheidenStepTitleComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component'; -import { VorgangDetailBescheidenAbbrechenButtonComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component'; -import { VorgangDetailBescheidenAbbrechenDialogComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component'; -import { VorgangDetailBescheidenAntragBescheidenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component'; -import { VorgangDetailBescheidenBescheidVersendenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component'; -import { VorgangDetailBescheidenAttachmentHochladenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component'; -import { VorgangDetailBescheidenBescheidAutomatischErstellenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component'; -import { VorgangDetailBescheidenDokumentHochladenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component'; -import { VorgangDetailBescheidenDokumenteHinzufuegenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component'; -import { VorgangDetailBescheidenStepContentComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component'; -import { VorgangDetailBescheidenStepsContentComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component'; -import { VorgangDetailBescheidenUeberspringenButtonComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component'; -import { VorgangDetailBescheidenUeberspringenDialogComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component'; -import { VorgangDetailBescheidenStepsComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component'; -import { VorgangDetailBescheidenWeiterButtonComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component'; -import { VorgangDetailBescheidenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component'; import { VorgangArchiveConfirmationDialogContainerComponent } from './vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-confirmation-dialog-container/vorgang-archive-confirmation-dialog-container.component'; import { VorgangArchiveConfirmationDialogComponent } from './vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-confirmation-dialog-container/vorgang-archive-confirmation-dialog/vorgang-archive-confirmation-dialog.component'; import { VorgangArchiveContainerComponent } from './vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-container.component'; @@ -262,34 +219,11 @@ const routes: Routes = [ ProcessVorgangContainerComponent, AktenzeichenEditableComponent, AktenzeichenEditDialogComponent, - VorgangDetailBescheidenComponent, - VorgangDetailBescheidenResultComponent, - VorgangDetailBescheidenStepButtonComponent, - VorgangDetailBescheidenStepsComponent, - VorgangDetailBescheidenStepButtonsComponent, - VorgangDetailBescheidenWeiterButtonComponent, - VorgangDetailBescheidenStepTitleComponent, - VorgangDetailBescheidenStepsContentComponent, - VorgangDetailBescheidenStepContentComponent, - VorgangDetailBescheidenResultStatusComponent, - VorgangDetailBescheidenUeberspringenButtonComponent, - VorgangDetailBescheidenUeberspringenDialogComponent, - VorgangDetailBescheidenAbbrechenDialogComponent, - VorgangDetailBescheidenAbbrechenButtonComponent, - VorgangDetailBescheidenDokumentHochladenComponent, - VorgangDetailBescheidenBescheidAutomatischErstellenComponent, - VorgangDetailBescheidenDokumenteHinzufuegenComponent, - VorgangDetailBescheidenAntragBescheidenComponent, - VorgangDetailBescheidenAttachmentHochladenComponent, - VorgangDetailBescheidenResultDokumentComponent, - VorgangDetailBescheidenResultAttachmentsComponent, - VorgangDetailBescheidenBescheidVersendenComponent, - VorgangDetailBescheidenResultNachrichtComponent, VorgangDetailDateienContainerComponent, VorgangArchiveContainerComponent, VorgangArchiveConfirmationDialogContainerComponent, VorgangArchiveConfirmationDialogComponent, ], - exports: [VorgangDetailAntragstellerComponent, VorgangDetailAntragDataComponent, VorgangDetailBescheidenComponent], + exports: [VorgangDetailAntragstellerComponent, VorgangDetailAntragDataComponent], }) export class VorgangDetailModule {} -- GitLab