diff options
-rwxr-xr-x | lib/Travelynx.pm | 1 | ||||
-rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 23 | ||||
-rw-r--r-- | templates/_map.html.ep | 2 | ||||
-rw-r--r-- | templates/history_map.html.ep | 32 |
4 files changed, 49 insertions, 9 deletions
diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index f44bb8a..117724f 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -3641,7 +3641,6 @@ 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/comment')->to('traveling#comment_form'); $authed_r->post('/journey/edit')->to('traveling#edit_journey'); diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index 4d3c7d5..e294c8c 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -439,7 +439,12 @@ sub map_history { my $location = $self->app->coordinates_by_station; - my $with_polyline = $self->param('poly') ? 1 : 0; + if ( not $self->param('route_type') ) { + $self->param( route_type => 'polybee' ); + } + + my $route_type = $self->param('route_type'); + my $with_polyline = $route_type eq 'beeline' ? 0 : 1; my @journeys = $self->get_user_travels( with_polyline => $with_polyline ); @@ -470,8 +475,18 @@ sub map_history { my %seen; my @skipped_journeys; + my @polyline_journeys = grep { $_->{polyline} } @journeys; + my @beeline_journeys = grep { not $_->{polyline} } @journeys; + + if ( $route_type eq 'polyline' ) { + @beeline_journeys = (); + } + elsif ( $route_type eq 'beeline' ) { + push( @beeline_journeys, @polyline_journeys ); + @polyline_journeys = (); + } - for my $journey ( grep { $_->{polyline} } @journeys ) { + for my $journey (@polyline_journeys) { my @polyline = @{ $journey->{polyline} }; my $from_eva = $journey->{from_eva}; my $to_eva = $journey->{to_eva}; @@ -514,7 +529,7 @@ sub map_history { } } - for my $journey ( grep { not $_->{polyline} } @journeys ) { + for my $journey (@beeline_journeys) { my @route = map { $_->[0] } @{ $journey->{route} }; @@ -612,7 +627,7 @@ sub map_history { { polylines => \@coord_pairs, color => '#673ab7', - opacity => 0.9, + opacity => 0.8, } ], bounds => [ [ $min_lat, $min_lon ], [ $max_lat, $max_lon ] ], diff --git a/templates/_map.html.ep b/templates/_map.html.ep index 3918b4a..2e6dad8 100644 --- a/templates/_map.html.ep +++ b/templates/_map.html.ep @@ -8,7 +8,7 @@ <div class="row"> <div class="col s12"> <span style="color: #f03;">●</span> Ein-/Ausstiegsstation<br/> - <span style="color: #673ab7;">—</span> Luftlinie zwischen Unterwegshalten + <span style="color: #673ab7;">—</span> Streckenverlauf oder Luftlinie </div> </div> diff --git a/templates/history_map.html.ep b/templates/history_map.html.ep index c0eea4c..51f002e 100644 --- a/templates/history_map.html.ep +++ b/templates/history_map.html.ep @@ -11,8 +11,34 @@ %= include '_map', station_coordinates => $station_coordinates, polyline_groups => $polyline_groups -%= form_for '/history/map' => (method => 'POST') => begin - %= csrf_field +%= form_for '/history/map' => begin + <p> + Detailgrad und Filter: + </p> + <div class="row"> + <div class="input-field col s12"> + <label> + %= radio_button route_type => 'polyline' + <span>Nur Zugfahrten mit bekanntem Streckenverlauf eintragen</span> + </label> + </div> + </div> + <div class="row"> + <div class="input-field col s12"> + <label> + %= radio_button route_type => 'polybee' + <span>Streckenverlauf wenn bekannt, sonst Luftlinie zwischen Unterweghalten</span> + </label> + </div> + </div> + <div class="row"> + <div class="input-field col s12"> + <label> + %= radio_button route_type => 'beeline' + <span>Immer Luftlinie zwischen Unterwegshalten zeigen</span> + </label> + </div> + </div> <div class="row"> <div class="input-field col s12"> <label> @@ -23,7 +49,7 @@ </div> <div class="row"> <div class="col s12 center-align"> - <button class="btn wave-effect waves-light" type="submit" name="action" value="go"> + <button class="btn wave-effect waves-light" type="submit"> Anzeigen </button> </div> |