summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlib/Travelynx.pm1
-rwxr-xr-xlib/Travelynx/Controller/Traveling.pm23
-rw-r--r--templates/_map.html.ep2
-rw-r--r--templates/history_map.html.ep32
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>