Loading lib/Travelynx.pm +33 −1 Original line number Diff line number Diff line Loading @@ -817,7 +817,6 @@ sub startup { arr_platform => $train->platform, sched_arrival => $train->sched_arrival, real_arrival => $train->arrival, cancelled => $train->arrival_is_cancelled ? 1 : 0, route => $json->encode( [ $self->route_diff($train) ] ), messages => $json->encode( Loading Loading @@ -861,6 +860,39 @@ sub startup { } $self->invalidate_stats_cache( $cache_ts, $db, $uid ); } elsif ( defined $train and $train->arrival_is_cancelled ) { # This branch is only taken if the deparure was not cancelled, # i.e., if the train was supposed to go here but got # redirected or cancelled on the way and not from the start on. # If the departure itself was cancelled, the user route is # cancelled_from action -> 'cancelled journey' panel on main page # -> cancelled_to action -> force checkout (causing the # previous branch to be taken due to $force) $journey->{edited} = 0; $journey->{checkout_time} = $now; $journey->{cancelled} = 1; delete $journey->{data}; $db->insert( 'journeys', $journey ); $journey = $db->select( 'in_transit', ['data'], { user_id => $uid } )->expand->hash; $journey->{data}{cancelled_destination} = $train->station; $db->update( 'in_transit', { checkout_station_id => undef, checkout_time => undef, arr_platform => undef, sched_arrival => undef, real_arrival => undef, data => JSON->new->encode( $journey->{data} ), }, { user_id => $uid } ); } $tx->commit; }; Loading lib/Travelynx/Command/work.pm +9 −1 Original line number Diff line number Diff line Loading @@ -134,8 +134,16 @@ sub run { checkout_station_id => $arr } ); if ( $train->arrival_is_cancelled ) { # check out (adds a cancelled journey and resets journey state # to destination selection) $self->app->checkout( $arr, 0, $uid ); } else { $self->app->add_route_timestamps( $uid, $train, 0 ); } } elsif ( $entry->{real_arr_ts} ) { my ( undef, $error ) = $self->app->checkout( $arr, 1, $uid ); if ($error) { Loading templates/_checked_in.html.ep +7 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,13 @@ </div> </p> % } % if ($journey->{extra_data}{cancelled_destination}) { <p style="margin-bottom: 2ex;"> Der Halt in <b><%= $journey->{extra_data}{cancelled_destination} %></b> entfällt. Der Zugausfall wurde bereits vermerkt. Bitte wähle ein neues Reiseziel. </p> % } % if (@{$journey->{messages} // []} or @{$journey->{extra_data}{qos_msg} // []}) { <p style="margin-bottom: 2ex;"> <ul> Loading Loading
lib/Travelynx.pm +33 −1 Original line number Diff line number Diff line Loading @@ -817,7 +817,6 @@ sub startup { arr_platform => $train->platform, sched_arrival => $train->sched_arrival, real_arrival => $train->arrival, cancelled => $train->arrival_is_cancelled ? 1 : 0, route => $json->encode( [ $self->route_diff($train) ] ), messages => $json->encode( Loading Loading @@ -861,6 +860,39 @@ sub startup { } $self->invalidate_stats_cache( $cache_ts, $db, $uid ); } elsif ( defined $train and $train->arrival_is_cancelled ) { # This branch is only taken if the deparure was not cancelled, # i.e., if the train was supposed to go here but got # redirected or cancelled on the way and not from the start on. # If the departure itself was cancelled, the user route is # cancelled_from action -> 'cancelled journey' panel on main page # -> cancelled_to action -> force checkout (causing the # previous branch to be taken due to $force) $journey->{edited} = 0; $journey->{checkout_time} = $now; $journey->{cancelled} = 1; delete $journey->{data}; $db->insert( 'journeys', $journey ); $journey = $db->select( 'in_transit', ['data'], { user_id => $uid } )->expand->hash; $journey->{data}{cancelled_destination} = $train->station; $db->update( 'in_transit', { checkout_station_id => undef, checkout_time => undef, arr_platform => undef, sched_arrival => undef, real_arrival => undef, data => JSON->new->encode( $journey->{data} ), }, { user_id => $uid } ); } $tx->commit; }; Loading
lib/Travelynx/Command/work.pm +9 −1 Original line number Diff line number Diff line Loading @@ -134,8 +134,16 @@ sub run { checkout_station_id => $arr } ); if ( $train->arrival_is_cancelled ) { # check out (adds a cancelled journey and resets journey state # to destination selection) $self->app->checkout( $arr, 0, $uid ); } else { $self->app->add_route_timestamps( $uid, $train, 0 ); } } elsif ( $entry->{real_arr_ts} ) { my ( undef, $error ) = $self->app->checkout( $arr, 1, $uid ); if ($error) { Loading
templates/_checked_in.html.ep +7 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,13 @@ </div> </p> % } % if ($journey->{extra_data}{cancelled_destination}) { <p style="margin-bottom: 2ex;"> Der Halt in <b><%= $journey->{extra_data}{cancelled_destination} %></b> entfällt. Der Zugausfall wurde bereits vermerkt. Bitte wähle ein neues Reiseziel. </p> % } % if (@{$journey->{messages} // []} or @{$journey->{extra_data}{qos_msg} // []}) { <p style="margin-bottom: 2ex;"> <ul> Loading