diff --git a/.gitignore b/.gitignore index 7dfd960a066a56242d1f21f747d379b10dc31cee..35a41d63930800b9e8d508bdc4251ef2e881f3db 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ target/ *.iws *.iml *.ipr +.vscode # Client alfa-client/.vscode/ diff --git a/alfa-client/libs/command-shared/src/lib/command.model.ts b/alfa-client/libs/command-shared/src/lib/command.model.ts index bca910ecd19deac5dcca026d8214f63f7572cdd4..99257455963929e8757f07ee36f1f85877bad8df 100644 --- a/alfa-client/libs/command-shared/src/lib/command.model.ts +++ b/alfa-client/libs/command-shared/src/lib/command.model.ts @@ -89,7 +89,8 @@ export enum CommandOrderType { POSTFACH_NACHRICHT = 'PostfachNachricht', VORGANG = 'Vorgang', WIEDERVORLAGE = 'Wiedervorlage', - LOESCH_ANFORDERUNG = 'LoeschAnforderung' + LOESCH_ANFORDERUNG = 'LoeschAnforderung', + SET_AKTENZEICHEN = 'SetAktenzeichen', } export const ORDER_TYPE_BY_COMMAND_ORDER = { @@ -117,6 +118,7 @@ export const ORDER_TYPE_BY_COMMAND_ORDER = { [CommandOrder.VORGANG_ZUM_LOESCHEN_MARKIEREN]: CommandOrderType.LOESCH_ANFORDERUNG, [CommandOrder.VORGANG_LOESCHEN]: CommandOrderType.LOESCH_ANFORDERUNG, [CommandOrder.LOESCH_ANFORDERUNG_ZURUECKNEHMEN]: CommandOrderType.LOESCH_ANFORDERUNG, + [CommandOrder.SET_AKTENZEICHEN]: CommandOrderType.SET_AKTENZEICHEN, } export interface CreateCommandProps { diff --git a/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.html b/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.html new file mode 100644 index 0000000000000000000000000000000000000000..8173f4e59c04d34c8773723f9f255f0e9687a7d0 --- /dev/null +++ b/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.html @@ -0,0 +1,8 @@ +<div class="mat-expansion-panel" *ngIf="aktenzeichenDeleted; else expandable"> + <alfa-historie-item-header [headline]="headline" [resource]="command" data-test-id="historie-item-aktenzeichen-header"></alfa-historie-item-header> +</div> +<ng-template #expandable> + <alfa-expansion-panel-with-user [headline]="headline" [resource]="command"> + <p data-test-class="aktenzeichen-text">Aktenzeichen: {{ aktenzeichen }}</p> + </alfa-expansion-panel-with-user> +</ng-template> \ No newline at end of file diff --git a/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.scss b/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.scss new file mode 100644 index 0000000000000000000000000000000000000000..bd4f6bc887a23bad0e174ef5644e7e5ce01462d7 --- /dev/null +++ b/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.scss @@ -0,0 +1 @@ +@import 'expansion-panel'; diff --git a/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.spec.ts b/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..8adb768803ff01696e1fa9acff65647346e00328 --- /dev/null +++ b/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.spec.ts @@ -0,0 +1,111 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { CommandOrder, CommandResource } from '@alfa-client/command-shared'; +import { createCommandResource } from 'libs/command-shared/test/command'; +import { MockComponent } from 'ng-mocks'; +import { ExpansionPanelWithUserComponent } from '../expansion-panel-with-user/expansion-panel-with-user.component'; +import { HistorieItemAttachmentComponent } from '../historie-item-attachment/historie-item-attachment.component'; +import { HistorieItemAktenzeichenComponent } from './historie-item-aktenzeichen.component'; +import { getElementFromFixture } from '@alfa-client/test-utils'; +import { getDataTestClassOf, getDataTestIdOf } from '../../../../../../tech-shared/test/data-test'; +import { HistorieItemHeaderComponent } from '../historie-item-header/historie-item-header.component'; + +describe('HistorieItemAktenzeichenComponent', () => { + let component: HistorieItemAktenzeichenComponent; + let fixture: ComponentFixture<HistorieItemAktenzeichenComponent>; + + const kommentarCommand: CommandResource = { + ...createCommandResource(), + order: CommandOrder.CREATE_KOMMENTAR, + body: { item: { text: 'Beispiel text fuer einen Kommentar' } } + }; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ + HistorieItemAktenzeichenComponent, + MockComponent(ExpansionPanelWithUserComponent), + MockComponent(HistorieItemAttachmentComponent), + MockComponent(HistorieItemHeaderComponent), + ], + }).compileComponents(); + }) + + beforeEach(() => { + fixture = TestBed.createComponent(HistorieItemAktenzeichenComponent); + component = fixture.componentInstance; + component.command = kommentarCommand; + fixture.detectChanges(); + }) + + it('should create', () => { + expect(component).toBeTruthy(); + }) + + it('should render non expandable historie item', () => { + component.aktenzeichenDeleted = true; + fixture.detectChanges(); + + const historieItem = getElementFromFixture(fixture, getDataTestIdOf('historie-item-aktenzeichen-header')); + + expect(historieItem).toBeInstanceOf(HTMLElement); + }) + + it('should render expandable historie item', () => { + component.aktenzeichenDeleted = false; + fixture.detectChanges(); + + const aktenzeichenText = getElementFromFixture(fixture, getDataTestClassOf('aktenzeichen-text')); + + expect(aktenzeichenText).toBeInstanceOf(HTMLElement); + }) + + describe('ngOnInit', () => { + + it('should set headline', () => { + component.setHeadline = jest.fn(); + + component.ngOnInit(); + + expect(component.setHeadline).toHaveBeenCalled(); + }) + + it('should mark aktenzeichen as deleted', () => { + component.command.body.aktenzeichen = null; + + component.ngOnInit(); + + expect(component.aktenzeichenDeleted).toBeTruthy(); + }) + + it('should mark aktenzeichen as NOT deleted', () => { + component.command.body.aktenzeichen = '1'; + + component.ngOnInit(); + + expect(component.aktenzeichenDeleted).toBeFalsy(); + }) + + }) + + describe('setHeadline', () => { + + it('should set headline for order ' + CommandOrder.SET_AKTENZEICHEN, () => { + component.aktenzeichenDeleted = false; + component.command = { ...kommentarCommand, order: CommandOrder.SET_AKTENZEICHEN }; + + component.setHeadline() + + expect(component.headline).toBe('das Aktenzeichen geändert.'); + }) + + it('should set headline for deleted aktenzeichen', () => { + component.aktenzeichenDeleted = true; + + component.setHeadline() + + expect(component.headline).toBe('das Aktenzeichen gelöscht.'); + + }) + }) + +}); diff --git a/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.ts b/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..265c2c5c8c9b31bfd7d7f0f072a4ac223c0ee298 --- /dev/null +++ b/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component.ts @@ -0,0 +1,39 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { CommandOrder, CommandResource } from '@alfa-client/command-shared'; +import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel'; +import { isEmpty, isNull } from 'lodash-es'; +import { hasContent } from '@alfa-client/tech-shared'; + +@Component({ + selector: 'alfa-historie-item-aktenzeichen', + templateUrl: './historie-item-aktenzeichen.component.html', + styleUrls: ['./historie-item-aktenzeichen.component.scss'], +}) +export class HistorieItemAktenzeichenComponent implements OnInit { + + @Input() command: CommandResource; + + headline: string; + aktenzeichenDeleted = false; + + get aktenzeichen(): any { + return this.command.body.aktenzeichen; + } + + ngOnInit(): void { + this.aktenzeichenDeleted = isEmpty(this.aktenzeichen); + this.setHeadline(); + } + + setHeadline(): void { + if (this.aktenzeichenDeleted) { + this.headline = 'das Aktenzeichen gelöscht.'; + } else { + this.headline = HISTORIE_TEXT_BY_KOMMENTAR_ORDER[this.command.order]; + } + } +} + +const HISTORIE_TEXT_BY_KOMMENTAR_ORDER: { [order: string]: string } = { + [CommandOrder.SET_AKTENZEICHEN]: 'das Aktenzeichen geändert.', +} \ No newline at end of file diff --git a/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-list-item/historie-list-item.component.html b/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-list-item/historie-list-item.component.html index da770e916a44193c52ca19ac8954403670f8e51a..859ae3c272dd5ab5cd8a956367c1dbbd1199f50f 100644 --- a/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-list-item/historie-list-item.component.html +++ b/alfa-client/libs/historie/src/lib/historie-container/historie-list/historie-list-item/historie-list-item.component.html @@ -45,6 +45,9 @@ <ng-container *ngSwitchCase="commandOrderType.LOESCH_ANFORDERUNG"> <alfa-historie-item-loesch-anforderung [command]="historieCommand" data-test-id="historie-item-loesch-anforderung"></alfa-historie-item-loesch-anforderung> </ng-container> + <ng-container *ngSwitchCase="commandOrderType.SET_AKTENZEICHEN"> + <alfa-historie-item-aktenzeichen [command]="historieCommand" data-test-id="historie-item-aktenzeichen"></alfa-historie-item-aktenzeichen> + </ng-container> <ng-container *ngSwitchDefault> <alfa-historie-item-unknown [headline]="historieCommand.order" [resource]="historieCommand" data-test-id="historie-item-unknown"></alfa-historie-item-unknown> </ng-container> diff --git a/alfa-client/libs/historie/src/lib/historie.module.ts b/alfa-client/libs/historie/src/lib/historie.module.ts index 0ac0d289eee717e16af884bdc1b0fe26efad273a..876c52d9f57b29f4d5b7874d2a61105ae7040a0a 100644 --- a/alfa-client/libs/historie/src/lib/historie.module.ts +++ b/alfa-client/libs/historie/src/lib/historie.module.ts @@ -45,6 +45,7 @@ import { HistorieItemWiedervorlageStatusComponent } from './historie-container/h import { HistorieItemWiedervorlageComponent } from './historie-container/historie-list/historie-item-wiedervorlage/historie-item-wiedervorlage.component'; import { HistorieListItemComponent } from './historie-container/historie-list/historie-list-item/historie-list-item.component'; import { HistorieListComponent } from './historie-container/historie-list/historie-list.component'; +import { HistorieItemAktenzeichenComponent } from './historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component'; @NgModule({ imports: [ @@ -73,6 +74,7 @@ import { HistorieListComponent } from './historie-container/historie-list/histor HistorieItemWiedervorlageStatusComponent, HistorieItemAttachmentComponent, HistorieItemLoeschAnforderungComponent, + HistorieItemAktenzeichenComponent, ], exports: [HistorieContainerComponent], }) diff --git a/alfa-client/libs/ui/src/lib/ui/dialog/dialog.service.ts b/alfa-client/libs/ui/src/lib/ui/dialog/dialog.service.ts index cb43040020c9cea10c970924ce4b326f4baf44ed..42be04313bbc80e62ccb2e6d47d3efc1facfb589 100644 --- a/alfa-client/libs/ui/src/lib/ui/dialog/dialog.service.ts +++ b/alfa-client/libs/ui/src/lib/ui/dialog/dialog.service.ts @@ -59,7 +59,7 @@ export class DialogService { }; readonly WIDE_DIALOG_CONFIG: MatDialogConfig = { - width: '40%', + width: '610px', restoreFocus: false, }; diff --git a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component.scss b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component.scss index 7be478486cfd1b71da04f2e7be48c943f545dc03..3b176140eb99b79b51c4f56011c62915fe36ef43 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component.scss +++ b/alfa-client/libs/vorgang-detail/src/lib/aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component.scss @@ -16,17 +16,19 @@ display: grid; grid-template-columns: min-content auto min-content; grid-column-gap: 0.5rem; + grid-row-gap: 0.25rem; align-items: center; grid-template-areas: - "az_icon az_text paste_icon" - ". hinweis ."; + 'az_icon az_text paste_icon' + '. hinweis .'; } .az_icon { grid-area: az_icon; + color: #c2c2c2; &--active { - fill: black; + color: black; } } @@ -40,6 +42,8 @@ .hinweis { grid-area: hinweis; + padding-left: 16px; + font-size: 14px; } ozgcloud-stroked-button-with-spinner { @@ -55,4 +59,4 @@ mat-icon { mat-dialog-content { padding-top: 0.5rem !important; -} \ No newline at end of file +} 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 55a0e311dd4ae73713d1761b99fd681ba00c600e..06d418a29377ced55efbb9f654927644b289ddb8 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 @@ -34,7 +34,7 @@ <div class="aktenzeichen"> <mat-icon svgIcon="az"></mat-icon> - <alfa-aktenzeichen-editable [vorgang]="vorgangWithEingang"></alfa-aktenzeichen-editable> + <alfa-aktenzeichen-editable class="aktenzeichen-editable" [vorgang]="vorgangWithEingang"></alfa-aktenzeichen-editable> </div> <div data-test-id="name" class="name">{{ vorgangWithEingang.name }}</div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-header/vorgang-detail-header.component.scss b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-header/vorgang-detail-header.component.scss index 28d7123c4fbb16a1d544a101c09b87d0519f036c..b1384d338f22462781f6e7675a28d9a97a8104e0 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-header/vorgang-detail-header.component.scss +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-header/vorgang-detail-header.component.scss @@ -80,6 +80,10 @@ mat-icon { margin-left: -2px; display: flex; align-items: center; + + .aktenzeichen-editable { + width: calc(100% - 48px); + } } .vorgang-nummer {