Merge Anmeldeformular into main #21

Merged
it-as merged 23 commits from Anmeldeformular into main 2024-04-26 14:40:21 +02:00
4 changed files with 55 additions and 49 deletions
Showing only changes of commit 52e8b1aa89 - Show all commits

View File

@ -1,7 +1,8 @@
<div class="stepperContainer">
<mat-stepper>
<!-- Step 1-->
<mat-step [stepControl]="firstFormGroup" class="firstStep">
<form [formGroup]="firstFormGroup" class="flexContainerRow width50">
<mat-step [stepControl]="firstFormGroup">
<form [formGroup]="firstFormGroup" class="flexContainerRow">
<ng-template matStepLabel>Persönliche Informationen</ng-template>
<div class="leftContainer">
<mat-form-field appearance="fill">
@ -28,8 +29,8 @@
matInput
[matDatepicker]="birthdatePicker"
formControlName="birthdate"
placeholder="DD.MM.YYYY"
required />
<mat-hint>DD.MM.YYYY</mat-hint>
<mat-datepicker-toggle
matSuffix
[for]="birthdatePicker"></mat-datepicker-toggle>
@ -40,7 +41,7 @@
<mat-form-field>
<mat-label>Geschlecht</mat-label>
<mat-select>
<mat-select formControlName="gender" required >
<mat-option value="male">männlich</mat-option>
<mat-option value="female">weiblich</mat-option>
<mat-option value="divers">divers</mat-option>
@ -60,7 +61,7 @@
<mat-form-field appearance="fill">
<mat-label>Telefon</mat-label>
<input matInput formControlName="phone" required />
<input matInput formControlName="phone" required/>
</mat-form-field>
<mat-form-field appearance="fill">
@ -71,7 +72,6 @@
</div>
</form>
<div class="buttonsContainer">
<button mat-button matStepperPrevious class="backButton">Zurück</button>
<button
mat-button
matStepperNext
@ -80,7 +80,6 @@
</button>
</div>
</mat-step>
<!-- Step 2-->
<mat-step [stepControl]="secondFormGroup">
<form [formGroup]="secondFormGroup" class="flexContainerColumn width50">
@ -127,7 +126,6 @@
</button>
</div>
</mat-step>
<!-- Step 3-->
<mat-step>
<form [formGroup]="thirdFormGroup" class="flexContainerColumn width50">
@ -154,10 +152,12 @@
mat-button
matStepperNext
[disabled]="thirdFormGroup.status == 'INVALID'"
(click)="submit()"
>
Fertig
</button>
</div>
</mat-step>
</mat-stepper>
</div>

View File

