summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2024-07-24 21:11:45 +0200
committerBirte Kristina Friesel <derf@finalrewind.org>2024-07-24 21:11:59 +0200
commit2558df1b91e8aa2116fa88e34fc09055dca900ec (patch)
tree3036c37ca4961642b89b6a0b16f0d86317ad16f1
parentfe3037348459ed7e4e54b13281e0a1e82a94a78f (diff)
add a prominent backend selection link
-rw-r--r--lib/DBInfoscreen.pm2
-rw-r--r--lib/DBInfoscreen/Controller/Stationboard.pm29
-rw-r--r--sass/app.scss4
-rw-r--r--templates/_backend.html.ep10
-rw-r--r--templates/layouts/app.html.ep3
5 files changed, 48 insertions, 0 deletions
diff --git a/lib/DBInfoscreen.pm b/lib/DBInfoscreen.pm
index 174fc97..2e15eb3 100644
--- a/lib/DBInfoscreen.pm
+++ b/lib/DBInfoscreen.pm
@@ -301,6 +301,8 @@ sub startup {
$r->get('/_autostop')->to('static#geostop');
+ $r->get('/_backend')->to('stationboard#backend_list');
+
$r->get('/_datenschutz')->to('static#privacy');
$r->post('/_geolocation')->to('stationboard#stations_by_coordinates');
diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm
index 971ff80..bb45454 100644
--- a/lib/DBInfoscreen/Controller/Stationboard.pm
+++ b/lib/DBInfoscreen/Controller/Stationboard.pm
@@ -2141,6 +2141,35 @@ sub stations_by_coordinates {
)->wait;
}
+sub backend_list {
+ my ($self) = @_;
+
+ my @backends = (
+ {
+ name => 'Deutsche Bahn',
+ type => 'IRIS-TTS',
+ }
+ );
+
+ for my $backend ( Travel::Status::DE::HAFAS::get_services() ) {
+ push(
+ @backends,
+ {
+ name => $backend->{name},
+ shortname => $backend->{shortname},
+ type => 'HAFAS',
+ hafas => 1,
+ }
+ );
+ }
+
+ $self->render(
+ '_backend',
+ backends => \@backends,
+ hide_opts => 1
+ );
+}
+
sub autocomplete {
my ($self) = @_;
diff --git a/sass/app.scss b/sass/app.scss
index 4d02ee1..f92d5dc 100644
--- a/sass/app.scss
+++ b/sass/app.scss
@@ -1010,6 +1010,10 @@ input[type="submit"]:active,
border-color: $button-hover-border;
}
+div.backendlink {
+ margin-top: 1ex;
+}
+
div.notes {
margin-top: 2em;
}
diff --git a/templates/_backend.html.ep b/templates/_backend.html.ep
new file mode 100644
index 0000000..159d325
--- /dev/null
+++ b/templates/_backend.html.ep
@@ -0,0 +1,10 @@
+<div class="container">
+ <p>
+ Die folgenden Backends werden derzeit unterstützt:
+ </p>
+ <p>
+ % for my $backend (@{$backends}) {
+ <a class="button" href="<%= url_for(q{/})->query({ hafas => $backend->{hafas} ? $backend->{shortname} : q{} }) %>"><%= $backend->{name} %> (<%= $backend->{type} %>)</a>
+ % }
+ </p>
+</div>
diff --git a/templates/layouts/app.html.ep b/templates/layouts/app.html.ep
index 579fb80..7d8bfca 100644
--- a/templates/layouts/app.html.ep
+++ b/templates/layouts/app.html.ep
@@ -141,6 +141,9 @@ Bitte eine Station aus der Liste auswählen</div>
<a class="button" href="<%= url_for('_autostop')->to_abs->scheme('https')->query({hafas => param('hafas')}) %>">Stationen in der Umgebung suchen</a>
</div>
% }
+ <div class="backendlink">
+ <a class="button button-light" href="<%= url_for('_backend')->query({hafas => param('hafas')}) %>">Backend: <%= param('hafas') ? param('hafas') . ' (HAFAS)' : 'DB (IRIS-TTS)' %></a>
+ </div>
<div class="break"></div>
<div class="moresettings-header moresettings-header-collapsed button button-light">Weitere Einstellungen</div>
<div class="moresettings moresettings-collapsed">