import legacy frontend & fix dependency issues

This commit is contained in:
tw-blue
2025-12-07 12:51:57 +01:00
parent 91ac875a32
commit cd6cfec7f3
52 changed files with 3963 additions and 267 deletions
+99
View File
@@ -0,0 +1,99 @@
import { Inject, Injectable } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { MAT_DATE_LOCALE } from '@angular/material/core';
import { Locale, parse } from 'date-fns';
import {
Member,
PickMemberExcludeKeyofMemberIdOrLoeschenam,
} from '../generated-api/api';
interface MemberForm {
id: FormControl<string | null | undefined>;
vorname: FormControl<string | null | undefined>;
nachname: FormControl<string | null | undefined>;
geschlecht: FormControl<string | null | undefined>;
geburtsdatum: FormControl<Date | null>;
geburtsort: FormControl<string | null | undefined>;
passnummer: FormControl<string | null | undefined>;
uvertrag: FormControl<boolean | null | undefined>;
verein: FormControl<boolean | null | undefined>;
kontakt: FormControl<string | null | undefined>;
graduierung: FormControl<string | null | undefined>;
kuendigungzum: FormControl<string | null | undefined>;
letztePruefung: FormControl<string | null | undefined>;
}
@Injectable({
providedIn: 'root',
})
export class MemberDtoHelper {
constructor(@Inject(MAT_DATE_LOCALE) private locale: Locale) {}
public newMemberForm(member?: Member): FormGroup<MemberForm> {
const geburtsdatum = member?.geburtsdatum;
let enDate: Date | null = null;
if (geburtsdatum) {
enDate = parse(geburtsdatum, 'dd.MM.yyyy', new Date(), {
//TODO get dd.MM.yyyy from MAT_DATE_LOCALE or LOCALE_ID
locale: this.locale,
});
}
return new FormGroup({
id: new FormControl(member?.id),
vorname: new FormControl(member?.vorname),
nachname: new FormControl(member?.nachname),
geschlecht: new FormControl(member?.geschlecht),
geburtsdatum: new FormControl(enDate),
geburtsort: new FormControl(member?.geburtsort),
passnummer: new FormControl(member?.passnummer),
uvertrag: new FormControl(member?.uvertrag),
verein: new FormControl(member?.verein),
kontakt: new FormControl(member?.kontakt),
graduierung: new FormControl(member?.graduierung),
kuendigungzum: new FormControl(member?.kuendigungzum),
letztePruefung: new FormControl(member?.letztePruefung),
});
}
memberFromForm(form: FormGroup<MemberForm>): Member {
return {
id: form.controls.id.value ?? null,
vorname: form.controls.vorname.value ?? null,
nachname: form.controls.nachname.value ?? null,
geschlecht: form.controls.geschlecht.value ?? null,
geburtsdatum: form.controls.geburtsdatum.value
? JSON.stringify(form.controls.geburtsdatum.value)
: null,
geburtsort: form.controls.geburtsort.value ?? null,
passnummer: form.controls.passnummer.value ?? null,
uvertrag: form.controls.uvertrag.value ?? null,
verein: form.controls.verein.value ?? null,
kontakt: form.controls.kontakt.value ?? null,
graduierung: form.controls.graduierung?.value ?? null,
kuendigungzum: form.controls.kuendigungzum.value ?? null, //TODO not for new member
letztePruefung: form.controls.letztePruefung?.value ?? null, //TODO not for new member
loeschenam: null, //TODO? not client settable
};
}
newMemberFromForm(
form: FormGroup<MemberForm>,
): PickMemberExcludeKeyofMemberIdOrLoeschenam {
return {
vorname: form.controls.vorname.value ?? null,
nachname: form.controls.nachname.value ?? null,
geschlecht: form.controls.geschlecht.value ?? null,
geburtsdatum: form.controls.geburtsdatum.value
? JSON.stringify(form.controls.geburtsdatum.value)
: null,
geburtsort: form.controls.geburtsort.value ?? null,
passnummer: form.controls.passnummer.value ?? null,
uvertrag: form.controls.uvertrag.value ?? null,
verein: form.controls.verein.value ?? null,
kontakt: form.controls.kontakt.value ?? null,
graduierung: form.controls.graduierung?.value ?? null,
kuendigungzum: null, //TODO not for new member
letztePruefung: null, //TODO not for new member
};
}
}