Verfahrensablauf URL state: hybrid model — filter chips in URL, scenario inputs in localStorage #137
Reference in New Issue
Block a user
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?
Direction (m, 2026-05-26 17:45)
m picked option C — hybrid:
Concrete split
URL params (keep / add)
proceedingupc.inf.cfi,upc.apl.unified, etc.) — VERIFY currently in URL; if not, add itsidetargetupc.apl.unified(endentscheidung / kostenentscheidung / anordnung / schadensbemessung / bucheinsicht)trigger_datelocalStorage (move out of URL where currently there)
localStorage key prefix:
paliad.verfahrensablauf.scenario.*event_choices?event_choices=…) — long, verbose, not really shareable. Move to localStorage.court_id)show_hidden?show_hidden=1) — Move to localStorage (it's per-user UX preference, not scenario state).paliad.fristen.notes-show,paliad.verfahrensablauf.durations-show) — keep as-is.Removed (already gone)
?appellant=— removed in #132 (Berufung tile refactor). Worker must NOT reintroduce.Behavior contract
history.replaceState). NO localStorage write for these — URL is the source of truth.event_choices/ court / flags don't leak in; they fill those locally.our_sideoverrides whatever's in URL/localStorage, same as today.Files
frontend/src/client/verfahrensablauf.ts— the URL helpers (getSide,setSide,getAppealTarget,setAppealTarget,getEventChoices,setEventChoices,getShowHidden,setShowHidden,currentProceeding). Refactor: URL helpers stay for the 4 chip params + trigger_date; new localStorage helpers for the rest. Make sure the existinginitPerspectiveControls+ load-time hydration honour the new contract.frontend/src/verfahrensablauf.tsx— verify the<input type=date>and<select>widgets carry their values from the right source on render.frontend/src/client/views/verfahrensablauf-core.ts— if the renderer reads URL params directly, route through the helpers instead.Acceptance
paliad.verfahrensablauf.scenario.*entry.?project=<id>still overrides as today.bun run build+go test ./...clean. Add a small frontend test (verfahrensablauf-core.test.ts already exists) covering the URL→localStorage hydration order.Sequencing
This task is BLOCKED until #136 (t-paliad-307, diesel) lands — diesel is touching
frontend/src/client/verfahrensablauf.tsfor the side-filter bug and would conflict with this refactor. Head will dispatch a worker once #136 is merged.Anti-patterns
?appellant=resurrection).