mirror of
https://github.com/derf/travelynx
synced 2024-11-10 15:04:17 +00:00
history map: allow filtering by train type
This commit is contained in:
parent
5dfbdd8644
commit
5ff9e5c7a1
2 changed files with 20 additions and 0 deletions
|
@ -787,6 +787,14 @@ sub commute {
|
|||
);
|
||||
}
|
||||
|
||||
sub has_str_in_list {
|
||||
my ( $str, @strs ) = @_;
|
||||
if ( List::Util::any { $str eq $_ } @strs ) {
|
||||
return 1;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
sub map_history {
|
||||
my ($self) = @_;
|
||||
|
||||
|
@ -799,6 +807,7 @@ sub map_history {
|
|||
my $route_type = $self->param('route_type');
|
||||
my $filter_from = $self->param('filter_after');
|
||||
my $filter_until = $self->param('filter_before');
|
||||
my $filter_type = $self->param('filter_type');
|
||||
my $with_polyline = $route_type eq 'beeline' ? 0 : 1;
|
||||
|
||||
my $parser = DateTime::Format::Strptime->new(
|
||||
|
@ -831,6 +840,11 @@ sub map_history {
|
|||
before => $filter_until,
|
||||
);
|
||||
|
||||
if ($filter_type) {
|
||||
my @filter = split( qr{, *}, $filter_type );
|
||||
@journeys = grep { has_str_in_list( $_->{type}, @filter ) } @journeys;
|
||||
}
|
||||
|
||||
if ( not @journeys ) {
|
||||
$self->render(
|
||||
template => 'history_map',
|
||||
|
|
|
@ -69,6 +69,12 @@
|
|||
<label for="filter_before">Abfahrt bis (DD.MM.YYYY)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
%= text_field 'filter_type', id => 'filter_type'
|
||||
<label for="filter_tpye">Zugtypen</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col s12 center-align">
|
||||
<button class="btn wave-effect waves-light" type="submit">
|
||||
|
|
Loading…
Reference in a new issue