14 Commits
Author SHA1 Message Date
Claude fb7da747ec Frontend: Live-Updates pausieren im Hintergrund-Tab (Akku/Daten sparen)
Abfahrtstafel- und Favoriten-Polling (je 30s) liefen bisher die gesamte
Seitenlebensdauer weiter, egal ob der Tab überhaupt sichtbar war -
anders als LiveMap, das schon länger korrekt über den aktiven Tab
gesteuert wird. Über die Page Visibility API werden beide Intervalle
jetzt pausiert, sobald der Tab in den Hintergrund geht, und beim
Zurückkehren mit einer sofortigen Aktualisierung neu gestartet. Der
Fahrtalarm bleibt bewusst unangetastet, da er sicherheitsrelevant ist.

Zusätzlich: beim Entfernen eines Favoriten wird jetzt auch dessen
gemerkter Störungs-Stand aus dem localStorage entfernt (sonst bleibt
er dort für immer hängen - analog zum seenDisruptions-Leck, das
letzte Runde schon im Backend gefixt wurde).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01De7H8hR1Q9DdgyuS2ukN6y
2026-09-28 14:45:56 +02:00
Claude 4da99c913c Navigation an iOS-Tabs angleichen, Benachrichtigungscenter, Einfacher Modus
Phase 2-4 der WebApp-Angleichung an die iOS-App:

- Navigation: Favoriten und Störungen sind jetzt eigene Top-Level-Tabs
  (Desktop-Tableiste + mobile Bottom-Nav) statt nur über das Mehr-Grid bzw.
  den Stern im Header erreichbar. Neue Header-Icons für Einstellungen (⚙)
  und Benachrichtigungen (🔔, mit rotem Punkt bei ungelesenen Einträgen).
  "Mehr" ist jetzt schlanker (In der Nähe, Tickets, Verlauf, App-Info mit
  Verbindungstest gegen /health/full) und die Sprachauswahl in einen neuen
  eigenen "Einstellungen"-Tab umgezogen.

- Benachrichtigungscenter (js/notifications.js, neu): persistenter
  Verlauf über IndexedDB, sowohl vom Service Worker (eingehende Web-Push-
  Nachrichten, auch bei geschlossenem Tab) als auch von der Seite selbst
  (Störungs-Matches bei Favoriten, Fahrtalarm) beschrieben. Neuer
  "Benachrichtigungen"-Tab zeigt den Verlauf, Badge am Glocken-Icon zeigt
  ungelesene Einträge, per postMessage vom Service Worker live aktualisiert.

- Einfacher Modus: neuer Toggle im Einstellungen-Tab, persistiert in
  localStorage, setzt eine .simple-mode-Klasse auf <html> - moderat
  größere Schrift plus Ausblenden von Verkehrsmittel-Filter/Fahrrad-Option/
  "Zwischenhalt hinzufügen" im Routenplaner, analog zur iOS-App (bewusst
  keine Accessibility-Schriftgrößenstufe, die ist für Screenreader gedacht).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01De7H8hR1Q9DdgyuS2ukN6y
2026-09-28 11:58:15 +02:00
Claude 32c594bc4d Routenplanung auf HAFAS (/journeys) umstellen, Zwischenhalte, Filter, Paginierung
Löst die WebApp aus der eigenen OTP2-Instanz heraus und nutzt dieselbe
HAFAS-Anbindung (VBB + Deutsche Bahn) wie die iOS-App, damit beide Clients
gegen dasselbe Backend-Feature-Set laufen:

- js/api.js: getJourneys() ruft jetzt /journeys statt /otp/journeys auf,
  inkl. via0-2 (Lat/Lon/Name/WaitMinutes), modes, bike, earlierRef/laterRef.
  Gibt die volle Antwort zurück statt nur { journeys }.
- js/app.js: bis zu 3 Zwischenhalte mit eigener Ortssuche und Aufenthaltszeit,
  Verkehrsmittel-Filter (ModeFilter-Komponente wiederverwendet), Fahrrad-
  Toggle, Früher/Später-Buttons zum Nachladen. Share-Link-Format um
  Vias/Modes/Bike erweitert, alter Umstiegszeit-Puffer entfernt (von HAFAS
  nicht unterstützt).
- index.html/styles.css: neue Formularelemente für Zwischenhalte, Filter
  und Paginierung.
- js/i18n.js: neue Übersetzungsschlüssel in DE/EN, alten sourceNote-String
  korrigiert (&amp; wurde per textContent gesetzt und wäre literal
  angezeigt worden statt als &).
- README.md: Feature-Beschreibung aktualisiert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01De7H8hR1Q9DdgyuS2ukN6y
2026-09-28 11:49:14 +02:00
Serverlele30 9c3ec24bfe config.js aktualisieren (neue URL) 2026-09-11 23:46:16 +02:00
Serverlele30 cf4213868b Add files via upload 2026-09-01 13:37:00 +02:00
Serverlele30 9c3e2af209 Add files via upload 2026-09-01 13:12:08 +02:00
Serverlele30 7020ad99fc Add files via upload 2026-08-31 17:13:04 +02:00
Serverlele30 c6e2fed82c Add files via upload 2026-08-31 16:04:38 +02:00
Serverlele30 05bae700ec Add files via upload 2026-08-31 11:52:20 +02:00
Serverlele30 90ffa5b0ca Add files via upload 2026-08-31 11:38:03 +02:00
Serverlele30 de8640d801 Add files via upload 2026-08-31 11:05:24 +02:00
Serverlele30 e53cd580c5 Add files via upload 2026-08-31 10:11:52 +02:00
Serverlele30 63da9cdbba Add files via upload 2026-08-28 16:19:41 +02:00
Serverlele30 e79d3b4cdf Add files via upload 2026-08-27 15:21:56 +02:00