feat(frontend): Self-Service-Panel fuer Gaeste (RSVP, Formular, Delegierte) #74
Labels
No labels
component/backend
component/docs
component/e2e
component/frontend
component/infra
component/keycloak
prio/high
prio/low
prio/medium
type/bug
type/chore
type/feature
type/refactor
type/test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
WompSchmiede/FamilienFeierPlaner#74
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beschreibung
Self-Service-Ansicht fuer Gaeste: Einladungen anzeigen, zu-/absagen und Formular-Antworten ausfuellen. Enthaelt auch die Stellvertreter-Ansicht (aus alter Issue #14, ohne DSGVO-Teil). Ersetzt die alten Issues #13 und #14 (anteilig).
Endpunkte (benoetigt Backend aus #64)
load-Funktion (+page.server.ts)
s export async function load({ fetch, params, locals }) { const personId = params.personId; const isOwnProfile = locals.user?.personId === personId; const res = await fetch(/api/v1/persons//invitations); return { invitations: res.ok ? await res.json() : [], isOwnProfile, personId, }; }Seite (+page.svelte)
Dynamisches Formular
Die ormDefinition des Events kann beliebige Felder enthalten. Das Frontend rendert diese dynamisch:
s {#each formDefinition as field} <FormField label={field.label} required={field.required}> {#if field.type === 'select'} <select>...</select> {:else} <input type={field.type} /> {/if} </FormField> {/each}Tests
Akzeptanzkriterien