% if ($self->stash('refresh_interval')) { % } % my $av = 'v20'; # asset version %= stylesheet "/static/${av}/css/default.css" %= stylesheet "/static/${av}/css/material-icons.css" %= stylesheet "/static/${av}/css/jquery-ui.min.css" % my $force_mobile = param('force_mobile') // stash('force_mobile'); % if ($force_mobile) { %= stylesheet "/static/${av}/css/mobile.css" % } %if (stash('load_marquee')) { %= javascript '/static/js/jquery-3.4.1.min.js' %= javascript "/static/${av}/js/jquery-ui.min.js" %= javascript "/static/${av}/js/dbf.min.js" %= javascript "/static/${av}/js/marquee.min.js" %= javascript begin $(function () { $('marquee').marquee() }); % end % } else { %= javascript '/static/js/jquery-3.4.1.min.js', defer => undef %= javascript "/static/${av}/js/jquery-ui.min.js", defer => undef %= javascript "/static/${av}/js/dbf.min.js", defer => undef % } % if (stash('with_geolocation')) { %= javascript "/static/${av}/js/geolocation.min.js", defer => undef % }
% if (my $error = stash 'error') {
Backend-Fehler:
%= $error
% } % elsif (stash('stationlist')) {
Mehrdeutige Eingabe. Bitte eine Station aus der Liste auswählen
% }
%= content
% if (not stash('hide_opts')) {
%= form_for _redirect => begin
Bahnhof / Haltestelle
% if (stash('stationlist')) { %= select_field station => stash('stationlist') % } % elsif (stash('station')) { %= text_field 'station', class => 'station', placeholder => 'Name oder DS100-Kürzel' % } % else { %= text_field 'station', class => 'station', placeholder => 'Name oder DS100-Kürzel', autofocus => 'autofocus' % }
%= submit_button 'Abfahrtsmonitor'
% if (not stash('show_intro')) {
% }
Weitere Einstellungen
Frontend
%= select_field mode => [ ['App' => 'app'], ['Infoscreen' => 'infoscreen'], ['Bahnhofstafel' => 'multi'], ['Gleisanzeiger' => 'single'] ]
Backend
%= select_field backend => [ ['IRIS' => 'iris'], ['HAFAS' => 'ris'] ]
Nur Züge über
%= text_field 'via', placeholder => 'Bahnhof 1, Bhf2, ... (oder regulärer Ausdruck)', class => 'station'
Gleise
%= text_field 'platforms', placeholder => '1, 2, 5, ...'
%= check_box 'hidelowdelay' => 1, id => 'id_hidelowdelay'
%= check_box 'dark' => 1, id => 'id_dark'
%= check_box 'hide_opts' => 1, id => 'id_hide_opts'
Nur für IRIS-Backend:
Ankunfts- oder Abfahrtszeit anzeigen?
%= select_field admode => [['Abfahrt bevorzugen' => 'deparr'], ['Nur Abfahrt' => 'dep'], ['Nur Ankunft' => 'arr']]
%= check_box 'detailed' => 1, id => 'id_detailed'
%= check_box 'show_realtime' => 1, id => 'id_show_realtime'
%= check_box 'no_related' => 1, id => 'id_no_related'
%= check_box 'save_defaults' => 1, id => 'id_save_defaults'
%= submit_button 'Anzeigen'
% end
API- und Entwickler-Hinweise
  • Diese Seite kann gerne als iframe in eigene Infoscreens o.ä. eingebunden werden. Für eine kleine Ansicht (z.B. iframe in einer normalen Website) bitte das "App"-Frontend verwenden. Für eine große Ansicht (z.B. als alleinstehender Infoscreen) gibt es das "Infoscreen"-Frontend.
  • Die Parameter mode=json&version=3 (alternativ auch https://dbf.finalrewind.org/Bahnhofsname.json?version=3) bieten ein JSON-IRIS-Interface. Die route-Elemente können zusätzlich die Felder "isAdditional" oder "isCancelled" enthalten, der Rest sollte selbsterklärend sein. Im Fehlerfall fehlt das "departures"-Element, stattdessen wird ein "error"-Element mit Fehlermeldung zurückgegeben. Bitte nur eine Anfrage pro Station und Minute – eine höhere Auflösung haben die Backenddaten ohnehin nicht.
  • Mit limit kann die Anzahl der angezeigten / im JSON enthaltenen Abfahrten eingeschränkt werden, z.B. limit=10 für die ersten zehn.
  • Dieser Dienst ist Open Source-Software (Links siehe unten) und kann auch auf eigenen Servern installiert werden. Automatisierte Crawler, die mehrere Dutzend Stationen pro Minute abfragen, bitte nur auf eigenen Instanzen betreiben.
Siehe auch:
db-infoscreen v<%= stash('version') // '???' %>
Datenschutzerklärung · Impressum
% }