% my $user = current_user();
% if (not $journey->{arr_name}) { <%= L('status.select-destination') %> % } %= include '_format_train', journey => $journey % if ($journey->{comment}) {

<%= $journey->{comment} %>

% }

% if ($journey->{boarding_countdown} > 60) { <%= L('status.boarding-in.pre') %> <%= journeys->min_to_human(int($journey->{boarding_countdown} / 60)) %> <%= L('status.boarding-in.post') %>
% } % elsif ($journey->{boarding_countdown} > 0) { <%= L('status.boarding-soon') %>
% } % if ($journey->{departure_countdown} > 60) { <%= L('status.departure-in.pre') %> <%= journeys->min_to_human(int($journey->{departure_countdown} / 60)) %> <%= L('status.departure-in.post') %> % } % elsif ($journey->{departure_countdown} > 0) { %= L('status.departure-soon') % } % elsif (defined $journey->{arrival_countdown}) { % if ($journey->{arrival_countdown} > 60) { <%= L('status.arrival-in.pre') %> <%= journeys->min_to_human(int($journey->{arrival_countdown} / 60)) %> <%= L('status.arrival-in.post') %> % } % elsif ($journey->{arrival_countdown} > 0) { %= L('status.arrival-soon') % } % else { %= L('status.arrived') % } % if ($journey->{arrival_countdown} < (60 * 15) and $journey->{arr_platform}) { % if ($journey->{arr_direction} and $journey->{arr_direction} eq 'r') {
<%= $journey->{platform_type} %> <%= $journey->{arr_platform} %> ▶ % } % elsif ($journey->{arr_direction} and $journey->{arr_direction} eq 'l') {
◀ <%= $journey->{platform_type} %> <%= $journey->{arr_platform} %> % } % else {
<%= L('status.arrive-on.pre') %> <%= $journey->{platform_type} %> <%= $journey->{arr_platform} %> <%= L('status.arrive-on.post') %> % } % } % } % elsif ($journey->{arr_name}) { Ankunft in mehr als zwei Stunden % } % if ($journey->{departure_countdown} > 0 and $journey->{dep_platform}) { % if ($journey->{dep_direction} and $journey->{dep_direction} eq 'r') {
<%= $journey->{platform_type} %> <%= $journey->{dep_platform} %> ▶ % } % elsif ($journey->{dep_direction} and $journey->{dep_direction} eq 'l') {
◀ <%= $journey->{platform_type} %> <%= $journey->{dep_platform} %> % } % else {
<%= L('status.depart-from.pre') %> <%= $journey->{platform_type} %> <%= $journey->{dep_platform} %> <%= L('status.depart-from.post') %> % } % } % if (my $wr = $journey->{wagonorder}) {
% my $direction = $wr->direction == 100 ? '→' : '←'; % my $rev = 0; % if ($journey->{dep_direction}) { % $direction = $journey->{dep_direction} eq 'l' ? '◀' : '▶'; % $rev = (($journey->{dep_direction} eq 'l' ? 0 : 100) == $wr->direction) ? 0 : 1; % } %= $direction % my $had_entry = 0; % for my $group ($rev ? reverse $wr->groups : $wr->groups) { % if ($had_entry) { % $had_entry = 0; • % } % for my $wagon ($rev ? reverse $group->carriages : $group->carriages) { % if (not ($wagon->is_locomotive or $wagon->is_powercar)) { % $had_entry = 1; % if ($wagon->is_closed) { X % } % elsif ( $wagon->number) { %= $wagon->number % } % else { % if ( $wagon->has_first_class ) { % if ( $wagon->has_second_class ) { ½ % } % else { 1. % } % } % elsif ( $wagon->has_second_class ) { 2. % } % else { %= $wagon->type; % } % } % } % } % } %= $direction % }