@ -1,24 +1,23 @@
.stepperContainer {
display: flex;
justify-content: space-around;
}
.mat-stepper-horizontal {
margin-top: 8px;
background-color: transparent;
min-width: 50%;
}
.mat-form-field {
margin-top: 16px;
}
.mat-stepper-horizontal {
background-color: transparent;
}
.flexContainerRow {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.width50 {
width: 50%;
}
.width20 {
width: 20%;
}
@ -48,7 +47,6 @@
textarea {
font-family: inherit;
border-radius: 10px 10px 0px 0px;
padding: 5px;
resize: none;
}

View File

@ -26,40 +26,39 @@ export class StudentRegisterComponent implements OnInit {
secondFormGroup!: FormGroup;
thirdFormGroup!: FormGroup;
infoTextEinzugermaechtigung =
'Hiermit ermächtige ich die Tanz- und Sportschule Li-Dance, Inh. Lydia Kolepp (nachfolgend Li-\n' +
'Dance) die Monatsbeiträge i.H.v. oben genannten Betrag, diverse Einmalzahlungen und sonstige\n' +
'Verbindlichkeiten zu Lasten meines Kontos einzuziehen.\n' +
'Bitte beachten Sie, dass im Falle einer unberechtigten Rücklastschrift Li-Dance ein\n' +
'Verwaltungsaufwand entsteht und eine Gebühr i.H.v. derzeit 15,- € berechnet wird. Diese Gebühr\n' +
'Hiermit ermächtige ich die Tanz- und Sportschule Li-Dance, Inh. Lydia Kolepp (nachfolgend Li-Dance) die Monatsbeiträge i.H.v. oben genannten Betrag, diverse Einmalzahlungen und sonstige' +
'Verbindlichkeiten zu Lasten meines Kontos einzuziehen.' +
'Bitte beachten Sie, dass im Falle einer unberechtigten Rücklastschrift Li-Dance ein' +
'Verwaltungsaufwand entsteht und eine Gebühr i.H.v. derzeit 15,- € berechnet wird. Diese Gebühr' +
'wird zusammen mit dem nachfolgenden Monatsbeitrag vom gleichen Konto abgebucht.';
infoTextEinwilligungserklaerung =
'Ich bin darüber informiert worden, dass meine personenbezogenen Daten aufgrund rechtlicher\n' +
'Vorgaben mindestens 10 Jahre nach Vertragsende aufbewahrt werden müssen.\n' +
'Ich bin damit einverstanden, dass die oben genannten personenbezogenen Daten zu den oben\n' +
'genannten Zwecken erhoben, gespeichert, verarbeitet, genutzt und ggfs. weitergegeben werden.\n' +
'Ich bin darauf hingewiesen worden, dass die im Rahmen der vorstehend genannten Zwecke\n' +
'erhobenen persönlichen Daten meiner Person unter Beachtung der EU-\n' +
'Datenschutzgrundverordnung (DSGVO) erhoben, gespeichert, genutzt und übermittelt werden.\n' +
'Ich bin zudem darauf hingewiesen worden, dass die Erhebung, Speicherung, Verarbeitung und\n' +
'Nutzung meiner Daten auf freiwilliger Basis erfolgt.\n' +
'Ich bin darüber informiert worden, dass diese Einverständniserklärung jederzeit mit sofortiger\n' +
'Wirkung verweigert, bzw. jederzeit mit Wirkung für die Zukunft widerrufen werden kann. Meine\n' +
'Ich bin darüber informiert worden, dass meine personenbezogenen Daten aufgrund rechtlicher' +
'Vorgaben mindestens 10 Jahre nach Vertragsende aufbewahrt werden müssen.' +
'Ich bin damit einverstanden, dass die oben genannten personenbezogenen Daten zu den oben' +
'genannten Zwecken erhoben, gespeichert, verarbeitet, genutzt und ggfs. weitergegeben werden.' +
'Ich bin darauf hingewiesen worden, dass die im Rahmen der vorstehend genannten Zwecke' +
'erhobenen persönlichen Daten meiner Person unter Beachtung der EU-' +
'Datenschutzgrundverordnung (DSGVO) erhoben, gespeichert, genutzt und übermittelt werden.' +
'Ich bin zudem darauf hingewiesen worden, dass die Erhebung, Speicherung, Verarbeitung und' +
'Nutzung meiner Daten auf freiwilliger Basis erfolgt.' +
'Ich bin darüber informiert worden, dass diese Einverständniserklärung jederzeit mit sofortiger' +
'Wirkung verweigert, bzw. jederzeit mit Wirkung für die Zukunft widerrufen werden kann. Meine' +
'Widerrufserklärung werde ich richten an die unten angegebene Adresse';
infoTextEinverstaendniserklaerung =
'Ich bin damit einverstanden, dass Bilder und Videos der Tanzschule und der Veranstaltungen,\n' +
'die durch die Tanzschule organisiert sind und/oder an denen die Tanzschule teilnimmt, auf\n' +
'denen ich selbst, mein Sohn oder meine Tochter zu sehen ist auf den Webseiten von Li-Dance und in anderen Online- und/oder Printmedien veröffentlicht\n' +
'werden und für Werbezwecke von Li-Dance genutzt werden dürfen. Rechtsgrundlage: Das Recht am eigenen Bild ist ein Teil des vom Gesetz geschützten\n' +
'allgemeinen Persönlichkeitsrechts (§22 Kunsturheberrechtsgesetz). Es gilt der Grundsatz, dass\n' +
'Bild- und Video-Material nur mit Einwilligung des Abgebildeten verbreitet oder veröffentlicht\n' +
'werden kann. Es handelt sich hierbei um eine rechtsgeschäftliche Willenserklärung. Deshalb\n' +
'kann bei Minderjährigen eine Einwilligung nur durch den gesetzlichen Vertreter erfolgen.\n' +
'Diese Einverständniserklärung kann mit sofortiger Wirkung verweigert, bzw. jederzeit mit\n' +
'Wirkung für die Zukunft widerrufen werden. Ein Widerruf kann einen Ausschluss aus der\n' +
'jeweiligen Veranstaltung zur Folge haben.\n' +
'Ein späterer rückwirkender Widerruf für aktuell stattfindende bzw. bereits stattgefundene\n' +
'Ich bin damit einverstanden, dass Bilder und Videos der Tanzschule und der Veranstaltungen,' +
'die durch die Tanzschule organisiert sind und/oder an denen die Tanzschule teilnimmt, auf' +
'denen ich selbst, mein Sohn oder meine Tochter zu sehen ist auf den Webseiten von Li-Dance und in anderen Online- und/oder Printmedien veröffentlicht' +
'werden und für Werbezwecke von Li-Dance genutzt werden dürfen. Rechtsgrundlage: Das Recht am eigenen Bild ist ein Teil des vom Gesetz geschützten' +
'allgemeinen Persönlichkeitsrechts (§22 Kunsturheberrechtsgesetz). Es gilt der Grundsatz, dass' +
'Bild- und Video-Material nur mit Einwilligung des Abgebildeten verbreitet oder veröffentlicht' +
'werden kann. Es handelt sich hierbei um eine rechtsgeschäftliche Willenserklärung. Deshalb' +
'kann bei Minderjährigen eine Einwilligung nur durch den gesetzlichen Vertreter erfolgen.' +
'Diese Einverständniserklärung kann mit sofortiger Wirkung verweigert, bzw. jederzeit mit' +
'Wirkung für die Zukunft widerrufen werden. Ein Widerruf kann einen Ausschluss aus der' +
'jeweiligen Veranstaltung zur Folge haben.' +
'Ein späterer rückwirkender Widerruf für aktuell stattfindende bzw. bereits stattgefundene' +
'Veranstaltungen ist ausgeschlossen.';
constructor(private _formBuilder: FormBuilder, private registerService: RegisterService) {}
@ -72,14 +71,15 @@ export class StudentRegisterComponent implements OnInit {
birthdate: ['', Validators.required],
postalCode: ['', [Validators.required, Validators.pattern(/^\d+$/)]], //^: Asserts the start of the string. \d+: Matches one or more digits.$: Asserts the end of the string.
address: ['', Validators.required],
phone: ['', [Validators.required, Validators.pattern(/^\d+$/)]],
phone: ['', [Validators.required, Validators.pattern(/^(\+?\d{1,3})?[ ]*\d{9,}$/)]],
gender: ['', Validators.required],
email: ['', [Validators.required, Validators.email]],
});
this.secondFormGroup = this._formBuilder.group({
accountHolder: ['', Validators.required],
iban: ['', [Validators.required, ValidatorService.validateIban]],
bic: ['', Validators.required],
bic: ['', [Validators.required, Validators.pattern(/^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/)]],
nameOfFinancialInstitute: ['', Validators.required],
directDebitAuthorization: ['', Validators.required],
});
@ -105,6 +105,10 @@ export class StudentRegisterComponent implements OnInit {
}
}
removeWhiteSpace(input:string):string {
return input.replace(/\s+/g, '')
}
submit() {
const studentRegistration: StudentRegistration = {
// First Form Group
@ -113,7 +117,7 @@ export class StudentRegisterComponent implements OnInit {
birthdate: this.firstFormGroup.get('birthdate')?.value,
postalCode: this.firstFormGroup.get('postalCode')?.value,
address: this.firstFormGroup.get('address')?.value,
phone: this.firstFormGroup.get('phone')?.value,
phone: this.removeWhiteSpace(this.firstFormGroup.get('phone')?.value),
email: this.firstFormGroup.get('email')?.value,
// Second Form Group

View File

@ -23,6 +23,10 @@ $my-theme: mat.define-light-theme((
.mdc-button {
background: rgba(255, 255, 255, 0.82) !important;
}
.mat-horizontal-stepper-wrapper {
width: 100%;
}
body {