From bb32333ee20326e9125ff2de0c9c7bbd22ee8bb4 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 21 Mar 2021 10:53:04 +0100 Subject: landing page: accept both train numbers and station names --- lib/DBInfoscreen/Controller/Static.pm | 16 +++++++++++----- templates/layouts/app.html.ep | 8 ++++---- templates/layouts/legacy.html.ep | 8 ++++---- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/lib/DBInfoscreen/Controller/Static.pm b/lib/DBInfoscreen/Controller/Static.pm index 4a645ed..c25c6c5 100644 --- a/lib/DBInfoscreen/Controller/Static.pm +++ b/lib/DBInfoscreen/Controller/Static.pm @@ -1,4 +1,5 @@ package DBInfoscreen::Controller::Static; + # Copyright (C) 2011-2020 Daniel Friesel # # SPDX-License-Identifier: AGPL-3.0-or-later @@ -11,11 +12,11 @@ my %default = ( ); sub redirect { - my ($self) = @_; - my $station = $self->param('station'); - my $params = $self->req->params; + my ($self) = @_; + my $input = $self->param('input'); + my $params = $self->req->params; - $params->remove('station'); + $params->remove('input'); for my $param (qw(platforms mode admode via)) { if ( @@ -30,7 +31,12 @@ sub redirect { $params = $params->to_string; - $self->redirect_to("/${station}?${params}"); + if ( $input =~ m{ ^ [a-zA-Z]{1,5} \s+ \d+ $ }x ) { + $self->redirect_to("/z/${input}?${params}"); + } + else { + $self->redirect_to("/${input}?${params}"); + } } sub geolocation { diff --git a/templates/layouts/app.html.ep b/templates/layouts/app.html.ep index 78f8ebf..cf552e3 100644 --- a/templates/layouts/app.html.ep +++ b/templates/layouts/app.html.ep @@ -124,13 +124,13 @@ Bitte eine Station aus der Liste auswählen
Bahnhof / Haltestelle
% if (stash('stationlist')) { - %= select_field station => stash('stationlist') + %= select_field input => stash('stationlist') % } -% elsif (stash('station')) { - %= text_field 'station', class => 'station', placeholder => 'Name oder DS100-Kürzel', id => 'stationinput' +% elsif (stash('input')) { + %= text_field 'input', class => 'station', placeholder => 'Name oder DS100-Kürzel', id => 'stationinput' % } % else { - %= text_field 'station', class => 'station', placeholder => 'Name oder DS100-Kürzel', id => 'stationinput', autofocus => 'autofocus' + %= text_field 'input', class => 'station', placeholder => 'Name oder DS100-Kürzel', id => 'stationinput', autofocus => 'autofocus' % }
diff --git a/templates/layouts/legacy.html.ep b/templates/layouts/legacy.html.ep index d587cc6..c706a2d 100644 --- a/templates/layouts/legacy.html.ep +++ b/templates/layouts/legacy.html.ep @@ -83,13 +83,13 @@ Bitte eine Station aus der Liste auswählen
Bahnhof / Haltestelle
% if (stash('stationlist')) { - %= select_field station => stash('stationlist') + %= select_field input => stash('stationlist') % } -% elsif (stash('station')) { - %= text_field 'station', class => 'station', placeholder => 'Name oder DS100-Kürzel' +% elsif (stash('input')) { + %= text_field 'input', class => 'station', placeholder => 'Name oder DS100-Kürzel' % } % else { - %= text_field 'station', class => 'station', placeholder => 'Name oder DS100-Kürzel', autofocus => 'autofocus' + %= text_field 'input', class => 'station', placeholder => 'Name oder DS100-Kürzel', autofocus => 'autofocus' % }
-- cgit v1.2.3