Commit 6d45533c authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

mark cancelled stops in checkin view

parent 3582ba31
Loading
Loading
Loading
Loading
+51 −2
Original line number Diff line number Diff line
@@ -399,7 +399,7 @@ sub startup {
								sched_departure => $train->sched_departure,
								real_departure  => $train->departure,
								route           => $json->encode(
									[ map { [$_] } $train->route ]
									[ $self->route_diff($train) ]
								),
								messages => $json->encode(
									[
@@ -636,7 +636,7 @@ sub startup {
							real_arrival  => $train->arrival,
							cancelled => $train->arrival_is_cancelled ? 1 : 0,
							route =>
							  $json->encode( [ map { [$_] } $train->route ] ),
							  $json->encode( [ $self->route_diff($train) ] ),
							messages => $json->encode(
								[
									map { [ $_->[0]->epoch, $_->[1] ] }
@@ -1574,6 +1574,55 @@ sub startup {
		}
	);

	$self->helper(
		'route_diff' => sub {
			my ( $self, $train ) = @_;
			my @json_route;
			my @route       = $train->route;
			my @sched_route = $train->sched_route;

			say "real  is " . join( " - ", @route );
			say "sched is " . join( " - ", @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, [ $route[$route_idx], {}, undef ] );
					$route_idx++;
					$sched_idx++;
				}

				# this branch is inefficient, but won't be taken frequently
				elsif ( not( grep { $_ eq $route[$route_idx] } @sched_route ) )
				{
					push( @json_route,
						[ $route[$route_idx], {}, 'additional' ],
					);
					$route_idx++;
				}
				else {
					push( @json_route,
						[ $sched_route[$sched_idx], {}, 'cancelled' ],
					);
					$sched_idx++;
				}
			}
			while ( $route_idx <= $#route ) {
				push( @json_route, [ $route[$route_idx], {}, 'additional' ], );
				$route_idx++;
			}
			while ( $sched_idx <= $#sched_route ) {
				push( @json_route,
					[ $sched_route[$sched_idx], {}, 'cancelled' ],
				);
				$sched_idx++;
			}
			return @json_route;
		}
	);

	$self->helper(
		'get_dbdb_station_p' => sub {
			my ( $self, $ds100 ) = @_;
+2 −2
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ sub run {
						dep_platform   => $train->platform,
						real_departure => $train->departure,
						route =>
						  $json->encode( [ map { [$_] } $train->route ] ),
						  $json->encode( [ $self->app->route_diff($train) ] ),
						messages => $json->encode(
							[
								map { [ $_->[0]->epoch, $_->[1] ] }
@@ -103,7 +103,7 @@ sub run {
						sched_arrival => $train->sched_arrival,
						real_arrival  => $train->arrival,
						route =>
						  $json->encode( [ map { [$_] } $train->route ] ),
						  $json->encode( [ $self->app->route_diff($train) ] ),
						messages => $json->encode(
							[
								map { [ $_->[0]->epoch, $_->[1] ] }
+14 −2
Original line number Diff line number Diff line
@@ -200,9 +200,15 @@
					<tbody>
						% for my $station (@{$journey->{route_after}}) {
							<tr><td><a class="action-checkout" data-station="<%= $station->[0] %>"><%= $station->[0] %>
								% if ($station->[1]{rt_arr}) {
								% if ($station->[2] and $station->[2] eq 'cancelled') {
									<span style="float: right;">entfällt</span>
								% }
								% elsif ($station->[1]{rt_arr}) {
									<span style="float: right;"><%= $station->[1]{rt_arr}->strftime('%H:%M') %></span>
								% }
								% elsif ($station->[2] and $station->[2] eq 'additional') {
									<span style="float: right;">Zusatzhalt</span>
								% }
							</a></td></tr>
						% }
					</tbody>
@@ -247,9 +253,15 @@
						% for my $station (@{$journey->{route_after}}) {
							% my $is_dest = ($journey->{arr_name} and $station->[0] eq $journey->{arr_name});
							<tr><td><a style="<%= $is_dest? 'font-weight: bold;' : '' %>" class="action-checkout" data-station="<%= $station->[0] %>"><%= $station->[0] %>
								% if ($station->[1]{rt_arr}) {
								% if ($station->[2] and $station->[2] eq 'cancelled') {
									<span style="float: right;">entfällt</span>
								% }
								% elsif ($station->[1]{rt_arr}) {
									<span style="float: right;"><%= $station->[1]{rt_arr}->strftime('%H:%M') %></span>
								% }
								% elsif ($station->[2] and $station->[2] eq 'additional') {
									<span style="float: right;">Zusatzhalt</span>
								% }
							</a></td></tr>
						% }
					</tbody>