From ce1bab0e04811004197061d4eec0c4a24ed8dec3 Mon Sep 17 00:00:00 2001 From: Alexander Reifschneider <alexander.reifschneider@mgm-tp.com> Date: Thu, 23 Jan 2025 13:24:29 +0100 Subject: [PATCH 1/6] OZG-6564 Use ods button for editing --- .../aktenzeichen-editable.component.html | 17 ++++++----- .../aktenzeichen-editable.component.scss | 29 ------------------- .../aktenzeichen-editable.component.ts | 5 ++-- .../src/lib/vorgang-detail.module.ts | 4 +++ 4 files changed, 15 insertions(+), 40 deletions(-) delete mode 100644 alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.scss diff --git a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html index 3f94a6da45..b6df6cfefa 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html +++ b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html @@ -25,12 +25,13 @@ --> <div class="flex flex-shrink" alfa-aktenzeichen [vorgang]="vorgang"></div> <ng-container *ngIf="vorgang | hasLink: linkRel.SET_AKTENZEICHEN"> - <div class="relative w-12"> - <ozgcloud-icon-button-primary - svgIcon="edit" - tooltip="Aktenzeichen bearbeiten" - data-test-id="aktenzeichen-editieren" - (clickEmitter)="onEdit()" - ></ozgcloud-icon-button-primary> - </div> + <ods-button + variant="icon" + size="fit" + tooltip="Aktenzeichen bearbeiten" + data-test-id="aktenzeichen-editieren" + (clickEmitter)="onEdit()" + > + <ods-edit-icon icon /> + </ods-button> </ng-container> diff --git a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.scss b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.scss deleted file mode 100644 index dbb9218a33..0000000000 --- a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.scss +++ /dev/null @@ -1,29 +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. - */ - -// Workaround Material's fixed 48px height -:host ::ng-deep ozgcloud-icon-button-primary button { - position: absolute; - top: -14px; -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.ts b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.ts index 0b7c225ce8..383891cf57 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.ts @@ -21,15 +21,14 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { Component, Input } from '@angular/core'; -import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; import { DialogService } from '@alfa-client/ui'; +import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; +import { Component, Input } from '@angular/core'; import { AktenzeichenEditDialogComponent } from '../aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component'; @Component({ selector: 'alfa-aktenzeichen-editable', templateUrl: './aktenzeichen-editable.component.html', - styleUrls: ['./aktenzeichen-editable.component.scss'], }) export class AktenzeichenEditableComponent { @Input() vorgang: 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 9c96835792..41a5873ace 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 @@ -61,6 +61,7 @@ import { CloseIconComponent, DropdownMenuComponent, DropdownMenuTextItemComponent, + EditIconComponent, ErrorMessageComponent, ExclamationIconComponent, FileIconComponent, @@ -70,6 +71,7 @@ import { SendIconComponent, SpinnerIconComponent, StampIconComponent, + TooltipDirective, } from '@ods/system'; import { AktenzeichenEditDialogComponent } from './aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component'; import { AktenzeichenEditableComponent } from './aktenzeichen-editable/aktenzeichen-editable.component'; @@ -155,6 +157,7 @@ const routes: Routes = [ ButtonComponent, ButtonCardComponent, CloseIconComponent, + EditIconComponent, ExclamationIconComponent, SaveIconComponent, SendIconComponent, @@ -178,6 +181,7 @@ const routes: Routes = [ DropdownMenuTextItemComponent, MoreIconComponent, FileIconComponent, + TooltipDirective, ], declarations: [ VorgangDetailPageComponent, -- GitLab From 841c69600518174597fc19a68c612e2fe92c207e Mon Sep 17 00:00:00 2001 From: Alexander Reifschneider <alexander.reifschneider@mgm-tp.com> Date: Fri, 24 Jan 2025 10:06:00 +0100 Subject: [PATCH 2/6] OZG-6564 Add flexbox styling --- .../aktenzeichen-editable.component.html | 26 ++++++++++--------- .../vorgang-detail-header.component.html | 2 +- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html index b6df6cfefa..5c3e3b11ed 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html +++ b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html @@ -23,15 +23,17 @@ unter der Lizenz sind dem Lizenztext zu entnehmen. --> -<div class="flex flex-shrink" alfa-aktenzeichen [vorgang]="vorgang"></div> -<ng-container *ngIf="vorgang | hasLink: linkRel.SET_AKTENZEICHEN"> - <ods-button - variant="icon" - size="fit" - tooltip="Aktenzeichen bearbeiten" - data-test-id="aktenzeichen-editieren" - (clickEmitter)="onEdit()" - > - <ods-edit-icon icon /> - </ods-button> -</ng-container> +<div class="flex items-center gap-1"> + <div class="flex flex-shrink" alfa-aktenzeichen [vorgang]="vorgang"></div> + @if (vorgang | hasLink: linkRel.SET_AKTENZEICHEN) { + <ods-button + variant="icon" + size="fit" + tooltip="Aktenzeichen bearbeiten" + data-test-id="aktenzeichen-editieren" + (clickEmitter)="onEdit()" + > + <ods-edit-icon icon /> + </ods-button> + } +</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-header/vorgang-detail-header.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-header/vorgang-detail-header.component.html index 86f3e7c9a0..06d40e9f4d 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-header/vorgang-detail-header.component.html +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-header/vorgang-detail-header.component.html @@ -48,7 +48,7 @@ {{ vorgang.name }} </h2> <alfa-vorgang-nummer class="vorgang-nummer" [vorgang]="vorgang"></alfa-vorgang-nummer> - <div class="flex flex-1 flex-row gap-1"> + <div class="flex flex-1 flex-row items-center gap-1"> <div class="flex flex-shrink-0" [class.text-gray-400]="!hasAktenzeichen"> <mat-icon svgIcon="az" style="width: 1.5rem; height: 1.5rem"></mat-icon> </div> -- GitLab From be4177cfa8bee599496fca042d884b689d7faff3 Mon Sep 17 00:00:00 2001 From: Alexander Reifschneider <alexander.reifschneider@mgm-tp.com> Date: Fri, 7 Feb 2025 16:29:36 +0100 Subject: [PATCH 3/6] OZG-6564 Use new ghost button --- .../aktenzeichen-editable.component.html | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html index 5c3e3b11ed..e56be799f1 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html +++ b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.html @@ -23,11 +23,12 @@ unter der Lizenz sind dem Lizenztext zu entnehmen. --> -<div class="flex items-center gap-1"> - <div class="flex flex-shrink" alfa-aktenzeichen [vorgang]="vorgang"></div> - @if (vorgang | hasLink: linkRel.SET_AKTENZEICHEN) { +<div class="flex flex-shrink" alfa-aktenzeichen [vorgang]="vorgang"></div> +@if (vorgang | hasLink: linkRel.SET_AKTENZEICHEN) { + <div class="relative"> <ods-button - variant="icon" + class="absolute -top-2" + variant="ghost" size="fit" tooltip="Aktenzeichen bearbeiten" data-test-id="aktenzeichen-editieren" @@ -35,5 +36,5 @@ > <ods-edit-icon icon /> </ods-button> - } -</div> + </div> +} -- GitLab From 8a925c96a9ac88decb75f3f3ad5db40beefbe3c2 Mon Sep 17 00:00:00 2001 From: Alexander Reifschneider <alexander.reifschneider@mgm-tp.com> Date: Fri, 7 Feb 2025 17:02:34 +0100 Subject: [PATCH 4/6] OZG-6564 Fix unit test --- .../aktenzeichen-editable.component.spec.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.spec.ts index ff9fac80cc..a12eb4992e 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.spec.ts @@ -22,11 +22,13 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ import { HasLinkPipe } from '@alfa-client/tech-shared'; -import { mock } from '@alfa-client/test-utils'; -import { DialogService, OzgcloudIconButtonPrimaryComponent } from '@alfa-client/ui'; +import { existsAsHtmlElement, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils'; +import { DialogService } from '@alfa-client/ui'; import { VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared'; import { AktenzeichenComponent } from '@alfa-client/vorgang-shared-ui'; import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ButtonComponent, EditIconComponent } from '@ods/system'; +import { getDataTestIdOf } from 'libs/tech-shared/test/data-test'; import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang'; import { MockComponent } from 'ng-mocks'; import { AktenzeichenEditDialogComponent } from '../aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component'; @@ -36,6 +38,8 @@ describe('AktenzeichenComponent', () => { let component: AktenzeichenEditableComponent; let fixture: ComponentFixture<AktenzeichenEditableComponent>; + const editButton: string = getDataTestIdOf('aktenzeichen-editieren'); + const dialogService = mock(DialogService); beforeEach(async () => { @@ -43,7 +47,8 @@ describe('AktenzeichenComponent', () => { declarations: [ HasLinkPipe, AktenzeichenEditableComponent, - MockComponent(OzgcloudIconButtonPrimaryComponent), + MockComponent(ButtonComponent), + MockComponent(EditIconComponent), MockComponent(AktenzeichenComponent), ], providers: [ @@ -80,11 +85,9 @@ describe('AktenzeichenComponent', () => { describe('after render', () => { it('should render edit button', () => { - const editIcon = fixture.nativeElement.querySelector('ozgcloud-icon-button-primary'); - fixture.detectChanges(); - expect(editIcon).not.toBeInstanceOf(HTMLElement); + notExistsAsHtmlElement(fixture, editButton); }); it('should render edit button', () => { @@ -94,8 +97,7 @@ describe('AktenzeichenComponent', () => { fixture.detectChanges(); - const editIcon = fixture.nativeElement.querySelector('ozgcloud-icon-button-primary'); - expect(editIcon).toBeInstanceOf(HTMLElement); + existsAsHtmlElement(fixture, editButton); }); }); }); -- GitLab From 72ed903bb3440bde180f078d97b903ddf143948f Mon Sep 17 00:00:00 2001 From: Alexander Reifschneider <alexander.reifschneider@mgm-tp.com> Date: Mon, 10 Feb 2025 11:11:45 +0100 Subject: [PATCH 5/6] OZG-6564 Improve unit test --- .../aktenzeichen-editable.component.spec.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.spec.ts index a12eb4992e..11982ed180 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-editable/aktenzeichen-editable.component.spec.ts @@ -84,9 +84,7 @@ describe('AktenzeichenComponent', () => { }); describe('after render', () => { - it('should render edit button', () => { - fixture.detectChanges(); - + it('should NOT render edit button', () => { notExistsAsHtmlElement(fixture, editButton); }); -- GitLab From 6b0a60917f442edee654fdfca98bd1a41b286c02 Mon Sep 17 00:00:00 2001 From: Alexander Reifschneider <alexander.reifschneider@mgm-tp.com> Date: Mon, 10 Feb 2025 11:25:52 +0100 Subject: [PATCH 6/6] OZG-6564 Fix edit icon --- .../src/lib/icons/edit-icon/edit-icon.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alfa-client/libs/design-system/src/lib/icons/edit-icon/edit-icon.component.ts b/alfa-client/libs/design-system/src/lib/icons/edit-icon/edit-icon.component.ts index c655b7df68..c5c54a6669 100644 --- a/alfa-client/libs/design-system/src/lib/icons/edit-icon/edit-icon.component.ts +++ b/alfa-client/libs/design-system/src/lib/icons/edit-icon/edit-icon.component.ts @@ -32,9 +32,9 @@ import { iconVariants, IconVariants } from '../iconVariants'; imports: [CommonModule], template: `<svg viewBox="0 0 24 24" - fill="none" xmlns="http://www.w3.org/2000/svg" [ngClass]="twMerge(iconVariants({ size }), 'fill-primary', class)" + aria-hidden="true" > <path d="M5 19H6.425L16.2 9.225L14.775 7.8L5 17.575V19ZM3 21V16.75L16.2 3.575C16.4 3.39167 16.6208 3.25 16.8625 3.15C17.1042 3.05 17.3583 3 17.625 3C17.8917 3 18.15 3.05 18.4 3.15C18.65 3.25 18.8667 3.4 19.05 3.6L20.425 5C20.625 5.18333 20.7708 5.4 20.8625 5.65C20.9542 5.9 21 6.15 21 6.4C21 6.66667 20.9542 6.92083 20.8625 7.1625C20.7708 7.40417 20.625 7.625 20.425 7.825L7.25 21H3ZM15.475 8.525L14.775 7.8L16.2 9.225L15.475 8.525Z" -- GitLab