From bf90427bfa0bf0c566c23b06922d400ee2b18d58 Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 1 Jun 2026 20:03:43 +0200 Subject: [PATCH] feat(document): drop the read-only Originaltext field from the edit form The "Originaltext:" line in WhoWhenSection rendered the verbatim import cell (metaDateRaw) as static text plus a hidden input that re-submitted it on every save. Editors mistook it for an editable field. Remove the visible line, the hidden round-trip input, and the now-unused rawDate prop (here and at the DocumentEditLayout call site). The backend's partial update preserves the stored value, so no data is lost. Co-Authored-By: Claude Opus 4.8 --- frontend/src/lib/document/DocumentEditLayout.svelte | 1 - frontend/src/lib/document/WhoWhenSection.svelte | 11 ----------- .../src/lib/document/WhoWhenSection.svelte.test.ts | 13 ++++++------- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/frontend/src/lib/document/DocumentEditLayout.svelte b/frontend/src/lib/document/DocumentEditLayout.svelte index c32887c6..2b72e58c 100644 --- a/frontend/src/lib/document/DocumentEditLayout.svelte +++ b/frontend/src/lib/document/DocumentEditLayout.svelte @@ -209,7 +209,6 @@ async function handleReplaceFile(e: Event) { bind:dateIso={dateIso} bind:precision={datePrecision} bind:endDateIso={dateEndIso} - rawDate={doc.metaDateRaw ?? ''} initialDateIso={doc.documentDate ?? ''} initialLocation={doc.location ?? ''} initialSenderName={doc.sender?.displayName ?? ''} diff --git a/frontend/src/lib/document/WhoWhenSection.svelte b/frontend/src/lib/document/WhoWhenSection.svelte index 8c49a72b..4912f8d7 100644 --- a/frontend/src/lib/document/WhoWhenSection.svelte +++ b/frontend/src/lib/document/WhoWhenSection.svelte @@ -16,7 +16,6 @@ let { dateIso = $bindable(''), precision = $bindable('DAY'), endDateIso = $bindable(''), - rawDate = '', initialDateIso = '', initialLocation = '', initialSenderName = '', @@ -30,7 +29,6 @@ let { dateIso?: string; precision?: DatePrecision; endDateIso?: string; - rawDate?: string; initialDateIso?: string; initialLocation?: string; initialSenderName?: string; @@ -179,15 +177,6 @@ $effect(() => { {/if} - - - {#if rawDate && rawDate.trim().length > 0} -
-

{m.date_original_label()}

-

{rawDate}

- -
- {/if} {/if} diff --git a/frontend/src/lib/document/WhoWhenSection.svelte.test.ts b/frontend/src/lib/document/WhoWhenSection.svelte.test.ts index f2d7746f..136c260c 100644 --- a/frontend/src/lib/document/WhoWhenSection.svelte.test.ts +++ b/frontend/src/lib/document/WhoWhenSection.svelte.test.ts @@ -93,13 +93,12 @@ describe('WhoWhenSection — precision controls', () => { expect(document.querySelector('input#metaDateEnd')).not.toBeNull(); }); - it('renders the raw cell as static text (not an editable input) and escapes it', async () => { - render(WhoWhenSection, { rawDate: 'Sommer 1916' }); - const raw = document.querySelector('[data-testid="who-when-raw"]'); - expect(raw).not.toBeNull(); - // Verbatim shown as escaped text; no injected element. - expect(raw?.textContent).toContain('Sommer 1916'); - expect(raw?.querySelector('b')).toBeNull(); + it('never renders the raw cell, and never re-submits it via a hidden input', async () => { + render(WhoWhenSection, {}); + // The confusing "Originaltext" line is gone … + expect(document.querySelector('[data-testid="who-when-raw"]')).toBeNull(); + // … and editing no longer round-trips metaDateRaw to the backend. + expect(document.querySelector('input[name="metaDateRaw"]')).toBeNull(); }); });