diff options
author | Daniel Friesel <derf@finalrewind.org> | 2020-02-23 19:04:05 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2020-02-23 19:04:05 +0100 |
commit | 5c05ed609f3033fa97ec00089ed6885034ad9405 (patch) | |
tree | d0b1edf39cd4f0bbccca70d48e00d4db3cd17a9e | |
parent | 82f043e734cfbe1f166a4864afc5db5eb19080f9 (diff) |
journey details: show route on map if available1.15.1
-rwxr-xr-x | lib/Travelynx.pm | 25 | ||||
-rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 16 | ||||
-rw-r--r-- | 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 @@ </td> </tr> % } + % if ($journey->{user_data} and $journey->{user_data}{wagongroups} and not exists $journey->{user_data}{wagons}) { + <tr> + <th scope="row">Rollmaterial</th> + <td class="wagons"> + %= include '_wagons', wagongroups => $journey->{user_data}{wagongroups}; + </td> + </tr> + % } + % elsif ($journey->{user_data} and $journey->{user_data}{wagons}) { + <tr> + <th scope="row">Rollmaterial</th> + <td class="wagons"> + % for my $wagongroup (@{$journey->{user_data}{wagongroups} // []}) { + Wagenverbund <%= $wagongroup %><br/> + % } + % for my $wagon (@{$journey->{user_data}{wagons}}) { + <span><%= substr($wagon->{id}, 0, 2) %></span><span><%= substr($wagon->{id}, 2, 2) %></span><span><%= substr($wagon->{id}, 4, 1) %></span><span class="wagonclass"><%= substr($wagon->{id}, 5, 3) %></span><span class="wagonnum"><%= substr($wagon->{id}, 8, 3) %></span><span class="checksum"><%= substr($wagon->{id}, 11) %></span> + %= $wagon->{type} + % if ($wagon->{number}) { + – Wagen <%= $wagon->{number} %> + % } + <br/> + % } + </td> + </tr> + % } <tr> <th scope="row">Route</th> <td> @@ -194,35 +220,12 @@ % } </td> </tr> - % if ($journey->{user_data} and $journey->{user_data}{wagongroups} and not exists $journey->{user_data}{wagons}) { - <tr> - <th scope="row">Rollmaterial</th> - <td class="wagons"> - %= include '_wagons', wagongroups => $journey->{user_data}{wagongroups}; - </td> - </tr> - % } - % elsif ($journey->{user_data} and $journey->{user_data}{wagons}) { - <tr> - <th scope="row">Rollmaterial</th> - <td class="wagons"> - % for my $wagongroup (@{$journey->{user_data}{wagongroups} // []}) { - Wagenverbund <%= $wagongroup %><br/> - % } - % for my $wagon (@{$journey->{user_data}{wagons}}) { - <span><%= substr($wagon->{id}, 0, 2) %></span><span><%= substr($wagon->{id}, 2, 2) %></span><span><%= substr($wagon->{id}, 4, 1) %></span><span class="wagonclass"><%= substr($wagon->{id}, 5, 3) %></span><span class="wagonnum"><%= substr($wagon->{id}, 8, 3) %></span><span class="checksum"><%= substr($wagon->{id}, 11) %></span> - %= $wagon->{type} - % if ($wagon->{number}) { - – Wagen <%= $wagon->{number} %> - % } - <br/> - % } - </td> - </tr> - % } </table> </div> </div> + % if (stash('polyline_groups')) { + %= include '_map', station_coordinates => stash('station_coordinates'), polyline_groups => stash('polyline_groups') + % } % if (not stash('readonly')) { <div class="row hide-on-small-only"> <div class="col s12 m6 l6 center-align"> |