summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/DBInfoscreen/Controller/Stationboard.pm27
-rw-r--r--templates/layouts/app.html.ep11
2 files changed, 37 insertions, 1 deletions
diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm
index bf986d3..39b3a3d 100644
--- a/lib/DBInfoscreen/Controller/Stationboard.pm
+++ b/lib/DBInfoscreen/Controller/Stationboard.pm
@@ -456,6 +456,13 @@ sub handle_request {
results => [ $status->results ],
station_ds100 =>
( $status->station ? $status->station->{ds100} : undef ),
+ station_eva => (
+ $status->station
+ ? ( $status->station->{uic} // $status->station->{eva} )
+ : undef
+ ),
+ station_evas =>
+ ( $status->station ? $status->station->{evas} : [] ),
station_name =>
( $status->station ? $status->station->{name} : $station ),
};
@@ -1650,8 +1657,28 @@ sub handle_result {
}
else {
my $station_name = $data->{station_name} // $self->stash('station');
+ my ( $api_link, $api_text, $api_icon );
+ my $params = $self->req->params->clone;
+ $params->param( hafas => not $params->param('hafas') );
+ if ( $params->param('hafas') ) {
+ $api_link = '/' . $data->{station_eva} . '?' . $params->to_string;
+ $api_text = 'lol';
+ $api_icon = 'train';
+ }
+ else {
+ my $iris_eva = List::Util::min grep { $_ >= 1000000 }
+ @{ $data->{station_evas} // [] };
+ if ($iris_eva) {
+ $api_link = '/' . $iris_eva . '?' . $params->to_string;
+ $api_text = 'lol';
+ $api_icon = 'directions_bus';
+ }
+ }
$self->render(
$template,
+ api_link => $api_link,
+ api_text => $api_text,
+ api_icon => $api_icon,
departures => \@departures,
ice_type => $self->app->ice_type_map,
station => $station_name,
diff --git a/templates/layouts/app.html.ep b/templates/layouts/app.html.ep
index 0992a43..e406570 100644
--- a/templates/layouts/app.html.ep
+++ b/templates/layouts/app.html.ep
@@ -83,6 +83,11 @@
</span>
% }
<ul id="nav-mobile" style="float: right;">
+ % if (stash('api_link')) {
+ <li class="waves-effect waves-light">
+ <a href="<%= $api_link %>"><span class="visually-hidden"><%= $api_text %></span><i class="material-icons" aria-hidden="true"><%= $api_icon %></i></a>
+ </li>
+ % }
<li class="waves-effect waves-light">
<a onClick="javascript:toggleTheme()"><span class="visually-hidden">Farbschema invertieren</span><i class="material-icons" aria-hidden="true">invert_colors</i></a>
</li>
@@ -92,7 +97,6 @@
% else {
<li><a href="#stationinput"><span class="visually-hidden">Menü</span><i class="material-icons" aria-hidden="true">edit</i></a></li>
% }
- <li><a href="/_autostop"><span class="visually-hidden">Stationen in der Umgebung suchen</span><i class="material-icons" aria-hidden="true">my_location</i></a></li>
</ul>
</div>
</nav>
@@ -140,6 +144,11 @@ Bitte eine Station aus der Liste auswählen</div>
<div class="field">
%= submit_button 'Abfahrtsmonitor'
</div>
+ % if (stash('input')) {
+ <div class="geolink">
+ <a class="button" href="<%= url_for('_autostop')->to_abs->scheme('https') %>">Stationen in der Umgebung suchen</a>
+ </div>
+ % }
<div class="break"></div>
<div class="moresettings-header moresettings-header-collapsed button button-light">Weitere Einstellungen</div>
<div class="moresettings moresettings-collapsed">