summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2020-02-23 19:04:05 +0100
committerDaniel Friesel <derf@finalrewind.org>2020-02-23 19:04:05 +0100
commit5c05ed609f3033fa97ec00089ed6885034ad9405 (patch)
treed0b1edf39cd4f0bbccca70d48e00d4db3cd17a9e
parent82f043e734cfbe1f166a4864afc5db5eb19080f9 (diff)
journey details: show route on map if available1.15.1
-rwxr-xr-xlib/Travelynx.pm25
-rwxr-xr-xlib/Travelynx/Controller/Traveling.pm16
-rw-r--r--templates/journey.html.ep55
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">