<!DOCTYPE html> <html lang="de"> <head> <title><%= stash('title') // 'db-infoscreen' %></title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> % if ($self->stash('refresh_interval')) { <meta http-equiv="refresh" content="<%= $self->stash('refresh_interval') %>"/> % } %= stylesheet '/static/default.css' %= stylesheet '/static/jquery-ui.min.css' % my $force_mobile = param('force_mobile') // -1; % if ($force_mobile == 1 or ($self->browser->mobile and $force_mobile != 0)) { %= stylesheet '/static/mobile.css' % } %= javascript '/static/jquery-1.10.2.min.js' %= javascript '/static/jquery-ui.min.js' %= javascript '/static/autocomplete.js' %= javascript '/static/collapse.js' %= javascript '/static/marquee.js' %= javascript begin $(function () { $('marquee').marquee() }); % end % if (stash('with_geolocation')) { %= javascript '/static/geolocation.js' % } </head> <body style="<%= (stash('hide_opts') ? 'margin: 0; padding: 0;' : q{}) %>"> <div class="container"> % if (my $error = stash 'error') { <div class="error"><strong>Backend-Fehler:</strong> <pre> %= $error </pre> </div> % } % elsif (stash('stationlist')) { <div class="error"><strong>Mehrdeutige Eingabe.</strong> Bitte eine Station aus der Liste auswählen</div> % } </div> %= content % if (not stash('hide_opts')) { <div class="container"> <div class="input-field"> %= form_for _redirect => begin <div> <div class="field"> <div class="desc">Bahnhof / Haltestelle</div> <div> % if (stash('stationlist')) { %= select_field station => stash('stationlist') % } % elsif (stash('station')) { %= text_field 'station', class => 'station' % } % else { %= text_field 'station', class => 'station', autofocus => 'autofocus' % } </div> </div> <div class="field"> %= submit_button 'Abfartsmonitor' </div> <div class="break"></div> <div class="moresettings-header moresettings-header-collapsed button button-light">Weitere Einstellungen</div> <div class="moresettings moresettings-collapsed"> <div class="field"> <div class="desc"> Frontend </div> <div> %= select_field mode => [ ['App / Infoscreen' => 'clean'], ['Bahnhofstafel' => 'multi'], ['Gleis' => 'single'] ] </div> </div> <div class="field"> <div class="desc"> Backend </div> <div> %= select_field backend => [ ['IRIS' => 'iris'], ['HAFAS' => 'ris'] ] </div> </div> <div class="field"> <div class="desc"> Nur Züge über </div> <div> %= text_field 'via', placeholder => 'Bahnhof 1, Bhf2, ... (oder regulärer Ausdruck)', class => 'station' </div> </div> <div class="field"> <div class="desc"> Gleise </div> <div> %= text_field 'platforms', placeholder => '1, 2, 5, ...' </div> </div> <div class="field"> <div class="desc"> %= check_box 'hidelowdelay' => 1, id => 'id_hidelowdelay' <label for="id_hidelowdelay"> Nur Verspätungen >5 Min. anzeigen </label> </div> </div> <div class="field"> <div class="desc"> %= check_box 'hide_opts' => 1, id => 'id_hide_opts' <label for="id_hide_opts"> Formular verstecken (für Infoscreens) </label> </div> </div> <div class="break"></div> <span class="optional">Nur für IRIS-Backend:</span> <div class="field"> <div class="desc"> Ankunfts- oder Abfahrtszeit anzeigen? </div> <div> %= select_field admode => [['Abfahrt bevorzugen' => 'deparr'], ['Nur Abfahrt' => 'dep'], ['Nur Ankunft' => 'arr']] </div> </div> <div class="field"> <div class="desc"> %= check_box 'show_realtime' => 1, id => 'id_show_realtime' <label for="id_show_realtime"> Erwartete Zeiten statt Fahrplandaten </label> </div> </div> <div class="field"> <div class="desc"> %= check_box 'no_related' => 1, id => 'id_no_related' <label for="id_no_related"> Betriebliche Bahnhofstrennungen berücksichtigen (z.B. "Hbf (Fern+Regio)" vs. "Hbf (S)") </label> </div> </div> <div class="field"> %= submit_button 'Anzeigen' </div> </div> <!-- moresettings --> </div> % end </div> <!-- input-field --> <div class="notes"> <span class="notes">Beispiele:</span> <ul> <li><a href="/Essen%20Hbf?mode=multi">Essen HBf</a> (IRIS, Bahnhofstafel)</li> <li><a href="/Dortmund%20Hbf/Bochum%7CHamm?mode=multi">Dortmund HBf</a> (IRIS, Bahnhofstafel, nur Züge via Bochum oder Hamm)</li> <li><a href="/Dortmund%20Universität?mode=clean">Dortmund Universität</a> (IRIS, Mobile/Infoscreen)</li> <li><a href="/KD?mode=single">Düsseldorf HBf</a> (IRIS, Gleistafel)</li> </ul> </div> <div class="notes"> <span class="notes">Siehe auch:</span> <ul> <li><a href="http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn">DB RIS</a> (<a href="http://mobile.bahn.de/bin/mobil/bhftafel.exe/dox">mobil</a>)</li> <li><a href="http://data.deutschebahn.com/datasets/betriebsstellen/">Betriebsstellenliste</a></li> <li><a href="https://vrrf.finalrewind.org/">vrr-infoscreen</a></li> </ul> </div> <!-- notes --> <div class="notes"> <span class="notes">Developers Developers Developers Developers:</span> <ul> <li>Diese Seite kann gerne als iframe in eigene Infoscreens o.ä. eingebunden werden. Das App/Infoscreen-Template kann dazu (falls nötig) mit <span style="font-family: monospace;">force_mobile=1</span> bzw. <span style="font-family: monospace;">force_mobile=0</span> auf die mobile bzw. die Desktopversion festgelegt werden</li> <li>Die Parameter <span style="font-family: monospace;">mode=marudor&version=3</span> liefern ein JSON-Interface. Die route-Elemente können zusätzlich die Felder "isAdditional" oder "isCancelled" enthalten, der Rest sollte selbsterklärend sein</li> </ul> </div> <!-- notes --> </div> <!-- container --> <div class="container"> <div class="about"> <a href="https://finalrewind.org/projects/db-fakedisplay/">db-infoscreen</a> v<%= stash('version') // '???' %><br/> Backends:<br/> <a href="https://finalrewind.org/projects/Travel-Status-DE-DeutscheBahn/">Travel::Status::DE::HAFAS</a> v<%= $Travel::Status::DE::HAFAS::VERSION %><br/> <a href="https://finalrewind.org/projects/Travel-Status-DE-IRIS/">Travel::Status::DE::IRIS</a> v<%= $Travel::Status::DE::IRIS::VERSION %><br/> <a href="http://data.deutschebahn.com/dataset/data-haltestellen">Haltestellendaten</a> © DB Station&Service AG, Europaplatz 1, 10557 Berlin, lizensiert unter CC-BY 4.0 </div> <!-- about --> </div> <!-- container --> % } </body> </html>