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 }))} /> )}