From 69ffe58d6b97473dade7fad9f0c99cd4ab04b52c Mon Sep 17 00:00:00 2001 From: Gulum Date: Sat, 6 Jun 2026 17:53:24 +0200 Subject: [PATCH] UI-POLISH-2: '(ohne Namen)' Platzhalter in Stammbaum, Vertrag-Wizard, Wurf-Formular MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - StammbaumPage: PedigreeCard-Name + PrintCell-Name + beide titleFor()-Aufrufe โ†’ g.name || nameless - VertragWizardPage: wizard-pick__name + join(', ')-Tierliste โ†’ g.name || nameless - WurfFormPage: fatherName/motherName in Prefill (nameById.get || nameless) + Picker-Auswahl (g.name || nameless) e2e: neuer Test stammbaum.spec โ€” namenloser Ahne zeigt Platzhalter in Karte + Titel Gate: vitest 82/82, e2e 148/148, tsc clean --- gerbil-manager-web/e2e/stammbaum.spec.ts | 9 +++++++++ gerbil-manager-web/src/pages/StammbaumPage.tsx | 8 ++++---- gerbil-manager-web/src/pages/VertragWizardPage.tsx | 4 ++-- gerbil-manager-web/src/pages/WurfFormPage.tsx | 8 ++++---- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/gerbil-manager-web/e2e/stammbaum.spec.ts b/gerbil-manager-web/e2e/stammbaum.spec.ts index 0ef6409..fa624d9 100644 --- a/gerbil-manager-web/e2e/stammbaum.spec.ts +++ b/gerbil-manager-web/e2e/stammbaum.spec.ts @@ -53,3 +53,12 @@ test('unbekanntes Tier zeigt den deutschen Nicht-gefunden-Zustand', async ({ pag await page.goto('/rennmaeuse/gibt-es-nicht/stammbaum') await expect(page.getByText(t.notFound).or(page.getByText(de.api.errors.notFound))).toBeVisible() }) + +test('Namenloser Ahne zeigt Platzhalter in der Stammbaum-Karte (UI-POLISH-2)', async ({ page }) => { + skipUnlessMock() + await page.goto('/rennmaeuse/nameless-stub/stammbaum') + // Titel zeigt '(ohne Namen)' + await expect(page.getByRole('heading', { name: t.titleFor(de.pages.gerbils.nameless) })).toBeVisible() + // Karte selbst zeigt '(ohne Namen)' statt leer + await expect(page.locator('.pedigree-card__nametext')).toHaveText(de.pages.gerbils.nameless) +}) diff --git a/gerbil-manager-web/src/pages/StammbaumPage.tsx b/gerbil-manager-web/src/pages/StammbaumPage.tsx index 2964135..7543eda 100644 --- a/gerbil-manager-web/src/pages/StammbaumPage.tsx +++ b/gerbil-manager-web/src/pages/StammbaumPage.tsx @@ -276,7 +276,7 @@ export default function StammbaumPage() { <>
-

{t.titleFor(root.gerbil.name)}

+

{t.titleFor(root.gerbil.name || de.pages.gerbils.nameless)}

{t.backToAnimal} @@ -377,7 +377,7 @@ function PedigreeCard({
- {g.name} + {g.name || de.pages.gerbils.nameless}
{farbschlag && (
-

{t.titleFor(root.gerbil.name)}

+

{t.titleFor(root.gerbil.name || de.pages.gerbils.nameless)}

{t.inbreeding.label}: {inbreedingText} ยท {t.printView.createdOn} {today}

@@ -494,7 +494,7 @@ function PrintCell({
{sexSymbol} - {g.name} + {g.name || de.pages.gerbils.nameless}
{g.dateOfBirth && (
diff --git a/gerbil-manager-web/src/pages/VertragWizardPage.tsx b/gerbil-manager-web/src/pages/VertragWizardPage.tsx index 1434ffb..f35c593 100644 --- a/gerbil-manager-web/src/pages/VertragWizardPage.tsx +++ b/gerbil-manager-web/src/pages/VertragWizardPage.tsx @@ -326,7 +326,7 @@ export default function VertragWizardPage() { checked={selectedIds.has(g.id)} onChange={() => toggleAnimal(g.id)} /> - {g.name} + {g.name || de.pages.gerbils.nameless} {[ genderLabel(g.gender), @@ -396,7 +396,7 @@ export default function VertragWizardPage() {
{de.pages.vertraege.fields.animals}
-
{selectedAnimals.map((g) => g.name).join(', ')}
+
{selectedAnimals.map((g) => g.name || de.pages.gerbils.nameless).join(', ')}
{de.pages.vertraege.fields.price}
diff --git a/gerbil-manager-web/src/pages/WurfFormPage.tsx b/gerbil-manager-web/src/pages/WurfFormPage.tsx index 17d402d..91afde9 100644 --- a/gerbil-manager-web/src/pages/WurfFormPage.tsx +++ b/gerbil-manager-web/src/pages/WurfFormPage.tsx @@ -71,9 +71,9 @@ export default function WurfFormPage() { name: l.name, date: l.date ?? '', fatherId: l.fatherId ?? '', - fatherName: l.fatherId ? (nameById.get(l.fatherId) ?? '') : '', + fatherName: l.fatherId ? (nameById.get(l.fatherId) || de.pages.gerbils.nameless) : '', motherId: l.motherId ?? '', - motherName: l.motherId ? (nameById.get(l.motherId) ?? '') : '', + motherName: l.motherId ? (nameById.get(l.motherId) || de.pages.gerbils.nameless) : '', totalBorn: l.totalBorn != null ? String(l.totalBorn) : '', expectedGoHomeDate: l.expectedGoHomeDate ?? '', notes: l.notes ?? '', @@ -178,7 +178,7 @@ export default function WurfFormPage() { ) : ( setForm((f) => ({ ...f, fatherId: g.id, fatherName: g.name }))} + onPick={(g) => setForm((f) => ({ ...f, fatherId: g.id, fatherName: g.name || de.pages.gerbils.nameless }))} /> )} @@ -199,7 +199,7 @@ export default function WurfFormPage() { ) : ( setForm((f) => ({ ...f, motherId: g.id, motherName: g.name }))} + onPick={(g) => setForm((f) => ({ ...f, motherId: g.id, motherName: g.name || de.pages.gerbils.nameless }))} /> )}