<!DOCTYPE html> <html lang="en"> <head> <title><%= $title %></title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> % my $av = 'v1'; # asset version %= stylesheet "/static/${av}/css/main.css" %= javascript '/static/js/jquery-2.1.1.min.js' %= javascript "/static/${av}/js/image.js" </head> <body> % if ($stop) { % if ($errstr) { <div class="container"> <div class="error"> <strong>Backend-Fehler:</strong> %= $errstr </div><!-- error --> </div><!-- container --> % } % elsif ($frontend eq 'png') { <img src="/<%= $city ? "$city/" : q{} %><%= $stop %>.png?<%= $params %>" alt="" id="display" height="<%= $height * 4 %>" width="<%= $width * 4 %>"/> % } % elsif ($frontend eq 'html') { <iframe src="/<%= $city ? "$city/" : q{} %><%= $stop %>.html?<%= $params %>" id="display" height="<%= $height * 5 %>" width="<%= $width * 5 %>"></iframe> % } % elsif ($frontend eq 'infoscreen') { <p> <a href="/<%= $city ? "$city/" : q{} %><%= $stop %>.html?<%= $params %>&template=infoscreen">Infoscreen für <%= $city %> <%= $stop %></a> </p> Preview:<br/> <iframe src="/<%= $city ? "$city/" : q{} %><%= $stop %>.html?<%= $params %>&template=infoscreen" id="display" height="<%= $height * 5 %>" width="<%= $width * 5 %>"></iframe> % } % elsif ($frontend eq 'json') { <div class="container"> <p> <a href="/<%= $city ? "$city/" : q{} %><%= $stop %>.json?<%= $params %>">JSON-Daten für <%= $city %> <%= $stop %></a> </p> <p> Die Daten werden für 5 Minuten zwischengespeichert. Format: </p> <ul> <li>error: Fehlermeldung im Fehlerfall, sonst null</li> <li>preformatted: Die vom PNG/HTML-Frontend verwendeten Angaben</li> <li>raw: % if (param('backend') and param('backend') =~ m{ ^db | ^hafas }x) { Serialisierte <a href="http://finalrewind.org/projects/Travel-Status-DE-DeutscheBahn/"> Travel::Status::DE::HAFAS</a>-Objekte, siehe die Dokumentation zu <a href="http://man.finalrewind.org/3/Travel-Status-DE-HAFAS-Result/">::Result</a> % } % elsif (param('backend') and param('backend') =~ m{ ^ura }x) { Serialisierte <a href="http://finalrewind.org/projects/Travel-Status-DE-URA/"> Travel::Status::DE::URA</a>-Objekte, siehe die Dokumentation zu <a href="http://man.finalrewind.org/3/Travel-Status-DE-URA-Result/">::Result</a> % } % else { Serialisierte <a href="http://finalrewind.org/projects/Travel-Status-DE-VRR/"> Travel::Status::DE::EFA</a>-Objekte, siehe die Dokumentation zu <a href="http://man.finalrewind.org/3/Travel-Status-DE-EFA-Result/">::Result</a> und <a href="http://man.finalrewind.org/3/Travel-Status-DE-EFA-Line/">::Line</a> % } </li> <li>version: Aktuelle vrr-infoscreen-Version (String, keine Zahl)</li> </ul> <p>Bitte beachten: Das Datenformat des JSON-Interface kann sich jederzeit ohne Ankündigung ändern.</p> </div> <!-- container --> % } % } # ($stop) % else { <div class="container"> <p> Diese Seite ist ein inoffizielles Frontend für die Abfahrtsmonitore einiger europäischer Nahverkehrsunternehmen. Sie kannn wahlweise die oft an Haltestellen montierten LED-Displays nachahmen oder einen Handy- und Infoscreen-tauglichen Abfahrtsmonitor anzeigen. </p> <p> Alle Angaben ohne Gewähr. </p> </div> <!-- container --> % } <div class="container"> <div class="input-field"> % if (my $error = stash 'error') { <p> Fehler: <%= $error %><br/> </p> % } %= form_for _redirect => begin <div> <div class="field"> <div class="desc">Stadt (Pflichtfeld für EFA-Backends, sonst optional)</div> <div> % if (stash('place_candidates') and @{ stash('place_candidates') } ) { % my @candidates = map { [ $_, $_ ] } @{ stash('place_candidates') }; %= select_field city => \@candidates % } % else { %= text_field 'city' % } </div> </div> <div class="field"> <div class="desc">Haltestelle</div> <div> % if (stash('name_candidates') and @{ stash('name_candidates') } ) { % my @candidates = map { [ $_, $_ ] } @{ stash('name_candidates') }; %= select_field stop => \@candidates % } % else { %= text_field 'stop' % } </div> </div> <div class="field"> %= submit_button 'Anzeigen' </div> <div class="break"></div> <span class="optional">optional:</span> <div class="field"> <div class="desc">Frontend</div> <div> % if ($self->browser->mobile) { %= select_field frontend => [['App / Infoscreen' => 'infoscreen'], ['LED-Tafel (PNG)' => 'png'], ['LED-Tafel (HTML)' => 'html'], ['JSON' => 'json']] % } % else { %= select_field frontend => [['LED-Tafel (PNG)' => 'png'], ['LED-Tafel (HTML)' => 'html'], ['App / Infoscreen' => 'infoscreen'], ['JSON' => 'json']] % } </div> </div> <div class="field"> <div class="desc">Backend</div> <div> % my @efa_backends = map { ["$_ (EFA)" => "efa.$_"] } efa_service_list(); % @efa_backends = map { $_->[1] } sort { $a->[0] cmp $b->[0] } % map { [$_->[0], $_] } @efa_backends; % my @hafas_backends = map { ["$_ (HAFAS)" => "hafas.$_"] } hafas_service_list(); % @hafas_backends = map { $_->[1] } sort { $a->[0] cmp $b->[0] } % map { [$_->[0], $_] } @hafas_backends; % my @ura_backends = map { ["$_ (URA)" => "ura.$_"] } ura_service_list(); % @ura_backends = map { $_->[1] } sort { $a->[0] cmp $b->[0] } % map { [$_->[0], $_] } @ura_backends; %= select_field backend => [['EFA / VRR' => 'vrr'], @efa_backends, @hafas_backends, @ura_backends] </div> </div> <div class="field"> <div class="desc"> Höhe der Abfahrtstafel in Zeilen</div> <div> %= number_field 'no_lines', min => 1, max => 10 </div> </div> <div class="field"> <div class="desc">Mindestoffset der angezeigten Abfahrten in Minuten</div> <div> %= number_field 'offset', min => 0 </div> </div> <div class="field"> <div class="desc"> Linien/Typen¹</div> <div> %= text_field 'line' </div> </div> <div class="field"> <div class="desc">Bahnsteige¹</div> <div> %= text_field 'platform' </div> </div> </div> % end <p> <b>¹</b> Es können mehrere durch Kommata getrennte Werte angegeben werden, z.B. NE,U,10 </p> </div> <!-- input-field --> <div class="notes"> <span class="notes">Hinweise:</span> <ul> <li><a href="/Essen/Martinstr?no_lines=8">Beispiel</a></li> <li><a href="https://dbf.finalrewind.org/">db-infoscreen</a> (nur S-Bahn, Regional- und Fernverkehr)</li> </ul> </div> <!-- notes --> <div class="about"> <a href="http://finalrewind.org/projects/vrr-fakedisplay/">vrr-infoscreen</a> v<%= $version %><br/> Backends:<br/> <a href="http://finalrewind.org/projects/Travel-Status-DE-VRR/">Travel::Status::DE::EFA</a> v<%= $Travel::Status::DE::EFA::VERSION %><br/> <a href="http://finalrewind.org/projects/Travel-Status-DE-DeutscheBahn/">Travel::Status::DE::HAFAS</a> v<%= $Travel::Status::DE::HAFAS::VERSION %><br/> <a href="http://finalrewind.org/projects/Travel-Status-DE-URA/">Travel::Status::DE::URA</a> v<%= $Travel::Status::DE::URA::VERSION %><br/> <a href="/_imprint">Impressum</a><br/> <a href="/_privacy">Datenschutz</a><br/> </div> </div> <!-- container --> </body> </html>