From 5c05ed609f3033fa97ec00089ed6885034ad9405 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 23 Feb 2020 19:04:05 +0100 Subject: [PATCH] journey details: show route on map if available --- lib/Travelynx.pm | 25 ++++++------ lib/Travelynx/Controller/Traveling.pm | 16 +++++++- templates/journey.html.ep | 55 ++++++++++++++------------- 3 files changed, 57 insertions(+), 39 deletions(-) diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index 9ab597d..538ec29 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -3726,16 +3726,7 @@ sub startup { = map { [ $location->{ $_->[0] }, $location->{ $_->[1] } ] } @station_pairs; - my @routes; - - my @lats = map { $_->[0][0] } @station_coordinates; - my @lons = map { $_->[0][1] } @station_coordinates; - my $min_lat = List::Util::min @lats; - my $max_lat = List::Util::max @lats; - my $min_lon = List::Util::min @lons; - my $max_lon = List::Util::max @lons; - - return { + my $ret = { skipped_journeys => \@skipped_journeys, station_coordinates => \@station_coordinates, polyline_groups => [ @@ -3750,8 +3741,20 @@ sub startup { opacity => 0.8, } ], - bounds => [ [ $min_lat, $min_lon ], [ $max_lat, $max_lon ] ], }; + + if (@station_coordinates) { + my @lats = map { $_->[0][0] } @station_coordinates; + my @lons = map { $_->[0][1] } @station_coordinates; + my $min_lat = List::Util::min @lats; + my $max_lat = List::Util::max @lats; + my $min_lon = List::Util::min @lons; + my $max_lon = List::Util::max @lons; + $ret->{bounds} + = [ [ $min_lat, $min_lon ], [ $max_lat, $max_lon ] ]; + } + + return $ret; } ); diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index d830d2b..37fad09 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -119,12 +119,18 @@ sub user_status { if ( not $user->{public_level} & 0x04 ) { delete $journey->{user_data}{comment}; } + my $map_data = $self->journeys_to_map_data( + journeys => [$journey], + include_manual => 1, + ); $self->render( 'journey', error => undef, + with_map => 1, readonly => 1, journey => $journey, twitter => \%tw_data, + %{$map_data}, ); } else { @@ -665,10 +671,16 @@ sub journey_details { ); if ($journey) { + my $map_data = $self->journeys_to_map_data( + journeys => [$journey], + include_manual => 1, + ); $self->render( 'journey', - error => undef, - journey => $journey, + error => undef, + journey => $journey, + with_map => 1, + %{$map_data}, ); } else { diff --git a/templates/journey.html.ep b/templates/journey.html.ep index bd22edc..0979f49 100644 --- a/templates/journey.html.ep +++ b/templates/journey.html.ep @@ -166,6 +166,32 @@ % } + % if ($journey->{user_data} and $journey->{user_data}{wagongroups} and not exists $journey->{user_data}{wagons}) { + + Rollmaterial + + %= include '_wagons', wagongroups => $journey->{user_data}{wagongroups}; + + + % } + % elsif ($journey->{user_data} and $journey->{user_data}{wagons}) { + + Rollmaterial + + % for my $wagongroup (@{$journey->{user_data}{wagongroups} // []}) { + Wagenverbund <%= $wagongroup %>
+ % } + % for my $wagon (@{$journey->{user_data}{wagons}}) { + <%= substr($wagon->{id}, 0, 2) %><%= substr($wagon->{id}, 2, 2) %><%= substr($wagon->{id}, 4, 1) %><%= substr($wagon->{id}, 5, 3) %><%= substr($wagon->{id}, 8, 3) %><%= substr($wagon->{id}, 11) %> + %= $wagon->{type} + % if ($wagon->{number}) { + – Wagen <%= $wagon->{number} %> + % } +
+ % } + + + % } Route @@ -194,35 +220,12 @@ % } - % if ($journey->{user_data} and $journey->{user_data}{wagongroups} and not exists $journey->{user_data}{wagons}) { - - Rollmaterial - - %= include '_wagons', wagongroups => $journey->{user_data}{wagongroups}; - - - % } - % elsif ($journey->{user_data} and $journey->{user_data}{wagons}) { - - Rollmaterial - - % for my $wagongroup (@{$journey->{user_data}{wagongroups} // []}) { - Wagenverbund <%= $wagongroup %>
- % } - % for my $wagon (@{$journey->{user_data}{wagons}}) { - <%= substr($wagon->{id}, 0, 2) %><%= substr($wagon->{id}, 2, 2) %><%= substr($wagon->{id}, 4, 1) %><%= substr($wagon->{id}, 5, 3) %><%= substr($wagon->{id}, 8, 3) %><%= substr($wagon->{id}, 11) %> - %= $wagon->{type} - % if ($wagon->{number}) { - – Wagen <%= $wagon->{number} %> - % } -
- % } - - - % } + % if (stash('polyline_groups')) { + %= include '_map', station_coordinates => stash('station_coordinates'), polyline_groups => stash('polyline_groups') + % } % if (not stash('readonly')) {