From 64fdf2823454c8b097051f0373f7ba5188aa9b97 Mon Sep 17 00:00:00 2001 From: Albert <Albert.Bruns@mgm-tp.com> Date: Mon, 10 Mar 2025 10:52:56 +0100 Subject: [PATCH] OZG-725-7893 button disable --- .../button-with-spinner.component.ts | 2 ++ .../forwarding-item.component.ts | 2 +- .../forwarding-button.component.html | 2 +- .../forwarding-button.component.ts | 6 +++-- .../forwarding-dialog.component.html | 6 ++--- .../forwarding-dialog.component.spec.ts | 23 ++++++++++++++++++- 6 files changed, 33 insertions(+), 8 deletions(-) diff --git a/alfa-client/libs/design-component/src/lib/button-with-spinner/button-with-spinner.component.ts b/alfa-client/libs/design-component/src/lib/button-with-spinner/button-with-spinner.component.ts index a12b0a8ad7..4c1ebd4cfe 100644 --- a/alfa-client/libs/design-component/src/lib/button-with-spinner/button-with-spinner.component.ts +++ b/alfa-client/libs/design-component/src/lib/button-with-spinner/button-with-spinner.component.ts @@ -44,6 +44,7 @@ type ButtonVariants = VariantProps<typeof buttonVariants>; [size]="size" [dataTestId]="dataTestId" [isLoading]="isLoading" + [disabled]="disabled" (click)="clickEmitter.emit()" > <ng-content icon select="[icon]" /> @@ -57,6 +58,7 @@ export class ButtonWithSpinnerComponent { @Input() dataTestId: string = ''; @Input() variant: ButtonVariants['variant'] = 'primary'; @Input() size: ButtonVariants['size'] = 'medium'; + @Input() disabled: boolean = false; @Output() public clickEmitter: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>(); diff --git a/alfa-client/libs/design-system/src/lib/forwarding-item/forwarding-item.component.ts b/alfa-client/libs/design-system/src/lib/forwarding-item/forwarding-item.component.ts index ae0f1ad3c0..7f8ebfd800 100644 --- a/alfa-client/libs/design-system/src/lib/forwarding-item/forwarding-item.component.ts +++ b/alfa-client/libs/design-system/src/lib/forwarding-item/forwarding-item.component.ts @@ -35,7 +35,7 @@ export enum ForwardingDirection { standalone: true, imports: [CommonModule, ForwardVorgangIconComponent], template: `<div - class="flex flex-col items-start items-center justify-between gap-2 rounded-lg border border-grayborder p-3 md:flex-row md:items-center md:gap-0" + class="flex flex-col items-start justify-between gap-2 rounded-lg border border-grayborder p-3 md:flex-row md:items-center md:gap-0" > <div class="flex gap-3"> <ods-forward-vorgang-icon class="fill-text" /> diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.html b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.html index 48c6469d8a..d0dd3c9c05 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.html +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.html @@ -1,3 +1,3 @@ -<ods-button-with-spinner text="Weiterleiten" variant="outline" dataTestId="forwarding-button"> +<ods-button-with-spinner [disabled]="disabled" text="Weiterleiten" variant="outline" dataTestId="forwarding-button"> <ods-forward-vorgang-icon icon class="fill-primary" /> </ods-button-with-spinner> \ No newline at end of file diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.ts index 46a93fd5af..63fec70d17 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.ts +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.ts @@ -1,4 +1,4 @@ -import { Component } from '@angular/core'; +import { Component, Input } from '@angular/core'; import { ButtonWithSpinnerComponent } from '@ods/component'; import { ForwardVorgangIconComponent } from '@ods/system'; @@ -8,4 +8,6 @@ import { ForwardVorgangIconComponent } from '@ods/system'; imports: [ButtonWithSpinnerComponent, ForwardVorgangIconComponent], templateUrl: './forwarding-button.component.html', }) -export class ForwardingButtonComponent {} +export class ForwardingButtonComponent { + @Input() disabled: boolean; +} diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html index 16d3168d35..1adbb4002f 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html @@ -1,7 +1,7 @@ <div class="block flex w-[620px] flex-col gap-4 bg-background-100 p-8"> <div class="flex items-center justify-between"> <h1 class="text-xl font-semibold text-primary">Vorgang weiterleiten</h1> - <ods-cancel-dialog-button showAsIconButton="true" /> + <ods-cancel-dialog-button showAsIconButton="true" data-test-id="cancel-dialog-icon-button" /> </div> @if (isNil(selectedSearchResult)) { @@ -14,7 +14,7 @@ } <div class="flex gap-4"> - <alfa-forwarding-button /> - <ods-cancel-dialog-button /> + <alfa-forwarding-button [disabled]="isNil(selectedSearchResult)" data-test-id="forwarding-button" /> + <ods-cancel-dialog-button data-test-id="cancel-dialog-button" /> </div> </div> diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts index 8a5f033e9d..9112fec259 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts @@ -1,4 +1,4 @@ -import { existsAsHtmlElement, notExistsAsHtmlElement } from '@alfa-client/test-utils'; +import { existsAsHtmlElement, getMockComponent, notExistsAsHtmlElement } from '@alfa-client/test-utils'; import { ZustaendigeStelleModule } from '@alfa-client/zustaendige-stelle'; import { OrganisationsEinheitResource } from '@alfa-client/zustaendige-stelle-shared'; import { ComponentFixture, TestBed } from '@angular/core/testing'; @@ -16,6 +16,7 @@ describe('ForwardingDialogComponent', () => { const zufiSearch: string = getDataTestIdOf('zufi-search'); const forwardingItem: string = getDataTestIdOf('forwarding-item'); + const forwardingButton: string = getDataTestIdOf('forwarding-button'); const organisationsEinheitResource: OrganisationsEinheitResource = createOrganisationsEinheitResource(); beforeEach(async () => { @@ -82,4 +83,24 @@ describe('ForwardingDialogComponent', () => { }); }); }); + + describe('forwarding button', () => { + it('should be disabled if selectedSearchResult is null', () => { + component.selectedSearchResult = null; + + fixture.detectChanges(); + + const forwardingButton: ForwardingButtonComponent = getMockComponent(fixture, ForwardingButtonComponent); + expect(forwardingButton.disabled).toBeTruthy(); + }); + + it('should NOT be disabled if selectedSearchResult is NOT null', () => { + component.selectedSearchResult = organisationsEinheitResource; + + fixture.detectChanges(); + + const forwardingButton: ForwardingButtonComponent = getMockComponent(fixture, ForwardingButtonComponent); + expect(forwardingButton.disabled).toBeFalsy(); + }); + }); }); -- GitLab