diff options
| author | Daniel Friesel <daniel.friesel@uos.de> | 2019-11-27 18:26:15 +0100 | 
|---|---|---|
| committer | Daniel Friesel <daniel.friesel@uos.de> | 2019-11-27 18:26:15 +0100 | 
| commit | 0e2e8cd78ef8dce5bed07187d3cda09dc2c5a103 (patch) | |
| tree | fee5f712395856cd97a0fe62feb6f682704c2cdc | |
| parent | 5e03718f14e9d8888a3bd0407828abf01beeda96 (diff) | |
history map: Add checkbox to display manually added journeys
| -rwxr-xr-x | lib/Travelynx.pm | 1 | ||||
| -rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 22 | ||||
| -rw-r--r-- | templates/history_map.html.ep | 25 | 
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 | 
