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 (& 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
This commit is contained in:
6 files changed
+358
-73
No files matched your search
+18
-12
@@ -130,29 +130,35 @@
|
||||
<button class="when-choice" data-when="arrival" type="button" aria-pressed="false" data-i18n="journey.arrivalAt">Ankunft um</button>
|
||||
<input type="datetime-local" id="journey-when" class="journey-datetime" aria-label="Datum und Uhrzeit" hidden />
|
||||
</div>
|
||||
<div id="journey-vias" class="journey-vias"></div>
|
||||
<button id="journey-add-via" class="text-button journey-add-via" type="button">+ <span data-i18n="journey.addVia">Zwischenhalt hinzufügen</span></button>
|
||||
|
||||
<label class="wheelchair-toggle">
|
||||
<input type="checkbox" id="journey-wheelchair" />
|
||||
<span><span aria-hidden="true">♿</span> <span data-i18n="journey.wheelchair">Nur rollstuhlgerechte Verbindungen</span></span>
|
||||
</label>
|
||||
<label class="wheelchair-toggle" id="journey-bike-row">
|
||||
<input type="checkbox" id="journey-bike" />
|
||||
<span><span aria-hidden="true">🚲</span> <span data-i18n="journey.bike">Fahrrad mitnehmen</span></span>
|
||||
</label>
|
||||
|
||||
<div class="journey-modes-field" id="journey-modes-field">
|
||||
<span class="journey-modes-field__label" data-i18n="journey.modes">Verkehrsmittel</span>
|
||||
<div id="journey-mode-filter" class="mode-filter"></div>
|
||||
</div>
|
||||
|
||||
<div class="journey-options-row">
|
||||
<div class="transfer-slack-field">
|
||||
<label for="journey-transfer-slack" data-i18n="journey.transferSlack">Umstiegszeit-Puffer</label>
|
||||
<select id="journey-transfer-slack">
|
||||
<option value="" data-i18n="journey.transferSlackDefault">Standard</option>
|
||||
<option value="0" data-i18n="journey.transferSlack0">0 min (knapp)</option>
|
||||
<option value="3">3 min</option>
|
||||
<option value="5">5 min</option>
|
||||
<option value="10">10 min</option>
|
||||
<option value="15" data-i18n="journey.transferSlack15">15 min (sicher)</option>
|
||||
</select>
|
||||
</div>
|
||||
<button id="journey-submit" class="journey-submit" type="button"><span data-i18n="journey.submit">Verbindungen suchen</span> <span aria-hidden="true">→</span></button>
|
||||
</div>
|
||||
<p class="journey-source-note" data-i18n="journey.sourceNote">🛰 Routenplanung über unsere selbst gehostete, offene Instanz (VBB-Region)</p>
|
||||
<p class="journey-source-note" data-i18n="journey.sourceNote">🛰 Routenplanung mit Echtzeitdaten von VBB & Deutscher Bahn</p>
|
||||
<div id="journey-share-row" class="journey-share-row" hidden>
|
||||
<button id="journey-share-btn" class="text-button" type="button"><span aria-hidden="true">🔗</span> <span data-i18n="journey.share">Route teilen</span></button>
|
||||
</div>
|
||||
<div id="journey-results" class="journey-results" aria-live="polite"></div>
|
||||
<div id="journey-load-more-row" class="journey-load-more-row" hidden>
|
||||
<button id="journey-earlier-btn" class="journey-load-more-btn" type="button" disabled>↑ <span data-i18n="journey.earlier">Früher</span></button>
|
||||
<button id="journey-later-btn" class="journey-load-more-btn" type="button" disabled>↓ <span data-i18n="journey.later">Später</span></button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="tab-panel" data-tab-panel="nearby" hidden>
|
||||
|
||||
Reference in new issue
Block a user