diff options
author | Daniel Friesel <derf@finalrewind.org> | 2014-06-21 14:58:46 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2014-06-21 14:58:46 +0200 |
commit | fe9dc6c86ae97554898fa9c8172cb6c043d2fcd1 (patch) | |
tree | b33e595bdb6df7430df6031b8214eaa4e4587096 /cgi | |
parent | a750d073f232e4728a7f426e4e77ca82e53059a0 (diff) |
IRIS backend: Use dropdown menu to narrow down stations
Diffstat (limited to 'cgi')
-rw-r--r-- | cgi/index.pl | 12 | ||||
-rw-r--r-- | cgi/templates/layouts/default.html.ep | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/cgi/index.pl b/cgi/index.pl index 8558ec3..531ee5e 100644 --- a/cgi/index.pl +++ b/cgi/index.pl @@ -4,6 +4,7 @@ use Cache::File; use List::MoreUtils qw(any); use Travel::Status::DE::DeutscheBahn; use Travel::Status::DE::IRIS; +use Travel::Status::DE::IRIS::Stations; use 5.014; use utf8; @@ -79,6 +80,17 @@ sub handle_request { my @results = get_results_for( $backend, $station ); if ( not @results ) { + if ( $backend eq 'iris' ) { + my @candidates = map { [ "$_->[1] ($_->[0])", $_->[0] ] } + Travel::Status::DE::IRIS::Stations::get_station($station); + if (@candidates) { + $self->render( + 'multi', + stationlist => \@candidates, + hide_opts => 0 + ); + } + } $self->render( 'multi', error => "Got no results for '$station'", diff --git a/cgi/templates/layouts/default.html.ep b/cgi/templates/layouts/default.html.ep index 873def3..a9782ad 100644 --- a/cgi/templates/layouts/default.html.ep +++ b/cgi/templates/layouts/default.html.ep @@ -362,7 +362,12 @@ <div class="field"> <div class="desc">Station name</div> <div> +% if (stash('stationlist')) { + %= select_field station => stash('stationlist') +% } +% else { %= text_field 'station' +% } %= submit_button 'Display' </div> </div> |