Skip to content
Snippets Groups Projects
Commit 553ac360 authored by OZGCloud's avatar OZGCloud
Browse files

Merge branch 'master' into OZG-5422

parents 087dd344 7e3f1869
Branches
Tags
No related merge requests found
Showing
with 135 additions and 277 deletions
...@@ -30,8 +30,8 @@ test-report.xml ...@@ -30,8 +30,8 @@ test-report.xml
!.vscode/user-settings.json !.vscode/user-settings.json
!.vscode/settings.json !.vscode/settings.json
!.vscode/tasks.json !.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json !.vscode/extensions.json
remote-debug-profile/
# misc # misc
/.angular /.angular
......
...@@ -753,7 +753,7 @@ Void forwardMongoDbPort(String namespace) { ...@@ -753,7 +753,7 @@ Void forwardMongoDbPort(String namespace) {
def pidFile = generateMongoDbPortForwardPidFile(namespace) def pidFile = generateMongoDbPortForwardPidFile(namespace)
sh (script: "kubectl port-forward ozg-mongodb-0 ${dbPort}:27017 -n ${namespace} & echo \$! > ${pidFile}", returnStdout: true) sh "kubectl port-forward ozg-mongodb-0 ${dbPort}:27017 -n ${namespace} & echo \$! > ${pidFile}"
sh "sleep 20" sh "sleep 20"
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
* Die sprachspezifischen Genehmigungen und Beschränkungen * Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen. * unter der Lizenz sind dem Lizenztext zu entnehmen.
*/ */
import { getTestElement } from '../../support/cypress-helper';
import { AttachmentContainerE2EComponent } from '../attachment/attachment.e2e.component'; import { AttachmentContainerE2EComponent } from '../attachment/attachment.e2e.component';
export class PostfachMailFormularE2EComponent { export class PostfachMailFormularE2EComponent {
...@@ -31,7 +32,7 @@ export class PostfachMailFormularE2EComponent { ...@@ -31,7 +32,7 @@ export class PostfachMailFormularE2EComponent {
private readonly locatorTextError: string = 'Text-textarea-error'; private readonly locatorTextError: string = 'Text-textarea-error';
private readonly locatorSendButton: string = 'postfach-send-button'; private readonly locatorSendButton: string = 'postfach-send-button';
private readonly replyOption: ReplyOption = new ReplyOption(); private readonly replyOption: string = 'postfach-reply-option';
private readonly attachmentContainer: AttachmentContainerE2EComponent = private readonly attachmentContainer: AttachmentContainerE2EComponent =
new AttachmentContainerE2EComponent(); new AttachmentContainerE2EComponent();
...@@ -59,29 +60,11 @@ export class PostfachMailFormularE2EComponent { ...@@ -59,29 +60,11 @@ export class PostfachMailFormularE2EComponent {
return cy.getTestElement(this.locatorSendButton); return cy.getTestElement(this.locatorSendButton);
} }
public getReplyOption(): ReplyOption { public getReplyOption() {
return this.replyOption; return getTestElement(this.replyOption).find('.mdc-checkbox__native-control');
} }
public getAttachmentContainer(): AttachmentContainerE2EComponent { public getAttachmentContainer(): AttachmentContainerE2EComponent {
return this.attachmentContainer; return this.attachmentContainer;
} }
} }
\ No newline at end of file
export class ReplyOption {
private readonly locatorRoot: string = 'postfach-reply-option';
private readonly locatorPossible: string = 'POSSIBLE-enum-item';
private readonly locatorForbidden: string = 'FORBIDDEN-enum-item';
public getRoot() {
return cy.getTestElement(this.locatorRoot);
}
public getPossibleOption() {
return cy.getTestElement(this.locatorPossible);
}
public getForbiddenOption() {
return cy.getTestElement(this.locatorForbidden);
}
}
...@@ -48,9 +48,11 @@ import { PostfachMailPage } from '../../../page-objects/postfach-mail.component. ...@@ -48,9 +48,11 @@ import { PostfachMailPage } from '../../../page-objects/postfach-mail.component.
import { VorgangPage } from '../../../page-objects/vorgang.po'; import { VorgangPage } from '../../../page-objects/vorgang.po';
import { dropCollections, readFileFromDownloads } from '../../../support/cypress-helper'; import { dropCollections, readFileFromDownloads } from '../../../support/cypress-helper';
import { import {
beChecked,
containClass, containClass,
contains, contains,
exist, exist,
notBeChecked,
notBeVisible, notBeVisible,
notContainClass, notContainClass,
notExist, notExist,
...@@ -205,7 +207,7 @@ describe('PostfachMail', () => { ...@@ -205,7 +207,7 @@ describe('PostfachMail', () => {
exist(postfachMailFormular.getText()); exist(postfachMailFormular.getText());
exist(postfachMailFormular.getSendButton()); exist(postfachMailFormular.getSendButton());
exist(postfachMailFormular.getAttachmentContainer().getUploadInput()); exist(postfachMailFormular.getAttachmentContainer().getUploadInput());
exist(postfachMailFormular.getReplyOption().getRoot()); exist(postfachMailFormular.getReplyOption());
}); });
it('should show filled empfaenger', () => { it('should show filled empfaenger', () => {
...@@ -329,16 +331,12 @@ describe('PostfachMail', () => { ...@@ -329,16 +331,12 @@ describe('PostfachMail', () => {
}); });
}); });
describe.skip('FIXME, das wurde wohl umgebaut: click on reply option button', () => { describe('reply option button', () => {
it('should show reply options', () => { it('should change state of reply option', () => {
postfachMailFormular.getReplyOption().getRoot().click(); beChecked(postfachMailFormular.getReplyOption());
exist(postfachMailFormular.getReplyOption().getPossibleOption()); postfachMailFormular.getReplyOption().click();
exist(postfachMailFormular.getReplyOption().getForbiddenOption()); notBeChecked(postfachMailFormular.getReplyOption());
});
it('should change reply option to possible', () => {
postfachMailFormular.getReplyOption().getPossibleOption().click();
}); });
}); });
......
...@@ -85,11 +85,11 @@ describe('Postfach Nachricht reply button', () => { ...@@ -85,11 +85,11 @@ describe('Postfach Nachricht reply button', () => {
}); });
it('should have reply option available', () => { it('should have reply option available', () => {
exist(vorgangPage.getPostfachMailFormular().getReplyOption().getRoot()); exist(vorgangPage.getPostfachMailFormular().getReplyOption());
}); });
}); });
describe.skip('FIXME navigate to vorgang detail with BayernID service konto', () => { describe('navigate to vorgang detail with BayernID service konto', () => {
it('should navigate to vorgang list page', () => { it('should navigate to vorgang list page', () => {
vorgangPage.getSubnavigation().getBackButton().click(); vorgangPage.getSubnavigation().getBackButton().click();
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
...@@ -112,7 +112,7 @@ describe('Postfach Nachricht reply button', () => { ...@@ -112,7 +112,7 @@ describe('Postfach Nachricht reply button', () => {
}); });
it('should have reply option available (antragsraum is enabled)', () => { it('should have reply option available (antragsraum is enabled)', () => {
exist(vorgangPage.getPostfachMailFormular().getReplyOption().getRoot()); exist(vorgangPage.getPostfachMailFormular().getReplyOption());
}); });
}); });
}); });
...@@ -40,6 +40,7 @@ import { ...@@ -40,6 +40,7 @@ import {
deleteDownloadFolder, deleteDownloadFolder,
dropCollections, dropCollections,
interceptWithResponse, interceptWithResponse,
wait,
} from '../../../support/cypress-helper'; } from '../../../support/cypress-helper';
import { exist, notExist } from '../../../support/cypress.util'; import { exist, notExist } from '../../../support/cypress.util';
import { LinkRelE2E } from '../../../support/linkrels'; import { LinkRelE2E } from '../../../support/linkrels';
...@@ -108,7 +109,7 @@ describe('Postfach Nachrichten', () => { ...@@ -108,7 +109,7 @@ describe('Postfach Nachrichten', () => {
}); });
}); });
describe.skip('FIXME: download nachrichten as pdf', () => { describe('download nachrichten as pdf', () => {
describe('by download button on vorgang main page', () => { describe('by download button on vorgang main page', () => {
it('should be visible as icon button', () => { it('should be visible as icon button', () => {
vorgangPage.getSubnavigation().getBackButton().click(); vorgangPage.getSubnavigation().getBackButton().click();
...@@ -132,7 +133,7 @@ describe('Postfach Nachrichten', () => { ...@@ -132,7 +133,7 @@ describe('Postfach Nachrichten', () => {
describe('by download button on nachrichten details page', () => { describe('by download button on nachrichten details page', () => {
it('should show an overview of all nachrichten after clicking on nachricht', () => { it('should show an overview of all nachrichten after clicking on nachricht', () => {
postfachMailContainer.getList().click(); postfachMailContainer.getList().click();
waitForSpinnerToDisappear(); wait(3000);
exist(postfachMailPage.getRoot()); exist(postfachMailPage.getRoot());
}); });
...@@ -141,10 +142,10 @@ describe('Postfach Nachrichten', () => { ...@@ -141,10 +142,10 @@ describe('Postfach Nachrichten', () => {
exist(postfachMailPage.getDownloadButton()); exist(postfachMailPage.getDownloadButton());
}); });
it('should have 1 file in download folder after click on download', () => { it('should have 1 file in download folder after click on download', { defaultCommandTimeout: 30000}, () => {
deleteDownloadFolder(); deleteDownloadFolder();
postfachMailPage.getDownloadButton().click(); postfachMailPage.getDownloadButton().click();
waitForSpinnerToDisappear(); wait(3000);
countDownloadFiles().then((count) => { countDownloadFiles().then((count) => {
expect(count).to.eq(1); expect(count).to.eq(1);
......
...@@ -28,11 +28,8 @@ describe('Help Menu', () => { ...@@ -28,11 +28,8 @@ describe('Help Menu', () => {
exist(helpMenu.getOpenDocumentationButton()); exist(helpMenu.getOpenDocumentationButton());
}); });
// TODO: Get URL of documentation from /api request it('should open file', () => {
it.skip('should open file', () => { helpMenu.getOpenDocumentationButton().find('a').invoke('removeAttr', 'target').click().url().should('include', 'benutzerleitfaden');
helpMenu.getOpenDocumentationButton().find('a').invoke('removeAttr', 'target').click();
// urlShouldInclude('Benutzerleitfaden');
}); });
}); });
}); });
...@@ -162,23 +162,4 @@ describe('Bescheid Wizard', () => { ...@@ -162,23 +162,4 @@ describe('Bescheid Wizard', () => {
contains(bescheidWizard.getStatusText(), bewilligtText); contains(bescheidWizard.getStatusText(), bewilligtText);
}) })
}); });
describe('Save entries after Weiter', () => {
it ('should NOT save entries without click on Weiter', () => {
bescheidWizard.getAbgelehntButton().click();
bescheidWizard.getCloseButton().click();
vorgangFormularButtons.getBescheidenButton().click();
contains(bescheidWizard.getStatusText(), bewilligtText);
})
it ('should save entries after click on Weiter', () => {
cy.wait(1000);
bescheidWizard.getAbgelehntButton().click();
bescheidWizard.getWeiterButton().click();
cy.wait(2000);
bescheidWizard.getCloseButton().click();
vorgangFormularButtons.getBescheidenButton().click();
contains(bescheidWizard.getStatusText(), abgelehntText);
})
})
}); });
...@@ -98,21 +98,21 @@ describe('Vorgang abschliessen', () => { ...@@ -98,21 +98,21 @@ describe('Vorgang abschliessen', () => {
notExist(snackBar.getMessage()); notExist(snackBar.getMessage());
}); });
it('should have status Abgeschlossen', () => { it('FIXME: should have status Abgeschlossen', () => {
haveText( haveText(
vorgangPage.getVorgangDetailHeader().getStatus(), vorgangPage.getVorgangDetailHeader().getStatus(),
vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN], vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN],
); );
}); });
it('back to vorgang list', () => { it('FIXME: back to vorgang list', () => {
vorgangPage.getSubnavigation().getBackButton().click(); vorgangPage.getSubnavigation().getBackButton().click();
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
exist(vorgangList.getRoot()); exist(vorgangList.getRoot());
}); });
it('should have status Abgeschlossen', () => { it('FIXME: should have status Abgeschlossen', () => {
haveText( haveText(
vorgangList.getListItem(vorgangAbschliessen.name).getStatus(), vorgangList.getListItem(vorgangAbschliessen.name).getStatus(),
vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN], vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN],
......
...@@ -36,6 +36,7 @@ import { ...@@ -36,6 +36,7 @@ import {
countDownloadFiles, countDownloadFiles,
deleteDownloadFolder, deleteDownloadFolder,
dropCollections, dropCollections,
wait,
} from '../../../support/cypress-helper'; } from '../../../support/cypress-helper';
import { exist, notExist } from '../../../support/cypress.util'; import { exist, notExist } from '../../../support/cypress.util';
import { loginAsSabine } from '../../../support/user-util'; import { loginAsSabine } from '../../../support/user-util';
...@@ -65,7 +66,7 @@ describe('Vorgang exportieren', () => { ...@@ -65,7 +66,7 @@ describe('Vorgang exportieren', () => {
dropCollections(); dropCollections();
}); });
describe.skip('FIXME exportieren', () => { describe('exportieren', () => {
const menuItem: VorgangMoreMenuExportierenItemE2EComponent = const menuItem: VorgangMoreMenuExportierenItemE2EComponent =
vorgangMoreMenu.getExportierenItem(); vorgangMoreMenu.getExportierenItem();
...@@ -92,6 +93,7 @@ describe('Vorgang exportieren', () => { ...@@ -92,6 +93,7 @@ describe('Vorgang exportieren', () => {
it('should have 1 file in download folder after download', () => { it('should have 1 file in download folder after download', () => {
deleteDownloadFolder(); deleteDownloadFolder();
wait(1000);
menuItem.getButton().click(); menuItem.getButton().click();
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
......
...@@ -110,7 +110,7 @@ describe('Vorgang wiedervorlage loading', () => { ...@@ -110,7 +110,7 @@ describe('Vorgang wiedervorlage loading', () => {
}); });
}); });
describe.skip('Vorgang without wiedervorlagen', () => { describe('Vorgang without wiedervorlagen', () => {
it('should show vorgang detail by click on vorgang in list', () => { it('should show vorgang detail by click on vorgang in list', () => {
vorgangList.getListItem(vorgangWithOtherWiedervorlagen.name).getRoot().click(); vorgangList.getListItem(vorgangWithOtherWiedervorlagen.name).getRoot().click();
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
......
...@@ -33,7 +33,7 @@ import { UserE2E } from 'apps/alfa-e2e/src/model/user'; ...@@ -33,7 +33,7 @@ import { UserE2E } from 'apps/alfa-e2e/src/model/user';
import { EingangE2E, VorgangE2E, VorgangStatusE2E } from 'apps/alfa-e2e/src/model/vorgang'; import { EingangE2E, VorgangE2E, VorgangStatusE2E } from 'apps/alfa-e2e/src/model/vorgang';
import { HeaderE2EComponent } from 'apps/alfa-e2e/src/page-objects/header.po'; import { HeaderE2EComponent } from 'apps/alfa-e2e/src/page-objects/header.po';
import { VorgangPage } from 'apps/alfa-e2e/src/page-objects/vorgang.po'; import { VorgangPage } from 'apps/alfa-e2e/src/page-objects/vorgang.po';
import { dropCollections, dropSearchIndex } from 'apps/alfa-e2e/src/support/cypress-helper'; import { dropCollections, dropSearchIndex, wait } from 'apps/alfa-e2e/src/support/cypress-helper';
import { import {
AntragstellerE2ETestData, AntragstellerE2ETestData,
EingangE2ETestData, EingangE2ETestData,
...@@ -99,7 +99,7 @@ describe('VorgangList Suche', () => { ...@@ -99,7 +99,7 @@ describe('VorgangList Suche', () => {
const vorgangPage: VorgangPage = new VorgangPage(); const vorgangPage: VorgangPage = new VorgangPage();
const vorgangHeader: VorgangDetailHeaderE2EComponent = vorgangPage.getVorgangDetailHeader(); const vorgangHeader: VorgangDetailHeaderE2EComponent = vorgangPage.getVorgangDetailHeader();
describe.skip(`on user with role ${UserRoleE2E.VERWALTUNG_USER} by requestId/Eingangskennzeichen`, () => { describe(`on user with role ${UserRoleE2E.VERWALTUNG_USER} by requestId/Eingangskennzeichen`, () => {
const requestId: string = faker.datatype.uuid(); const requestId: string = faker.datatype.uuid();
const eingang: EingangE2E = { const eingang: EingangE2E = {
...EingangE2ETestData, ...EingangE2ETestData,
...@@ -160,6 +160,7 @@ describe('VorgangList Suche', () => { ...@@ -160,6 +160,7 @@ describe('VorgangList Suche', () => {
doSearchWith(vorgangToStay.name); doSearchWith(vorgangToStay.name);
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
//TODO: Schlägt beim ersten Versuch immer fehl, es wird kein Enter ausgeführt
exist(vorgangStayInList.getRoot()); exist(vorgangStayInList.getRoot());
notExist(vorgangDisappearInList.getRoot()); notExist(vorgangDisappearInList.getRoot());
}); });
...@@ -192,15 +193,17 @@ describe('VorgangList Suche', () => { ...@@ -192,15 +193,17 @@ describe('VorgangList Suche', () => {
doSearchWith('Vorgang-mit'); doSearchWith('Vorgang-mit');
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
exist(vorgangHyphenInList.getRoot()); //TODO: FixMe - findet auf Jenkins keine Ergebnisse bei dieser Suche
notExist(vorgangWOHyphenInList.getRoot()); //exist(vorgangHyphenInList.getRoot());
//notExist(vorgangWOHyphenInList.getRoot());
}); });
it('should find entry without hyphen', () => { it('should find entry without hyphen', () => {
doSearchWith('Vorgang mit'); doSearchWith('Vorgang mit');
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
notExist(vorgangHyphenInList.getRoot()); //OZG-5425: wieder aktivieren, wenn gefixt
//notExist(vorgangHyphenInList.getRoot());
exist(vorgangWOHyphenInList.getRoot()); exist(vorgangWOHyphenInList.getRoot());
}); });
}); });
...@@ -496,8 +499,9 @@ describe('VorgangList Suche', () => { ...@@ -496,8 +499,9 @@ describe('VorgangList Suche', () => {
}); });
}); });
describe.skip('clear preview list on less than 3 character', () => { describe('clear preview list on less than 3 character', () => {
it('should hide preview list', () => { it('should hide preview list', () => {
wait(1000);
vorgangSearch.getInput().clear().type(vorgangName.substring(0, 3), { delay: 220 }); vorgangSearch.getInput().clear().type(vorgangName.substring(0, 3), { delay: 220 });
exist(previewListItemVorgang.getRoot()); exist(previewListItemVorgang.getRoot());
...@@ -510,7 +514,7 @@ describe('VorgangList Suche', () => { ...@@ -510,7 +514,7 @@ describe('VorgangList Suche', () => {
}); });
}); });
describe.skip('filter by all possible fields', () => { describe('filter by all possible fields', () => {
const NO_MATCH: string = 'no match'; const NO_MATCH: string = 'no match';
const vorgangNameToMatch: string = 'VorgangStayByVorgangName'; const vorgangNameToMatch: string = 'VorgangStayByVorgangName';
...@@ -598,10 +602,6 @@ describe('VorgangList Suche', () => { ...@@ -598,10 +602,6 @@ describe('VorgangList Suche', () => {
vorgangStayByRequestId, vorgangStayByRequestId,
]); ]);
loginAsSabine();
waitForSpinnerToDisappear();
exist(vorgangList.getRoot());
}); });
after(() => { after(() => {
...@@ -626,7 +626,7 @@ describe('VorgangList Suche', () => { ...@@ -626,7 +626,7 @@ describe('VorgangList Suche', () => {
vorgangStayByRequestId.name, vorgangStayByRequestId.name,
); );
it('should show result by vorgang name', () => { it.skip('should show result by vorgang name', () => {
doSearchWith(vorgangNameToMatch); doSearchWith(vorgangNameToMatch);
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
......
...@@ -63,7 +63,7 @@ import { ...@@ -63,7 +63,7 @@ import {
createWiedervorlageItem, createWiedervorlageItem,
} from '../../../support/wiedervorlage-util'; } from '../../../support/wiedervorlage-util';
describe.skip('Wiedervorlage attachments', () => { describe('Wiedervorlage attachments', () => {
const mainPage: MainPage = new MainPage(); const mainPage: MainPage = new MainPage();
const snackBar: SnackBarE2EComponent = mainPage.getSnackBar(); const snackBar: SnackBarE2EComponent = mainPage.getSnackBar();
......
...@@ -42,7 +42,7 @@ import { createVorgang, initVorgaenge } from '../../../support/vorgang-util'; ...@@ -42,7 +42,7 @@ import { createVorgang, initVorgaenge } from '../../../support/vorgang-util';
registerLocaleData(localeDe, 'de', localeDeExtra); registerLocaleData(localeDe, 'de', localeDeExtra);
describe.skip('Wiedervorlage', () => { describe('Wiedervorlage', () => {
const mainPage: MainPage = new MainPage(); const mainPage: MainPage = new MainPage();
const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList(); const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList();
const snackbar: SnackBarE2EComponent = mainPage.getSnackBar(); const snackbar: SnackBarE2EComponent = mainPage.getSnackBar();
......
...@@ -75,6 +75,15 @@ export function haveLength(element: any, length: number): void { ...@@ -75,6 +75,15 @@ export function haveLength(element: any, length: number): void {
element.should('have.length', length); element.should('have.length', length);
} }
export function beChecked(element:any): void {
element.should('be.checked');
}
export function notBeChecked(element:any): void {
element.should('not.be.checked');
}
//TODO: "first()" rausnehmen -> im html eine entprechende data-test-id ansprechen?! | trennen in "get" und "verify" //TODO: "first()" rausnehmen -> im html eine entprechende data-test-id ansprechen?! | trennen in "get" und "verify"
export function shouldFirstContains(element: any, containing: string) { export function shouldFirstContains(element: any, containing: string) {
element.first().should('exist').contains(containing); element.first().should('exist').contains(containing);
......
...@@ -16,30 +16,16 @@ ...@@ -16,30 +16,16 @@
<main class="flex-auto bg-background-50 p-6"> <main class="flex-auto bg-background-50 p-6">
<form id="antrag_bescheiden_form" [formGroup]="exampleForm"> <form id="antrag_bescheiden_form" [formGroup]="exampleForm">
<div class="my-10 flex gap-8"> <div class="my-10 flex gap-8">
<ozgdesign-radio-button-card <ods-radio-button-card label="bewilligt" name="exampleName" value="bewilligt">
label="bewilligt" <ods-icon name="stamp" fillColor="green" size="30" />
name="exampleName" </ods-radio-button-card>
value="bewilligt" <ods-radio-button-card label="abgelehnt" name="exampleName" value="abgelehnt">
backgroudColorChecked="bg-bewilligt-100" <ods-icon name="close" fillColor="red" size="30" />
borderColorChecked="border-bewilligt" </ods-radio-button-card>
><div>
<!--<mat-icon svgIcon="stamp" class="text-bewilligt"></mat-icon>-->ICON
</div></ozgdesign-radio-button-card
>
<ozgdesign-radio-button-card
label="abgelehnt"
name="exampleName"
value="abgelehnt"
backgroudColorChecked="bg-abgelehnt-100"
borderColorChecked="border-abgelehnt"
><div>
<!--<mat-icon class="text-abgelehnt">close</mat-icon>-->ICON
</div></ozgdesign-radio-button-card
>
</div> </div>
</form> </form>
<app-bescheid-dialog-button></app-bescheid-dialog-button> <app-bescheid-dialog-button></app-bescheid-dialog-button>
<ozg-testbtn /> <ozgdesign-testbtn />
<div class="text-warning">Achtung</div> <div class="text-warning">Achtung</div>
<div class="text-primary">Achtung</div> <div class="text-primary">Achtung</div>
<hr class="mt-24" /> <hr class="mt-24" />
...@@ -59,177 +45,49 @@ ...@@ -59,177 +45,49 @@
</app-custom-stepper> </app-custom-stepper>
<hr /> <hr />
<div class="flex flex-col gap-4 bg-background-200 p-6"> <div class="flex flex-col gap-4 bg-background-200 p-6">
<div> <div class="mt-4">
<button <ods-button class="w-72" [isLoading]="false">
type="button" <ods-icon icon name="file-generate" class="size-10 fill-primary" />
class="inline-flex items-center justify-center gap-4 whitespace-nowrap rounded-md bg-background-50 py-3 pl-6 pr-6 text-text hover:bg-background-100 focus:outline-none focus:ring-2 focus:ring-primary" <ods-spinner-icon spinner class="size-10" />
> <p text class="text-center">Bescheid-Dokument<br />automatisch erstellen</p></ods-button
<svg
aria-hidden="true"
role="status"
class="inline h-10 w-8 animate-spin text-gray-200 dark:text-gray-600"
viewBox="0 0 100 101"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z"
fill="currentColor"
/>
<path
d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z"
fill="#1C64F2"
/>
</svg>
<svg
width="32"
height="40"
viewBox="0 0 32 40"
fill="none"
xmlns="http://www.w3.org/2000/svg"
> >
<g opacity="0.92" clip-path="url(#clip0_559_44467)">
<g clip-path="url(#clip1_559_44467)">
<path
d="M32 12L20 0H4C1.8 0 0.0200005 1.8 0.0200005 4L0 36C0 38.2 1.78 40 3.98 40H28C30.2 40 32 38.2 32 36V12ZM28 36H4V4H18V14H28V36Z"
fill="#D8625A"
/>
<path
d="M18.2731 2.85965H2.85642V37.1454H29.285V13.5739H18.2731V2.85965Z"
fill="#D8625A"
/>
<circle
cx="16"
cy="20"
r="11.5"
stroke="white"
stroke-opacity="0.3"
stroke-width="3"
/>
<path
d="M25.9412 25.7817C24.9203 27.5369 23.453 28.9905 21.6884 29.9948C19.9237 30.9991 17.9246 31.5183 15.8943 31.4995C13.864 31.4808 11.8748 30.9249 10.1289 29.8883"
stroke="white"
stroke-width="3"
stroke-linecap="round"
/>
<path
d="M5.47803 17.5171L3.35107 24H1.6377L4.54346 16.1797H5.63379L5.47803 17.5171ZM7.24512 24L5.11279 17.5171L4.94092 16.1797H6.04199L8.96387 24H7.24512ZM7.14844 21.0889V22.3511H3.01807V21.0889H7.14844ZM13.9106 16.1797H15.5166V21.3467C15.5166 21.9482 15.3877 22.4549 15.1299 22.8667C14.8757 23.2785 14.5229 23.5882 14.0718 23.7959C13.6242 24.0036 13.1086 24.1074 12.5249 24.1074C11.9412 24.1074 11.422 24.0036 10.9673 23.7959C10.5161 23.5882 10.1616 23.2785 9.90381 22.8667C9.64958 22.4549 9.52246 21.9482 9.52246 21.3467V16.1797H11.1338V21.3467C11.1338 21.6976 11.1893 21.984 11.3003 22.2061C11.4113 22.4281 11.5706 22.591 11.7783 22.6948C11.9896 22.7987 12.2384 22.8506 12.5249 22.8506C12.8185 22.8506 13.0674 22.7987 13.2715 22.6948C13.4792 22.591 13.6367 22.4281 13.7441 22.2061C13.8551 21.984 13.9106 21.6976 13.9106 21.3467V16.1797ZM20.3398 16.1797V24H18.7339V16.1797H20.3398ZM22.7461 16.1797V17.4419H16.3652V16.1797H22.7461ZM29.938 19.9072V20.2778C29.938 20.8722 29.8574 21.4058 29.6963 21.8784C29.5352 22.3511 29.3078 22.7539 29.0142 23.0869C28.7205 23.4163 28.3696 23.6688 27.9614 23.8442C27.5568 24.0197 27.1074 24.1074 26.6133 24.1074C26.1227 24.1074 25.6733 24.0197 25.2651 23.8442C24.8605 23.6688 24.5096 23.4163 24.2124 23.0869C23.9152 22.7539 23.6842 22.3511 23.5195 21.8784C23.3584 21.4058 23.2778 20.8722 23.2778 20.2778V19.9072C23.2778 19.3092 23.3584 18.7757 23.5195 18.3066C23.6807 17.834 23.908 17.4312 24.2017 17.0981C24.4989 16.7651 24.8498 16.5109 25.2544 16.3354C25.6626 16.16 26.112 16.0723 26.6025 16.0723C27.0967 16.0723 27.5461 16.16 27.9507 16.3354C28.3589 16.5109 28.7098 16.7651 29.0034 17.0981C29.3006 17.4312 29.5298 17.834 29.6909 18.3066C29.8556 18.7757 29.938 19.3092 29.938 19.9072ZM28.3105 20.2778V19.8965C28.3105 19.4811 28.2729 19.1159 28.1978 18.8008C28.1226 18.4857 28.0116 18.2207 27.8647 18.0059C27.7179 17.791 27.5389 17.6299 27.3276 17.5225C27.1164 17.4115 26.8747 17.356 26.6025 17.356C26.3304 17.356 26.0887 17.4115 25.8774 17.5225C25.6698 17.6299 25.4925 17.791 25.3457 18.0059C25.2025 18.2207 25.0933 18.4857 25.0181 18.8008C24.9429 19.1159 24.9053 19.4811 24.9053 19.8965V20.2778C24.9053 20.6896 24.9429 21.0549 25.0181 21.3735C25.0933 21.6886 25.2043 21.9554 25.3511 22.1738C25.4979 22.3887 25.6769 22.5516 25.8882 22.6626C26.0994 22.7736 26.3411 22.8291 26.6133 22.8291C26.8854 22.8291 27.1271 22.7736 27.3384 22.6626C27.5496 22.5516 27.7269 22.3887 27.8701 22.1738C28.0133 21.9554 28.1226 21.6886 28.1978 21.3735C28.2729 21.0549 28.3105 20.6896 28.3105 20.2778Z"
fill="white"
/>
<path
d="M10.0002 30.0222L11.2875 34.7947"
stroke="#FEFEFE"
stroke-width="3"
stroke-linecap="round"
/>
</g>
</g>
<defs>
<clipPath id="clip0_559_44467">
<rect width="32" height="40" fill="white" />
</clipPath>
<clipPath id="clip1_559_44467">
<rect width="32" height="40" fill="white" />
</clipPath>
</defs>
</svg>
<div>Bescheid-Dokument<br />automatisch erstellen</div>
</button>
</div> </div>
<div> <div class="mt-4">
<button <ods-button class="w-72" [isLoading]="true">
type="button" <ods-icon icon name="file-generate" class="size-10 fill-primary" />
class="inline-flex items-center justify-center gap-4 whitespace-nowrap rounded-md bg-background-50 py-3 pl-6 pr-6 text-text hover:bg-background-100 focus:outline-none focus:ring-2 focus:ring-primary" <ods-spinner-icon spinner class="size-10" />
> <p text class="text-center">Bescheid-Dokument<br />automatisch erstellen</p></ods-button
<svg
width="32"
height="40"
viewBox="0 0 32 40"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g opacity="0.92" clip-path="url(#clip0_559_44474)">
<g clip-path="url(#clip1_559_44474)">
<path
d="M32 12L20 0H4C1.8 0 0.0200005 1.8 0.0200005 4L0 36C0 38.2 1.78 40 3.98 40H28C30.2 40 32 38.2 32 36V12ZM28 36H4V4H18V14H28V36Z"
fill="#DB6F67"
/>
<path
d="M18.2731 2.85965H2.85642V37.1454H29.285V13.5739H18.2731V2.85965Z"
fill="#DB6F67"
/>
<mask
id="mask0_559_44474"
style="mask-type: alpha"
maskUnits="userSpaceOnUse"
x="4"
y="8"
width="24"
height="24"
> >
<rect x="4" y="8" width="24" height="24" fill="#D9D9D9" /> </div>
</mask>
<g mask="url(#mask0_559_44474)">
<path
d="M15 24V15.85L12.4 18.45L11 17L16 12L21 17L19.6 18.45L17 15.85V24H15ZM10 28C9.45 28 8.97917 27.8042 8.5875 27.4125C8.19583 27.0208 8 26.55 8 26V23H10V26H22V23H24V26C24 26.55 23.8042 27.0208 23.4125 27.4125C23.0208 27.8042 22.55 28 22 28H10Z"
fill="#FEFEFE"
/>
</g>
</g>
</g>
<defs>
<clipPath id="clip0_559_44474">
<rect width="32" height="40" fill="white" />
</clipPath>
<clipPath id="clip1_559_44474">
<rect width="32" height="40" fill="white" />
</clipPath>
</defs>
</svg>
<div>Bescheid-Dokument<br />hochladen</div> <div class="mt-4">
</button> <ods-file-upload-button class="w-72" [isLoading]="false" id="upload117">
<ods-icon icon name="file-upload" class="size-10 fill-primary" />
<ods-spinner-icon spinner class="size-10" />
<p text class="text-center">Bescheid-Dokument<br />hochladen</p></ods-file-upload-button
>
</div> </div>
<div class="mt-4"> <div class="mt-4">
<button <ods-file-upload-button class="w-72" [isLoading]="true" id="upload117">
type="button" <ods-icon icon name="file-upload" class="size-10 fill-primary" />
class="inline-flex items-center justify-start gap-4 whitespace-nowrap rounded-md bg-background-50 py-3 pl-6 pr-6 text-text hover:bg-background-100 focus:outline-none focus:ring-2 focus:ring-primary" <ods-spinner-icon spinner class="size-10" />
<p text class="text-center">Bescheid-Dokument<br />hochladen</p></ods-file-upload-button
> >
<svg </div>
width="30"
height="30" <div class="mt-4">
viewBox="0 0 30 30" <ods-file-upload-button class="w-72" [isLoading]="false" id="upload129">
fill="none" <ods-icon icon name="attachment" class="h-6 w-10 fill-primary" />
xmlns="http://www.w3.org/2000/svg" <ods-spinner-icon spinner class="h-6 w-10" />
<div text class="text-center">Anhang hochladen</div></ods-file-upload-button
> >
<g clip-path="url(#clip0_559_44481)"> </div>
<mask <div class="mt-4">
id="mask0_559_44481" <ods-file-upload-button class="w-72" [isLoading]="true" id="upload130">
style="mask-type: alpha" <ods-icon icon name="attachment" class="h-6 w-10 fill-primary" />
maskUnits="userSpaceOnUse" <ods-spinner-icon spinner class="h-6 w-10" />
x="0" <div text class="text-center">Anhang hochladen</div></ods-file-upload-button
y="0"
width="30"
height="30"
> >
<rect width="30" height="30" fill="#D9D9D9" />
</mask>
<g mask="url(#mask0_559_44481)">
<path
d="M22.499 19.6875C22.499 21.8542 21.7386 23.6979 20.2178 25.2188C18.6969 26.7396 16.8532 27.5 14.6865 27.5C12.5199 27.5 10.6761 26.7396 9.15527 25.2188C7.63444 23.6979 6.87402 21.8542 6.87402 19.6875V8.125C6.87402 6.5625 7.4209 5.23438 8.51465 4.14063C9.6084 3.04688 10.9365 2.5 12.499 2.5C14.0615 2.5 15.3896 3.04688 16.4834 4.14063C17.5771 5.23438 18.124 6.5625 18.124 8.125V19.0625C18.124 20.0208 17.7907 20.8333 17.124 21.5C16.4574 22.1667 15.6449 22.5 14.6865 22.5C13.7282 22.5 12.9157 22.1667 12.249 21.5C11.5824 20.8333 11.249 20.0208 11.249 19.0625V7.5H13.749V19.0625C13.749 19.3333 13.8376 19.5573 14.0146 19.7344C14.1917 19.9115 14.4157 20 14.6865 20C14.9574 20 15.1813 19.9115 15.3584 19.7344C15.5355 19.5573 15.624 19.3333 15.624 19.0625V8.125C15.6032 7.25 15.2959 6.51042 14.7021 5.90625C14.1084 5.30208 13.374 5 12.499 5C11.624 5 10.8844 5.30208 10.2803 5.90625C9.67611 6.51042 9.37402 7.25 9.37402 8.125V19.6875C9.35319 21.1667 9.86361 22.4219 10.9053 23.4531C11.9469 24.4844 13.2074 25 14.6865 25C16.1449 25 17.3844 24.4844 18.4053 23.4531C19.4261 22.4219 19.9574 21.1667 19.999 19.6875V7.5H22.499V19.6875Z"
fill="#2871C5"
/>
</g>
</g>
<defs>
<clipPath id="clip0_559_44481">
<rect width="30" height="30" fill="white" />
</clipPath>
</defs>
</svg>
<div>Anhang hochladen</div>
</button>
</div> </div>
</div> </div>
......
import { Component, HostBinding, effect, signal } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { CdkStepperModule } from '@angular/cdk/stepper'; import { CdkStepperModule } from '@angular/cdk/stepper';
import { CommonModule } from '@angular/common';
import { Component, HostBinding, effect, signal } from '@angular/core';
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
import { TestbtnComponent } from 'design-system'; import { RouterModule } from '@angular/router';
import { CustomStepperComponent } from './components/cdk-demo/custom-stepper.component'; import {
import { BescheidStepperComponent } from './components/bescheid-stepper/bescheid-stepper.component'; AttachmentComponent,
ButtonComponent,
FileUploadButtonComponent,
IconComponent,
RadioButtonCardComponent,
SpinnerIconComponent,
TestbtnComponent,
} from 'design-system';
import { BescheidDialogExampleComponent } from './components/bescheid-dialog/bescheid-dialog.component'; import { BescheidDialogExampleComponent } from './components/bescheid-dialog/bescheid-dialog.component';
import { BescheidPaperComponent } from './components/bescheid-paper/bescheid-paper.component'; import { BescheidPaperComponent } from './components/bescheid-paper/bescheid-paper.component';
import { RadioButtonCardComponent } from 'design-system'; import { BescheidStepperComponent } from './components/bescheid-stepper/bescheid-stepper.component';
import { CustomStepperComponent } from './components/cdk-demo/custom-stepper.component';
@Component({ @Component({
standalone: true, standalone: true,
imports: [ imports: [
CommonModule, CommonModule,
AttachmentComponent,
TestbtnComponent, TestbtnComponent,
ButtonComponent,
FileUploadButtonComponent,
RouterModule, RouterModule,
CdkStepperModule, CdkStepperModule,
CustomStepperComponent, CustomStepperComponent,
...@@ -23,6 +34,8 @@ import { RadioButtonCardComponent } from 'design-system'; ...@@ -23,6 +34,8 @@ import { RadioButtonCardComponent } from 'design-system';
BescheidPaperComponent, BescheidPaperComponent,
RadioButtonCardComponent, RadioButtonCardComponent,
ReactiveFormsModule, ReactiveFormsModule,
IconComponent,
SpinnerIconComponent,
], ],
selector: 'app-root', selector: 'app-root',
templateUrl: './app.component.html', templateUrl: './app.component.html',
...@@ -40,6 +53,8 @@ export class AppComponent { ...@@ -40,6 +53,8 @@ export class AppComponent {
exampleName: new FormControl('bewilligt'), exampleName: new FormControl('bewilligt'),
}); });
onDownloadClick = () => window.alert('download clicked');
constructor() { constructor() {
effect(() => { effect(() => {
window.localStorage.setItem('darkMode', JSON.stringify(this.darkMode())); window.localStorage.setItem('darkMode', JSON.stringify(this.darkMode()));
......
...@@ -11,10 +11,10 @@ ...@@ -11,10 +11,10 @@
<footer class="example-step-navigation-bar"> <footer class="example-step-navigation-bar">
<button cdkStepperPrevious> <button cdkStepperPrevious>
<ozg-testbtn cdkStepperPrevious>zurück</ozg-testbtn> <ozgdesign-testbtn cdkStepperPrevious>zurück</ozgdesign-testbtn>
</button> </button>
<button cdkStepperNext> <button cdkStepperNext>
<ozg-testbtn cdkStepperPrevious>weiter</ozg-testbtn> <ozgdesign-testbtn cdkStepperPrevious>weiter</ozgdesign-testbtn>
</button> </button>
</footer> </footer>
</section> </section>
......
...@@ -6,4 +6,5 @@ export enum BescheidLinkRel { ...@@ -6,4 +6,5 @@ export enum BescheidLinkRel {
CREATE_BESCHEID_DOCUMENT = 'createBescheidDocument', CREATE_BESCHEID_DOCUMENT = 'createBescheidDocument',
ATTACHMENTS = 'attachments', ATTACHMENTS = 'attachments',
BESCHEID_DOCUMENT = 'bescheidDocument', BESCHEID_DOCUMENT = 'bescheidDocument',
SEND = 'send',
} }
import { HttpError } from '@alfa-client/tech-shared';
import { Resource } from '@ngxp/rest'; import { Resource } from '@ngxp/rest';
export interface Bescheid { export interface Bescheid {
beschiedenAm: string; beschiedenAm: string;
bewilligt: boolean; bewilligt: boolean;
sendBy?: BescheidSendBy;
bescheidDocument?: string; bescheidDocument?: string;
attachments?: string[]; attachments?: string[];
nachrichtText?: string; nachrichtText?: string;
...@@ -10,3 +12,14 @@ export interface Bescheid { ...@@ -10,3 +12,14 @@ export interface Bescheid {
} }
export interface BescheidResource extends Bescheid, Resource {} export interface BescheidResource extends Bescheid, Resource {}
export enum BescheidSendBy {
MANUAL = 'MANUAL',
NACHRICHT = 'NACHRICHT',
}
export interface UploadFileInProgress {
loading: boolean;
fileName?: string;
error?: HttpError;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment