summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlib/Travelynx.pm1
-rwxr-xr-xlib/Travelynx/Controller/Traveling.pm22
-rw-r--r--templates/history_map.html.ep25
3 files changed, 39 insertions, 9 deletions
diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm
index 1c5b449..8a308db 100755
--- a/lib/Travelynx.pm
+++ b/lib/Travelynx.pm
@@ -3135,6 +3135,7 @@ sub startup {
$authed_r->post('/account/privacy')->to('account#privacy');
$authed_r->post('/account/hooks')->to('account#webhook');
$authed_r->post('/account/insight')->to('account#insight');
+ $authed_r->post('/history/map')->to('traveling#map_history');
$authed_r->post('/journey/add')->to('traveling#add_journey_form');
$authed_r->post('/journey/edit')->to('traveling#edit_journey');
$authed_r->post('/journey/passenger_rights/*filename')
diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm
index 56de0fb..c8ba024 100755
--- a/lib/Travelynx/Controller/Traveling.pm
+++ b/lib/Travelynx/Controller/Traveling.pm
@@ -434,6 +434,8 @@ sub map_history {
return;
}
+ my $include_manual = $self->param('include_manual') ? 1 : 0;
+
my $first_departure = $journeys[-1]->{rt_departure};
my $last_departure = $journeys[0]->{rt_departure};
@@ -453,8 +455,24 @@ sub map_history {
my $to_index = first_index { $_ eq $journey->{to_name} } @route;
if ( $from_index == -1
- or $to_index == -1
- or $journey->{edited} == 0x3fff )
+ or $to_index == -1 )
+ {
+ next;
+ }
+
+ # Manual journey entries are only included if one of the following
+ # conditions is satisfied:
+ # * their route has more than two elements (-> probably more than just
+ # start and stop station), or
+ # * $include_manual is true (-> user wants to see incomplete routes)
+ # This avoids messing up the map in case an A -> B connection has been
+ # tracked both with a regular checkin (-> detailed route shown on map)
+ # and entered manually (-> beeline also shown on map, typically
+ # significantly differs from detailed route) -- unless the user
+ # sets include_manual, of course.
+ if ( $journey->{edited} & 0x0010
+ and @route <= 2
+ and not $include_manual )
{
next;
}
diff --git a/templates/history_map.html.ep b/templates/history_map.html.ep
index 97b2276..7bda06b 100644
--- a/templates/history_map.html.ep
+++ b/templates/history_map.html.ep
@@ -10,11 +10,22 @@
</div>
%= include '_map', station_coordinates => $station_coordinates, station_pairs => $station_pairs
-%
-<div class="row">
- <div class="col s12">
- Bei Zugfahrten mit inkonsistenten Reisedaten und manuellen Einträgen
- werden derzeit nur Start- und Zielbahnhof ohne Luftlinie dazwischen
- angezeigt.
+
+%= form_for '/history/map' => (method => 'POST') => begin
+ %= csrf_field
+ <div class="row">
+ <div class="input-field col s12">
+ <label>
+ %= check_box include_manual => 1
+ <span>Manuelle Einträge ohne Unterwegshalte mitberücksichtigen</span>
+ </label>
+ </div>
</div>
-</div>
+ <div class="row">
+ <div class="col s12 center-align">
+ <button class="btn wave-effect waves-light" type="submit" name="action" value="go">
+ Anzeigen
+ </button>
+ </div>
+ </div>
+%= end