Direkte Verlinkbarkeit von Anträgen #132

Closed
opened 2026-04-13 10:29:58 +02:00 by tobias · 1 comment
Owner

Kontext

Aktuell gibt es keine stabile URL pro Antrag. Links wie /?drucksache=18/18081 funktionieren nur wenn JS den Query-Parameter liest und showDetail() aufruft — das passiert aber nicht bei Seitenload.

Ziel

  • https://gwoe.toppyr.de/?drucksache=18/18081 öffnet direkt die Detail-Ansicht des Antrags
  • Beim Teilen (Social, E-Mail, Clipboard) wird diese URL verwendet
  • Browser-History: Klick auf Antrag ändert die URL (pushState), Back-Button geht zurück

Implementierung

  • Beim Seitenload: URLSearchParams auslesen, wenn drucksache vorhanden → showDetail() nach Laden
  • Bei showDetail(): history.pushState mit ?drucksache=X
  • popstate-Event: Detail bei Browser-Back schließen
## Kontext Aktuell gibt es keine stabile URL pro Antrag. Links wie `/?drucksache=18/18081` funktionieren nur wenn JS den Query-Parameter liest und `showDetail()` aufruft — das passiert aber nicht bei Seitenload. ## Ziel - `https://gwoe.toppyr.de/?drucksache=18/18081` öffnet direkt die Detail-Ansicht des Antrags - Beim Teilen (Social, E-Mail, Clipboard) wird diese URL verwendet - Browser-History: Klick auf Antrag ändert die URL (pushState), Back-Button geht zurück ## Implementierung - [ ] Beim Seitenload: `URLSearchParams` auslesen, wenn `drucksache` vorhanden → `showDetail()` nach Laden - [ ] Bei `showDetail()`: `history.pushState` mit `?drucksache=X` - [ ] `popstate`-Event: Detail bei Browser-Back schließen
Author
Owner

Umgesetzt + deployed:

  • On-Load: URLSearchParams.get("drucksache")showDetail() (war bereits implementiert, Zeile 1371-1376)
  • In showDetail: history.pushState({drucksache}, "", "/?drucksache=X") mit Guard gegen doppel-push (war bereits implementiert, Zeile 2319-2322)
  • NEU: popstate-Listener — Browser-Back schließt Detail-Panel, räumt active-Klasse aus Liste. Wenn URL noch Drucksache enthält, Detail neu öffnen (Vor/Zurück-Navigation zwischen Anträgen)
  • NEU: Escape räumt auch die URL aufhistory.pushState({}, "", window.location.pathname) wenn Detail via Escape geschlossen
  • Cleanup: Dead-Placeholder-Zeile mit _origShowDetail entfernt

Live verifiziert: curl https://gwoe.toppyr.de/?drucksache=18/18081 → 200, neuer Template enthält popstate-Listener.

Deployed als Template-only-Change (scripts/deploy.sh app/templates/index.html).

Umgesetzt + deployed: - **On-Load:** `URLSearchParams.get("drucksache")` → `showDetail()` (war bereits implementiert, Zeile 1371-1376) - **In `showDetail`:** `history.pushState({drucksache}, "", "/?drucksache=X")` mit Guard gegen doppel-push (war bereits implementiert, Zeile 2319-2322) - **NEU: `popstate`-Listener** — Browser-Back schließt Detail-Panel, räumt `active`-Klasse aus Liste. Wenn URL noch Drucksache enthält, Detail neu öffnen (Vor/Zurück-Navigation zwischen Anträgen) - **NEU: Escape räumt auch die URL auf** — `history.pushState({}, "", window.location.pathname)` wenn Detail via Escape geschlossen - **Cleanup:** Dead-Placeholder-Zeile mit `_origShowDetail` entfernt Live verifiziert: `curl https://gwoe.toppyr.de/?drucksache=18/18081` → 200, neuer Template enthält `popstate`-Listener. Deployed als Template-only-Change (scripts/deploy.sh app/templates/index.html).
Sign in to join this conversation.
No description provided.