summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2024-04-28 15:57:40 +0200
committerBirte Kristina Friesel <derf@finalrewind.org>2024-04-28 15:57:40 +0200
commit8a9ba07442a192bb83d079d1b6ff8b9087756588 (patch)
tree9ed548cf43bcd9cd38308c462fc162487ae4b9ab
parentfa0624eb41d0daf889e987ceab729c19b544a2bb (diff)
move coach sequence preview generation from template into Controller
-rw-r--r--lib/DBInfoscreen/Controller/Stationboard.pm37
-rw-r--r--templates/_train_details.html.ep25
2 files changed, 40 insertions, 22 deletions
diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm
index b566efa..2aac171 100644
--- a/lib/DBInfoscreen/Controller/Stationboard.pm
+++ b/lib/DBInfoscreen/Controller/Stationboard.pm
@@ -749,8 +749,38 @@ sub render_train {
from_json => $wr_json );
$departure->{wr} = $wr;
$departure->{wr_text} = join( q{ • },
- map { $_->{short} }
- grep { $_->{short} } $wr->train_descriptions );
+ map { $_->desc_short }
+ grep { $_->desc_short } $wr->groups );
+ my $first = 0;
+ for my $group ( $wr->groups ) {
+ for my $wagon ( $group->wagons ) {
+ if (
+ not( $wagon->is_locomotive
+ or $wagon->is_powercar )
+ )
+ {
+ if ($first) {
+ push( @{ $departure->{wr_preview} }, '•' );
+ $first = 0;
+ }
+ my $entry;
+ if ( $wagon->is_closed ) {
+ $entry = 'X';
+ }
+ else {
+ $entry = $wagon->number
+ || (
+ $wagon->type =~ m{AB} ? '½'
+ : $wagon->type =~ m{A} ? '1.'
+ : $wagon->type =~ m{B} ? '2.'
+ : $wagon->type
+ );
+ }
+ push( @{ $departure->{wr_preview} }, $entry );
+ }
+ }
+ $first = 1;
+ }
};
$departure->{wr_text} ||= 'Wagen';
return;
@@ -826,7 +856,8 @@ sub render_train {
}
if ($direction) {
- $departure->{direction} = $direction;
+ $departure->{direction} = $direction;
+ $departure->{direction_num} = $direction eq 'l' ? 0 : 100;
}
elsif ( $platform_info->{direction} ) {
$departure->{direction} = 'a' . $platform_info->{direction};
diff --git a/templates/_train_details.html.ep b/templates/_train_details.html.ep
index d70ef30..1b7bfce 100644
--- a/templates/_train_details.html.ep
+++ b/templates/_train_details.html.ep
@@ -118,31 +118,18 @@
</div> <!-- dataline -->
% if (my $wr = $departure->{wr}) {
<div class="wagonorder-preview">
-% my @wagons = $wr->wagons;
% my $direction = defined $wr->direction ? $wr->direction == 100 ? '→' : '←' : q{};
% if ($departure->{direction}) {
% $direction = $departure->{direction} eq 'l' ? '◀' : '▶';
-% if (($departure->{direction} eq 'l' ? 0 : 100) != $wr->direction) {
-% @wagons = reverse @wagons;
-% }
% }
<a href="/_wr/<%= $departure->{train_no} %>/<%= $departure->{wr_link} %>?e=<%= $departure->{direction} // '' %>">
%= $direction
-% my $gi;
-% for my $wagon (@wagons) {
-% if (not ($wagon->is_locomotive or $wagon->is_powercar)) {
-% if (defined $gi and $gi != $wagon->group_index) {
- •
-% }
-% if ($wagon->is_closed) {
- X
-% }
-% else {
-%= $wagon->number || ($wagon->type =~ m{AB} ? '½' : $wagon->type =~ m{A} ? '1.' : $wagon->type =~ m{B} ? '2.' : $wagon->type )
-% }
-% }
-% $gi = $wagon->group_index;
-% }
+ % if (defined $departure->{direction_num} and $departure->{direction_num} != $wr->direction) {
+ %= join(q{ }, reverse @{$departure->{wr_preview} // []})
+ % }
+ % else {
+ %= join(q{ }, @{$departure->{wr_preview} // []})
+ % }
%= $direction
</a>
</div>