diff options
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | index.pl | 21 | ||||
-rw-r--r-- | public/static/default.css | 4 | ||||
-rw-r--r-- | templates/app.html.ep | 6 | ||||
-rw-r--r-- | templates/layouts/default.html.ep | 2 | ||||
-rw-r--r-- | templates/wagenreihung.html.ep | 30 |
6 files changed, 64 insertions, 0 deletions
@@ -10,6 +10,7 @@ Dependencies * Cache::File (part of the Cache module) * Mojolicious * Mojolicious::Plugin::BrowserDetect + * Travel::Status::DE::DBWagenreihung >= 0.00 * Travel::Status::DE::DeutscheBahn >= 2.03 * Travel::Status::DE::IRIS >= 1.21 @@ -6,6 +6,7 @@ use Cache::File; use File::Slurp qw(read_file write_file); use List::Util qw(max); use List::MoreUtils qw(); +use Travel::Status::DE::DBWagenreihung; use Travel::Status::DE::HAFAS; use Travel::Status::DE::HAFAS::StopFinder; use Travel::Status::DE::IRIS; @@ -824,6 +825,9 @@ sub handle_request { map { $_->type . q{ } . $_->train_no } $result->replacement_for ], + wr_link => $result->sched_departure + ? $result->sched_departure->strftime('%Y%m%d%H%M') + : undef, } ); } @@ -1010,6 +1014,23 @@ get '/_impressum' => sub { $self->render( 'imprint', hide_opts => 1 ); }; +get '/_wr/:train/:departure' => sub { + my $self = shift; + my $train = $self->stash('train'); + my $departure = $self->stash('departure'); + + my $wr = Travel::Status::DE::DBWagenreihung->new( + departure => $departure, + train_number => $train, + ); + + $self->render( + 'wagenreihung', + wr => $wr, + hide_opts => 1, + ); +}; + app->defaults( layout => 'default' ); app->sessions->default_expiration( 3600 * 24 * 28 ); diff --git a/public/static/default.css b/public/static/default.css index 0038a60..0be22fa 100644 --- a/public/static/default.css +++ b/public/static/default.css @@ -204,6 +204,10 @@ div.app li .moreinfo .minfo { color: #ff0000; } +div.app li .moreinfo .verbose { + margin-bottom: 0.6em; +} + div.app li .moreinfo .timeinfo { margin-bottom: 0.6em; } diff --git a/templates/app.html.ep b/templates/app.html.ep index 88e6586..80e17d2 100644 --- a/templates/app.html.ep +++ b/templates/app.html.ep @@ -143,6 +143,12 @@ % } % } </div> <!-- timeinfo --> +% if ($linetype eq 'fern' and $departure->{wr_link}) { + <div class="verbose"> + <a href="/_wr/<%= $departure->{train_no} %>/<%= $departure->{wr_link} %>">Wagenreihung</a> + </div> +% } + % } % if ($departure->{route_post_diff} and @{$departure->{route_post_diff}}) { <div class="mroute"> diff --git a/templates/layouts/default.html.ep b/templates/layouts/default.html.ep index d7d6e70..163955b 100644 --- a/templates/layouts/default.html.ep +++ b/templates/layouts/default.html.ep @@ -232,6 +232,8 @@ nur Züge via Bochum oder Hamm)</li> <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-DBWagenreihung/">-->Travel::Status::DE::DBWagenreihung<!--</a>--> +v<%= $Travel::Status::DE::DBWagenreihung::VERSION %><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> diff --git a/templates/wagenreihung.html.ep b/templates/wagenreihung.html.ep new file mode 100644 index 0000000..9055f00 --- /dev/null +++ b/templates/wagenreihung.html.ep @@ -0,0 +1,30 @@ +<div class="container"> +<div style="height: 2em;"> +(experimentell, die URL wird sich noch ändern und die Anzeige wird noch schöner) +</div> + +<div style="position: relative; width: 100%; height: 2em;"> +% for my $section ($wr->sections) { +<div style="position: absolute; left: <%= $section->{start_percent} %>%; right: <%= 100 - $section->{end_percent} %>%; top: 0em; bottom: 0em; text-align: center;"> +%= $section->{name} +</div> +% } +</div> +<div style="position: relative; width: 100%; height: 2em;"> +% for my $wagon ($wr->wagons) { +% my $bg = ''; +% if ($wagon->is_first_class) { +% $bg = 'background-color: #ffff99;'; +% } +<div style="position: absolute; left: <%= $wagon->{position}{start_percent} %>%; right: <%= 100 - $wagon->{position}{end_percent} %>%; top: 0em; bottom: 0em; border: 1px solid black; text-align: center; <%= $bg %>"> +% if ($wagon->is_locomotive or $wagon->is_powercar) { +LOK +% } +% else { +%= $wagon->{number} // '?' +% } +</div> +% } +</div> + +</div> |