import legacy frontend & fix dependency issues
This commit is contained in:
@@ -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
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user