diff --git a/alfa-client/.gitignore b/alfa-client/.gitignore index 0fd5e011fd8d6b4bf1dde4eced5edf2744d7f6de..c276d84a99546d27391bdf17799ff04a451b6e71 100644 --- a/alfa-client/.gitignore +++ b/alfa-client/.gitignore @@ -54,3 +54,4 @@ Thumbs.db .angular +.env \ No newline at end of file diff --git a/alfa-client/apps/alfa-e2e/docker-compose.yml b/alfa-client/apps/alfa-e2e/docker-compose.yml index f20faa66c523ca9272a2421f7dab7f7d08e9b68e..a21f0a0ed9380828cc69ea16ca78f305e108b18b 100644 --- a/alfa-client/apps/alfa-e2e/docker-compose.yml +++ b/alfa-client/apps/alfa-e2e/docker-compose.yml @@ -143,7 +143,7 @@ services: soft: 65536 hard: 65536 healthcheck: - test: ['CMD-SHELL', "curl -s 'http://localhost:9200/_cat/health?h=status' | egrep -q '(green|yellow)'"] + test: [ 'CMD-SHELL', "curl -s 'http://localhost:9200/_cat/health?h=status' | egrep -q '(green|yellow)'" ] interval: 10s timeout: 10s retries: 5 @@ -154,9 +154,9 @@ services: environment: - KEYCLOAK_URL=https://sso.dev.by.ozg-cloud.de - OZGCLOUD_KEYCLOAK_API_CLIENT=alfa - - OZGCLOUD_KEYCLOAK_API_PASSWORD= - OZGCLOUD_KEYCLOAK_API_REALM=${KEYCLOAK_REALM:-by-e2e-tests-local-dev} - OZGCLOUD_KEYCLOAK_API_USER=usermanagerapiuser + - OZGCLOUD_KEYCLOAK_API_PASSWORD=${OZGCLOUD_KEYCLOAK_API_PASSWORD:-} - OZGCLOUD_USER_MANAGER_URL=http://localhost:9092 - OZGCLOUD_USERSYNC_PERIOD=disabled - OZGCLOUD_USERSYNC_ONSTART=false @@ -213,7 +213,7 @@ services: - 7080:8080 - 7081:8081 healthcheck: - test: ['CMD-SHELL', 'wget --spider localhost:8081/version'] + test: [ 'CMD-SHELL', 'wget --spider localhost:8081/version' ] interval: 5s timeout: 5s retries: 5 diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts index 0725ac9ce2b82066e6254c4322b0339423f80421..5df41dccaff0a7d3f40d1cb67bacb8120389c9f5 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts @@ -28,7 +28,7 @@ import { HeaderE2EComponent } from '../../page-objects/header.po'; import { MainPage, waitForSpinnerToDisappear } from '../../page-objects/main.po'; import { login, writeUserIdsIntoFile } from '../../support/cypress-helper'; import { exist } from '../../support/cypress.util'; -import { areUsersSynced, DatabaseUser } from '../../support/user-util'; +import { DatabaseUser } from '../../support/user-util'; registerLocaleData(localeDe, 'de', localeDeExtra); @@ -61,18 +61,14 @@ describe('Init users', () => { }); it('should write user ids to file', () => { - if (!areUsersSynced()) { - writeUserIdsIntoFile(); - } + writeUserIdsIntoFile(); }); function syncUser(user: DatabaseUser) { - if (!areUsersSynced()) { - login(user); - waitForSpinnerToDisappear(); - exist(header.getLogo()); - header.getCurrentUserProfile().getUserIconButton().click(); - header.getCurrentUserProfile().getLogoutButton().click(); - } + login(user); + waitForSpinnerToDisappear(); + exist(header.getLogo()); + header.getCurrentUserProfile().getUserIconButton().click(); + header.getCurrentUserProfile().getLogoutButton().click(); } }); diff --git a/alfa-client/apps/alfa-e2e/src/fixtures/usermanager/user-ids.json b/alfa-client/apps/alfa-e2e/src/fixtures/usermanager/user-ids.json index 0967ef424bce6791893e9a57bb952f80fd536e93..9e26dfeeb6e641a33dae4961196235bdb965b21b 100644 --- a/alfa-client/apps/alfa-e2e/src/fixtures/usermanager/user-ids.json +++ b/alfa-client/apps/alfa-e2e/src/fixtures/usermanager/user-ids.json @@ -1 +1 @@ -{} +{} \ No newline at end of file diff --git a/alfa-client/apps/alfa-e2e/src/support/user-util.ts b/alfa-client/apps/alfa-e2e/src/support/user-util.ts index 7fedf55dc2b13e5d554a4aa4992afb021cc337c1..c3fab69f00e815dc49485cc0d7bb02346adb6a87 100644 --- a/alfa-client/apps/alfa-e2e/src/support/user-util.ts +++ b/alfa-client/apps/alfa-e2e/src/support/user-util.ts @@ -21,7 +21,6 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { isNotEmpty } from '@alfa-client/tech-shared'; import { isEmpty } from 'lodash-es'; import { UserE2E } from '../model/user'; import { UsermanagerUserE2E } from '../model/usermanager'; @@ -52,10 +51,6 @@ export function getUserId(username: Username) { return userIds[username]; } -export function areUsersSynced(): boolean { - return isNotEmpty(userIds); -} - export function initUsermanagerUsers() { // initUsermanagerData([ // getUserManagerUserSabine(), diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.html index e2720d703156a5af42a4bb9356bc77dccc088c92..d8d0b205b10a06a9adb31c7fc3d84036fc2ba257 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.html +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.html @@ -47,6 +47,9 @@ ></alfa-vorgang-archive-container> </ozgcloud-menu-item> <ozgcloud-menu-item + *ngIf=" + vorgangWithEingang.status === vorgangStatus.ABGESCHLOSSEN && vorgangWithEingang | hasLink: vorgangWithEingangLinkRel.EXPORT + " data-test-id="vorgang-exportieren-button" headline="Vorgang exportieren" text="Alle Informationen und Anhänge des Vorgangs zur Archivierung im DMS." diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.spec.ts index fcbf720575cdd14ed0f5d9141b50189644a058c6..9f4d2200bf0367c1abc7ba6f6a087fd4ad988b70 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.spec.ts @@ -23,7 +23,7 @@ */ import { getElementFromDomRoot, getElementFromFixture, getMockComponent, getMockComponents } from '@alfa-client/test-utils'; import { MenuItemComponent, OzgcloudIconComponent, UiModule } from '@alfa-client/ui'; -import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; +import { VorgangStatus, VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; import { ChangeDetectorRef, SimpleChanges } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; @@ -59,6 +59,7 @@ describe('VorgangDetailMoreMenuComponent', () => { fixture = TestBed.createComponent(VorgangDetailMoreMenuComponent); component = fixture.componentInstance; + component.vorgangWithEingang = createVorgangWithEingangResource(); fixture.detectChanges(); }); @@ -135,7 +136,10 @@ describe('VorgangDetailMoreMenuComponent', () => { }); describe('export menu item', () => { - const vorgangWithEingang: VorgangWithEingangResource = createVorgangWithEingangResource([VorgangWithEingangLinkRel.EXPORT]); + const vorgangWithEingang: VorgangWithEingangResource = { + ...createVorgangWithEingangResource([VorgangWithEingangLinkRel.EXPORT]), + status: VorgangStatus.ABGESCHLOSSEN, + }; beforeEach(() => { component.buttonEnabled = true; @@ -294,7 +298,7 @@ describe('VorgangDetailMoreMenuComponent', () => { it('should contains headline', () => { getElementFromFixture(fixture, moreMenuButton).click(); - const menuItem: MenuItemComponent = getMockComponents(fixture, MenuItemComponent)[1]; + const menuItem: MenuItemComponent = getMockComponents(fixture, MenuItemComponent)[0]; expect(menuItem.headline).toBe('Vorgang automatisiert vorprüfen'); }); @@ -302,7 +306,7 @@ describe('VorgangDetailMoreMenuComponent', () => { it('should contains text', () => { getElementFromFixture(fixture, moreMenuButton).click(); - const menuItem: MenuItemComponent = getMockComponents(fixture, MenuItemComponent)[1]; + const menuItem: MenuItemComponent = getMockComponents(fixture, MenuItemComponent)[0]; expect(menuItem.text).toBe('Eine Vorprüfung wird durchgeführt. Das Ergebnis wird als Kommentar hinzugefügt.'); }); @@ -310,7 +314,7 @@ describe('VorgangDetailMoreMenuComponent', () => { it('should contains icon', () => { getElementFromFixture(fixture, moreMenuButton).click(); - const menuItem: MenuItemComponent = getMockComponents(fixture, MenuItemComponent)[1]; + const menuItem: MenuItemComponent = getMockComponents(fixture, MenuItemComponent)[0]; expect(menuItem.icon).toBe('vorgang_vorpruefen'); }); @@ -318,7 +322,7 @@ describe('VorgangDetailMoreMenuComponent', () => { it('should contains iconSizeBig', () => { getElementFromFixture(fixture, moreMenuButton).click(); - const menuItem: MenuItemComponent = getMockComponents(fixture, MenuItemComponent)[1]; + const menuItem: MenuItemComponent = getMockComponents(fixture, MenuItemComponent)[0]; expect(menuItem.iconSizeBig).toBeTruthy(); }); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.ts index 222d1de58bc935e5aa3b31fea06027256e047d75..5c92cb794afa196c27e796143c33d36dee4c485a 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-detail-more-menu.component.ts @@ -21,20 +21,11 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { - ChangeDetectorRef, - Component, - Input, - OnChanges, - QueryList, - SimpleChanges, - ViewChild, - ViewChildren, -} from '@angular/core'; -import { MatMenuTrigger } from '@angular/material/menu'; import { isNotUndefined } from '@alfa-client/tech-shared'; import { MenuItemComponent } from '@alfa-client/ui'; -import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; +import { VorgangStatus, VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; +import { ChangeDetectorRef, Component, Input, OnChanges, QueryList, SimpleChanges, ViewChild, ViewChildren } from '@angular/core'; +import { MatMenuTrigger } from '@angular/material/menu'; import { has } from 'lodash-es'; @Component({ @@ -50,7 +41,8 @@ export class VorgangDetailMoreMenuComponent implements OnChanges { buttonEnabled: boolean = false; - readonly vorgangWithEingangLinkRel = VorgangWithEingangLinkRel; + public readonly vorgangWithEingangLinkRel = VorgangWithEingangLinkRel; + public readonly vorgangStatus = VorgangStatus; constructor(private changeDetectorRef: ChangeDetectorRef) {} diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-list-item.component.html b/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-list-item.component.html index de7460f9be79a5989e1bcd424c1603b3bc495a8b..dad031fa213f91aca49d0e8071a2fdfc305b0061 100644 --- a/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-list-item.component.html +++ b/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-list-item.component.html @@ -96,7 +96,7 @@ </div> </div> </div> - <div class="flex-none"> + <div class="w-9 flex-none"> <alfa-user-profile-in-vorgang-list-item-container *ngIf="vorgang | hasLink: vorgangLinkRel.ASSIGN" data-test-id="vorgang-user-icon"