diff options
Diffstat (limited to 'cgi')
-rw-r--r-- | cgi/index.pl | 58 |
1 files changed, 33 insertions, 25 deletions
diff --git a/cgi/index.pl b/cgi/index.pl index f107e5d..b2b37dc 100644 --- a/cgi/index.pl +++ b/cgi/index.pl @@ -13,16 +13,20 @@ no warnings 'uninitialized'; our $VERSION = '0.05'; -sub default_no_lines { - return 5; -} +my %default = ( + backend => 'vrr', + line => q{}, + no_lines => 5, + offset => q{}, + platform => q{}, +); sub get_results { my ( $backend, $city, $stop ) = @_; my $expiry = 900; - if (lc($city) eq 'berlin' or lc($stop) ~~ [qw[hbf hauptbahnhof]]) { + if ( lc($city) eq 'berlin' or lc($stop) ~~ [qw[hbf hauptbahnhof]] ) { $expiry = 600; } @@ -31,7 +35,7 @@ sub get_results { default_expires => "${expiry} sec", ); - my $sstr = ( "${backend} _ ${stop} _ ${city}" ); + my $sstr = ("${backend} _ ${stop} _ ${city}"); $sstr =~ tr{a-zA-Z0-9}{_}c; my $results = $cache->thaw($sstr); @@ -74,7 +78,7 @@ sub handle_request { my $no_lines = $self->param('no_lines'); if ( $no_lines < 1 or $no_lines > 10 ) { - $no_lines = default_no_lines(); + $no_lines = $default{no_lines}; } $self->stash( title => 'vrr-fakedisplay' ); @@ -174,7 +178,7 @@ sub render_image { } if ( $no_lines < 1 or $no_lines > 10 ) { - $no_lines = default_no_lines(); + $no_lines = $default{no_lines}; } my $png = App::VRR::Fakedisplay->new( @@ -203,7 +207,6 @@ sub render_image { // $strp_simple->parse_datetime($time); my $dt; - if ( ( @grep_line and not( grep { $line =~ $_ } @grep_line ) ) or ( @grep_platform and not( $platform ~~ \@grep_platform ) ) or ( $line =~ m{ ^ (RB | RE | IC | EC) }x ) ) @@ -279,14 +282,10 @@ get '/_redirect' => sub { $params->remove('city'); $params->remove('stop'); - if ( not $params->param('no_lines') - or $params->param('no_lines') == default_no_lines() ) - { - $params->remove('no_lines'); - } - - for my $param (qw(line platform offset)) { - if ( not $params->param($param) ) { + for my $param (qw(line platform offset no_lines backend)) { + if ( not $params->param($param) + or ( $params->param($param) eq $default{$param} ) ) + { $params->remove($param); } } @@ -317,11 +316,17 @@ __DATA__ } div.about { + margin-top: 2em; color: #666666; } div.about a { color: #000066; + text-decoration: none; + } + + span.optional { + color: #666666; } div.break { @@ -335,11 +340,15 @@ __DATA__ div.field div.desc { float: left; - width: 10em; + width: 14em; text-align: right; padding-right: 0.5em; } + input, select { + border: 1px solid black; + } + </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> </head> @@ -374,7 +383,7 @@ local transit networks as well. <%= form_for _redirect => begin %> <div> <div class="field"> - <div class="desc">City -> Stop</div> + <div class="desc">City → Stop</div> <div> <%= text_field 'city' %> <%= text_field 'stop' %> @@ -382,9 +391,10 @@ local transit networks as well. </div> </div> <div class="break"></div> - optional: + <span class="optional">optional:</span> <div class="field"> - <div class="desc">display height [1..10]</div> + <div class="desc" title="number of lines"> + display height [1..10]</div> <div> <%= text_field 'no_lines' %></div> </div> <div class="field"> @@ -392,20 +402,18 @@ local transit networks as well. <div><%= text_field 'offset' %></div> </div> <div class="field"> - <div class="desc">match line prefix <sup>1</sup></div> + <div class="desc" title="comma-separated list, example: NE,U,10"> + match line prefix</div> <div><%= text_field 'line' %></div> </div> <div class="field"> - <div class="desc">match platform <sup>1</sup></div> + <div class="desc" title="comma-separated list. Buggy.">match platform</div> <div><%= text_field 'platform' %></div> </div> <div class="field"> <div class="desc">backend</div> <div><%= select_field backend => [['EFA (VRR)' => 'vrr'], ['HAFAS (DB)' => 'db']] %></div> </div> - <div> - <sup>1</sup> comma-separated list<br/> - </div> </div> <% end %> |