Loading index.pl +75 −60 Original line number Diff line number Diff line Loading @@ -74,6 +74,67 @@ helper 'is_important' => sub { return; }; helper 'json_route_diff' => sub { my ( $self, $route, $sched_route ) = @_; my @json_route; my @route = @{$route}; my @sched_route = @{$sched_route}; my $route_idx = 0; my $sched_idx = 0; while ( $route_idx <= $#route and $sched_idx <= $#sched_route ) { if ( $route[$route_idx] eq $sched_route[$sched_idx] ) { push( @json_route, { name => $route[$route_idx] } ); $route_idx++; $sched_idx++; } # this branch is inefficient, but won't be taken frequently elsif ( not( $route[$route_idx] ~~ \@sched_route ) ) { push( @json_route, { name => $route[$route_idx], isAdditional => 1 } ); $route_idx++; } else { push( @json_route, { name => $sched_route[$sched_idx], isCancelled => 1 } ); $sched_idx++; } } while ( $route_idx++ < $#route ) { push( @json_route, { name => $route[ $route_idx++ ], isAdditional => 1, isCancelled => 0 } ); } while ( $sched_idx++ < $#sched_route ) { push( @json_route, { name => $route[ $route_idx++ ], isAdditional => 0, isCancelled => 1 } ); } return @json_route; }; sub handle_request { my $self = shift; my $station = $self->stash('station'); Loading Loading @@ -374,60 +435,8 @@ sub handle_request { } if ( $template eq 'marudor' ) { my ( $route_idx, $sched_idx ) = ( 0, 0 ); my @json_route; my @route = $result->route; my @sched_route = $result->sched_route; while ( $route_idx <= $#route and $sched_idx <= $#sched_route ) { if ( $route[$route_idx] eq $sched_route[$sched_idx] ) { push( @json_route, { name => $route[$route_idx] } ); $route_idx++; $sched_idx++; } # this branch is inefficient, but won't be taken frequently elsif ( not( $route[$route_idx] ~~ \@sched_route ) ) { push( @json_route, { name => $route[$route_idx], isAdditional => 1 } ); $route_idx++; } else { push( @json_route, { name => $sched_route[$sched_idx], isCancelled => 1 } ); $sched_idx++; } } while ( $route_idx++ < $#route ) { push( @json_route, { name => $route[ $route_idx++ ], isAdditional => 1, isCancelled => 0 } ); } while ( $sched_idx++ < $#sched_route ) { push( @json_route, { name => $route[ $route_idx++ ], isAdditional => 0, isCancelled => 1 } ); } my @json_route = $self->json_route_diff( [ $result->route ], [ $result->sched_route ] ); push( @departures, Loading Loading @@ -480,6 +489,12 @@ sub handle_request { via => [ $result->route_interesting(3) ], scheduled_route => [ $result->sched_route ], route_post => [ $result->route_post ], route_post_diff => [ $self->json_route_diff( [ $result->route_post ], [ $result->sched_route_post ] ) ], destination => $result->destination, origin => $result->origin, platform => $platform, Loading public/default.css +8 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,14 @@ div.displayclean li .moreinfo .mroute .generic-stop { color: #555555; } div.displayclean li .moreinfo .mroute .additional-stop { color: #009900; } div.displayclean li .moreinfo .mroute .cancelled-stop { color: #cc0000; } div.displayclean li .dest { color:#000000; /*font-weight:bold;*/ Loading templates/clean.html.ep +11 −5 Original line number Diff line number Diff line Loading @@ -90,19 +90,25 @@ % } </div> <!-- timeinfo --> % } % if ($departure->{route_post} and @{$departure->{route_post}}) { % if ($departure->{route_post_diff} and @{$departure->{route_post_diff}}) { <div class="mroute"> Über: % my $first = 0; % for my $stop (@{$departure->{route_post} // q{???}}) { % for my $stop (@{$departure->{route_post_diff} // q{???}}) { % if ($first++) { <span class="separator">–</span> % } % if ($self->is_important($stop)) { <span class="important-stop"><%= $stop %></span> % if ($stop->{isAdditional}) { <span class="additional-stop"><%= $stop->{name} %></span> % } % elsif ($stop->{isCancelled}) { <span class="cancelled-stop"><%= $stop->{name} %></span> % } % elsif ($self->is_important($stop->{name})) { <span class="important-stop"><%= $stop->{name} %></span> % } % else { <span class="generic-stop"><%= $stop %></span> <span class="generic-stop"><%= $stop->{name} %></span> % } % } </div> <!-- mroute --> Loading Loading
index.pl +75 −60 Original line number Diff line number Diff line Loading @@ -74,6 +74,67 @@ helper 'is_important' => sub { return; }; helper 'json_route_diff' => sub { my ( $self, $route, $sched_route ) = @_; my @json_route; my @route = @{$route}; my @sched_route = @{$sched_route}; my $route_idx = 0; my $sched_idx = 0; while ( $route_idx <= $#route and $sched_idx <= $#sched_route ) { if ( $route[$route_idx] eq $sched_route[$sched_idx] ) { push( @json_route, { name => $route[$route_idx] } ); $route_idx++; $sched_idx++; } # this branch is inefficient, but won't be taken frequently elsif ( not( $route[$route_idx] ~~ \@sched_route ) ) { push( @json_route, { name => $route[$route_idx], isAdditional => 1 } ); $route_idx++; } else { push( @json_route, { name => $sched_route[$sched_idx], isCancelled => 1 } ); $sched_idx++; } } while ( $route_idx++ < $#route ) { push( @json_route, { name => $route[ $route_idx++ ], isAdditional => 1, isCancelled => 0 } ); } while ( $sched_idx++ < $#sched_route ) { push( @json_route, { name => $route[ $route_idx++ ], isAdditional => 0, isCancelled => 1 } ); } return @json_route; }; sub handle_request { my $self = shift; my $station = $self->stash('station'); Loading Loading @@ -374,60 +435,8 @@ sub handle_request { } if ( $template eq 'marudor' ) { my ( $route_idx, $sched_idx ) = ( 0, 0 ); my @json_route; my @route = $result->route; my @sched_route = $result->sched_route; while ( $route_idx <= $#route and $sched_idx <= $#sched_route ) { if ( $route[$route_idx] eq $sched_route[$sched_idx] ) { push( @json_route, { name => $route[$route_idx] } ); $route_idx++; $sched_idx++; } # this branch is inefficient, but won't be taken frequently elsif ( not( $route[$route_idx] ~~ \@sched_route ) ) { push( @json_route, { name => $route[$route_idx], isAdditional => 1 } ); $route_idx++; } else { push( @json_route, { name => $sched_route[$sched_idx], isCancelled => 1 } ); $sched_idx++; } } while ( $route_idx++ < $#route ) { push( @json_route, { name => $route[ $route_idx++ ], isAdditional => 1, isCancelled => 0 } ); } while ( $sched_idx++ < $#sched_route ) { push( @json_route, { name => $route[ $route_idx++ ], isAdditional => 0, isCancelled => 1 } ); } my @json_route = $self->json_route_diff( [ $result->route ], [ $result->sched_route ] ); push( @departures, Loading Loading @@ -480,6 +489,12 @@ sub handle_request { via => [ $result->route_interesting(3) ], scheduled_route => [ $result->sched_route ], route_post => [ $result->route_post ], route_post_diff => [ $self->json_route_diff( [ $result->route_post ], [ $result->sched_route_post ] ) ], destination => $result->destination, origin => $result->origin, platform => $platform, Loading
public/default.css +8 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,14 @@ div.displayclean li .moreinfo .mroute .generic-stop { color: #555555; } div.displayclean li .moreinfo .mroute .additional-stop { color: #009900; } div.displayclean li .moreinfo .mroute .cancelled-stop { color: #cc0000; } div.displayclean li .dest { color:#000000; /*font-weight:bold;*/ Loading
templates/clean.html.ep +11 −5 Original line number Diff line number Diff line Loading @@ -90,19 +90,25 @@ % } </div> <!-- timeinfo --> % } % if ($departure->{route_post} and @{$departure->{route_post}}) { % if ($departure->{route_post_diff} and @{$departure->{route_post_diff}}) { <div class="mroute"> Über: % my $first = 0; % for my $stop (@{$departure->{route_post} // q{???}}) { % for my $stop (@{$departure->{route_post_diff} // q{???}}) { % if ($first++) { <span class="separator">–</span> % } % if ($self->is_important($stop)) { <span class="important-stop"><%= $stop %></span> % if ($stop->{isAdditional}) { <span class="additional-stop"><%= $stop->{name} %></span> % } % elsif ($stop->{isCancelled}) { <span class="cancelled-stop"><%= $stop->{name} %></span> % } % elsif ($self->is_important($stop->{name})) { <span class="important-stop"><%= $stop->{name} %></span> % } % else { <span class="generic-stop"><%= $stop %></span> <span class="generic-stop"><%= $stop->{name} %></span> % } % } </div> <!-- mroute --> Loading