diff options
-rw-r--r-- | lib/DBInfoscreen/Controller/Stationboard.pm | 14 | ||||
-rw-r--r-- | public/static/js/collapse.js | 2 | ||||
-rw-r--r-- | templates/app.html.ep | 7 |
3 files changed, 17 insertions, 6 deletions
diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm index dbae28a..14ac3be 100644 --- a/lib/DBInfoscreen/Controller/Stationboard.pm +++ b/lib/DBInfoscreen/Controller/Stationboard.pm @@ -1532,10 +1532,16 @@ sub handle_efa { departure => $result->rt_datetime ? $result->rt_datetime->strftime('%H:%M') : undef, - train => $result->line, - train_type => q{}, - train_line => $result->line, - train_no => $result->train_no, + train => $result->line, + train_type => q{}, + train_line => $result->line, + train_no => $result->train_no, + journey_id => sprintf( '%s@%d(%s)%d', + $result->stateless, + scalar $result->route_pre ? ( $result->route_pre )[0]->id + : $result->stop_id, + $result->sched_datetime->strftime('%Y%m%d'), + $result->key ), via => [ map { $_->name } $result->route_interesting ], origin => $result->origin, destination => $result->destination, diff --git a/public/static/js/collapse.js b/public/static/js/collapse.js index d7d1e3b..6664795 100644 --- a/public/static/js/collapse.js +++ b/public/static/js/collapse.js @@ -124,6 +124,8 @@ function dbf_reg_handlers() { } if (param.get('hafas') && param.get('hafas') != '0') { history.pushState({'page':'traindetail','jid':trainElem.data('jid')}, 'test', '/z/' + trainElem.data('jid') + suffix); + } else if (param.get('efa') && param.get('efa') != '0') { + history.pushState({'page':'traindetail','jid':trainElem.data('jid')}, 'test', '/z/' + trainElem.data('jid') + suffix); } else { history.pushState({'page':'traindetail','station':station,'train':trainElem.data('no')}, 'test', '/z/' + trainElem.data('train') + '/' + trainElem.data('station') + suffix); } diff --git a/templates/app.html.ep b/templates/app.html.ep index a499dd7..2cd628f 100644 --- a/templates/app.html.ep +++ b/templates/app.html.ep @@ -30,7 +30,7 @@ % $route_str .= $stop . ($via_cur < $via_max ? ' - ' : q{}); % } <li -% if (param('hafas')) { +% if (param('hafas') or param('efa')) { data-jid="<%= $departure->{journey_id} =~ s{#}{%23}gr %>" % } data-train="<%= ($departure->{train_type} // q{}) %> <%= ($departure->{train_no} // $departure->{train} // q{}) %>" @@ -55,7 +55,10 @@ % if (param('hafas')) { <a href="/z/<%= Mojo::Util::url_escape($departure->{journey_id}) . '?hafas=' . Mojo::Util::url_escape(param('hafas')) . '&highlight=' . Mojo::Util::url_escape($departure->{station} // $station) %>"> % } -% elsif (not param('efa')) { +% elsif (param('efa')) { + <a href="/z/<%= Mojo::Util::url_escape($departure->{journey_id}) . '?efa=' . Mojo::Util::url_escape(param('efa')) . '&highlight=' . Mojo::Util::url_escape($departure->{station} // $station) %>"> +% } +% else { <a href="/z/<%= Mojo::Util::url_escape(($departure->{train_type} // q{}) . ' ' . ($departure->{train_no} // $departure->{train} // q{})) . '/' . Mojo::Util::url_escape($departure->{station} // $station) %>"> % } <div class="anchor" id="<%= ($departure->{train_type} // q{x}) . ($departure->{train_no} // q{x}) %>"></div> |