diff --git a/backend/static/index.html b/backend/static/index.html index 746db45..3a955b8 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -92,11 +92,13 @@ Person B - Start (optional) - + Start (optional, beliebiger Text) + - Ende (optional) - + Ende (optional, beliebiger Text) + Aktion diff --git a/backend/static/ui.js b/backend/static/ui.js index 2e4471e..7f68a8d 100644 --- a/backend/static/ui.js +++ b/backend/static/ui.js @@ -91,10 +91,10 @@ async function api(path, opts = {}) { // ---------- rendering ---------- -function iso(ts) { - if (ts === null || ts === "") return "–"; - const d = new Date(ts); - return isNaN(d) ? String(ts) : d.toLocaleString(); +// Timestamps are free text now ("unknown", "Sommer 2025", …). Display +// them verbatim; nothing to parse or format. +function showTs(value) { + return (value === null || value === undefined || value === "") ? "–" : String(value); } function renderRow(record, payload) { @@ -102,8 +102,8 @@ function renderRow(record, payload) { const cells = [ payload.personA, payload.personB, - iso(payload.tsStart), - iso(payload.tsEnd), + showTs(payload.tsStart), + showTs(payload.tsEnd), payload.action, ]; for (const text of cells) { @@ -162,8 +162,8 @@ function openEditor(record, payload) { $("#editor-title").textContent = "Datensatz bearbeiten"; $("#f-persona").value = payload.personA ?? ""; $("#f-personb").value = payload.personB ?? ""; - $("#f-tsstart").value = payload.tsStart ? new Date(payload.tsStart).toISOString().slice(0, 16) : ""; - $("#f-tsend").value = payload.tsEnd ? new Date(payload.tsEnd).toISOString().slice(0, 16) : ""; + $("#f-tsstart").value = payload.tsStart ?? ""; + $("#f-tsend").value = payload.tsEnd ?? ""; $("#f-action").value = payload.action ?? ""; $("#editor-backdrop").hidden = false; } @@ -184,9 +184,9 @@ function closeEditor() { } function tsOrNull(inputValue) { - if (!inputValue) return null; - const d = new Date(inputValue); - return isNaN(d) ? null : d.toISOString(); + // Free-text field: trim to null or the plain string. + const v = inputValue.trim(); + return v === "" ? null : v; } // ---------- record operations ---------- @@ -275,10 +275,6 @@ async function setup(ev) { resetSession(); return; } - $("#passphrase").value = ""; - $("#setup").hidden = true; - $("#app").hidden = false; - await reload(); $("#setup-pass1").value = ""; $("#setup-pass2").value = ""; $("#setup").hidden = true;