% if ($journey->{arr_name}) {

<%= $journey->{dep_name} %>
<%= $journey->{real_departure}->strftime('%H:%M') %> % if ($journey->{real_departure}->epoch != $journey->{sched_departure}->epoch) { (<%= sprintf('%+d', ($journey->{real_departure}->epoch - $journey->{sched_departure}->epoch)/60) %>) % }
<%= $journey->{arr_name} %>
% if ($journey->{real_arrival}->epoch) { <%= $journey->{real_arrival}->strftime('%H:%M') %> % if ($journey->{real_arrival}->epoch != $journey->{sched_arrival}->epoch) { (<%= sprintf('%+d', ($journey->{real_arrival}->epoch - $journey->{sched_arrival}->epoch)/60) %>) % } % } % else { noch nicht bekannt % }
% for my $station (@{$journey->{route_after}}) { % if ($station->[0] eq $journey->{arr_name}) { % last; % } % if (($station->[2]{arr_countdown} // 0) > 0 and $station->[2]{arr}) { <%= $station->[0] %>
<%= $station->[2]{arr}->strftime('%H:%M') %> % if ($station->[2]{arr_delay}) { %= sprintf('(%+d)', $station->[2]{arr_delay} / 60); % } % last; % } % if (($station->[2]{dep_countdown} // 0) > 0 and $station->[2]{dep}) { <%= $station->[0] %>
% if ($station->[2]{arr}) { <%= $station->[2]{arr}->strftime('%H:%M') %> → % } %= $station->[2]{dep}->strftime('%H:%M') % if ($station->[2]{dep_delay}) { %= sprintf('(%+d)', $station->[2]{dep_delay} / 60); % } % last; % } % }
% for my $station (@{$journey->{route_after}}) { % if ($station->[0] eq $journey->{arr_name}) { % last; % } % if (($station->[2]{arr_countdown} // 0) > 0 and $station->[2]{arr}) { <%= $station->[0] %>
<%= $station->[2]{arr}->strftime('%H:%M') %> % if ($station->[2]{arr_delay}) { %= sprintf('(%+d)', $station->[2]{arr_delay} / 60); % } % last; % } % if (($station->[2]{dep_countdown} // 0) > 0 and $station->[2]{arr} and $station->[2]{dep}) { <%= $station->[0] %>
<%= $station->[2]{arr}->strftime('%H:%M') %> → <%= $station->[2]{dep}->strftime('%H:%M') %> % if ($station->[2]{dep_delay}) { %= sprintf('(%+d)', $station->[2]{dep_delay} / 60); % } % last; % } % }

% } % if ($journey->{extra_data}{cancelled_destination}) {

Der Halt an der Zielstation <%= $journey->{extra_data}{cancelled_destination} %> entfällt. Die zugehörige Fahrt wurde bereits als ausgefallen eingetragen. Bitte wähle ein neues Reiseziel.

% } % if (@{$journey->{messages} // []} or @{$journey->{extra_data}{qos_msg} // []} or not $journey->{extra_data}{rt}) {

    % if ($journey->{extra_data}{manual}) {
  • gps_off Manueller Checkin ohne Echtzeitdaten % } % elsif (not $journey->{extra_data}{rt}) {
  • gps_off <%= L('status.realtime-unavailable') %> % } % for my $message (reverse @{$journey->{messages} // []}) { % if ($journey->{sched_departure}->epoch - $message->[0]->epoch < 1800) {
  • warning <%= $message->[0]->strftime('%H:%M') %>: <%= $message->[1] %>
  • % } % } % if ($journey->{departure_countdown} > 0) { % for my $message (@{$journey->{extra_data}{qos_msg} // []}) {
  • info <%= $message->[0]->strftime('%H:%M') %>: <%= $message->[1] %>
  • % } % }

% } % if (@{stash('connections_iris') // [] } or @{stash('connections_hafas') // []}) { Verbindungen % if ($journey->{arrival_countdown} < 0) {

Fahrt auswählen zum Einchecken mit Zielwahl.

% } % if (@{stash('connections_iris') // [] }) { %= include '_connections', connections => stash('connections_iris'), checkin_from => $journey->{arrival_countdown} < 0 ? $journey->{arr_eva} : undef; % } % if (@{stash('connections_hafas') // [] }) { %= include '_connections_hafas', connections => stash('connections_hafas'), checkin_from => $journey->{arrival_countdown} < 0 ? $journey->{arr_eva} : undef; % } % } % if (defined $journey->{arrival_countdown} and $journey->{arrival_countdown} <= 0) {

%= L('status.delayed-auto-checkout')

% } % elsif (not $journey->{arr_name}) {

% for my $station (@{$journey->{route_after}}) { <%= $station->[0] %> %= include '_show_load_icons', station => $station % if ($station->[2]{isCancelled}) { entfällt % } % elsif ($station->[2]{rt_arr} or $station->[2]{sched_arr}) { %= ($station->[2]{rt_arr} || $station->[2]{sched_arr})->strftime('%H:%M') % } % elsif ($station->[2]{rt_dep} or $station->[2]{sched_dep}) { (<%= ($station->[2]{rt_dep} || $station->[2]{sched_dep})->strftime('%H:%M') %>) % } % elsif ($station->[2]{isAdditional}) { Zusatzhalt % } % }

% }
% if ($journey->{arr_name}) { comment <%= visibility_icon($journey_visibility) %> % } % else { <%= L('status.undo') %> % } % if (defined $journey->{arrival_countdown} and $journey->{arrival_countdown} <= 0) { done %= L('status.check-out') % } % elsif ($journey->{arr_name}) { % my $attrib = 'in'; % if ($journey->{train_type} =~ m{ ^ (?: S | RB ) $ }x) { % $attrib = 'in der'; % } {real_arrival}->epoch and $journey_visibility eq 'private') { % $arr_text = $journey->{real_arrival}->strftime(' – Ankunft gegen %H:%M Uhr'); % } % if ($user->{comments_visible} and $journey->{comment}) { data-text="<%= $journey->{comment} %> (@ <%= $journey->{train_type} %> <%= $journey->{train_no} %> → <%= $journey->{arr_name} %>) #travelynx" % } % else { data-text="Ich bin gerade <%= $attrib %> <%= $journey->{train_type} %> <%= $journey->{train_no} %> nach <%= $journey->{arr_name} . $arr_text %> #travelynx" % } % if ($journey_visibility eq 'public') { data-url="<%= url_for('/status')->to_abs->scheme('https') %>/<%= $user->{name} %>/<%= $journey->{sched_departure}->epoch %>" % } % elsif ($journey_visibility eq 'travelynx' or $journey_visibility eq 'followers' or $journey_visibility eq 'unlisted') { data-url="<%= url_for('/status')->to_abs->scheme('https') %>/<%= $user->{name} %>/<%= $journey->{sched_departure}->epoch %>?token=<%= $journey->{dep_eva} %>-<%= $journey->{timestamp}->epoch % 337 %>" % } > <%= L('status.share') %> % } % else { <%= visibility_icon($journey_visibility) %> <%= L('status.privacy-level') %> % }
% if (@{stash('timeline') // []}) { %= include '_timeline_link', timeline => stash('timeline'), from_checkin => 1 % } % if ($journey->{arr_name} and @{$journey->{extra_data}{him_msg} // []}) {
<%= L('status.messages') %> % if (@{$journey->{extra_data}{him_msg} // []}) {

    % for my $message (@{$journey->{extra_data}{him_msg} // []}) {
  • <%= ($message->{prio} and $message->{prio} eq 'HOCH') ? 'warning' : 'info' %> <%= $message->{header} %> <%= $message->{lead} %>
  • % }

% } % if ($journey->{traewelling}{errored} and $journey->{traewelling_log_latest}) {

  • warning Träwelling: <%= $journey->{traewelling_log_latest} %>

% } % if ($journey->{traewelling_url}) {

% }
% } % if ($journey->{arr_name}) {
<%= L('status.map') %>
%= include '_map', with_map_header => 0, station_coordinates => stash('station_coordinates'), polyline_groups => stash('polyline_groups'), markers => stash('markers')
% if ($journey->{extra_data}{manual}) {
Manueller Checkin
% } % else {
% }

%= L('status.force-checkout-lead')

<%= L('status.force-checkout') %>

% }