From 783a540cb081732aa6336d5441e2ef2738ccb1cf Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sat, 16 Nov 2019 23:47:18 +0100 Subject: history map: show time range; handle users with no journeys --- lib/Travelynx/Controller/Traveling.pm | 24 ++++++++++++++++++++++-- templates/history_map.html.ep | 7 ++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index 74f1e4d..3f6217b 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -422,6 +422,21 @@ sub map_history { # TODO create map-specific get_user_travels function returning EVA/DS100 station codes? my @journeys = $self->get_user_travels; + if ( not @journeys ) { + $self->render( + template => 'history_map', + with_map => 1, + station_coordinates => [], + station_pairs => [], + range_from => 0, + range_to => 0, + ); + return; + } + + my $first_departure = $journeys[-1]->{rt_departure}; + my $last_departure = $journeys[0]->{rt_departure}; + my @stations = uniq map { $_->{to_name} } @journeys; push( @stations, uniq map { $_->{from_name} } @journeys ); @stations = uniq @stations; @@ -437,7 +452,10 @@ sub map_history { my $from_index = first_index { $_ eq $journey->{from_name} } @route; my $to_index = first_index { $_ eq $journey->{to_name} } @route; - if ( $from_index == -1 or $to_index == -1 or $journey->{edited} == 0x3fff ) { + if ( $from_index == -1 + or $to_index == -1 + or $journey->{edited} == 0x3fff ) + { next; } @@ -475,7 +493,9 @@ sub map_history { template => 'history_map', with_map => 1, station_coordinates => \@station_coordinates, - station_pairs => \@station_pairs + station_pairs => \@station_pairs, + range_from => $first_departure, + range_to => $last_departure, ); } diff --git a/templates/history_map.html.ep b/templates/history_map.html.ep index 808b033..9f4c771 100644 --- a/templates/history_map.html.ep +++ b/templates/history_map.html.ep @@ -1,6 +1,11 @@
- Karte aller bisherigen Zugfahrten: + % if (@{$station_coordinates}) { + Zugfahrten zwischen <%= $range_from->strftime('%d.%m.%Y') %> und <%= $range_to->strftime('%d.%m.%Y') %> + % } + % else { + Keine Zugfahrten gefunden. + % }
-- cgit v1.2.3