X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Fweb%2Flookup;h=64860fd5f9db94e83105e83b50ad43e433b286db;hb=9d01242d0991d15f7ea84454264c868e1c4ed8ad;hp=9c00a65466481bd3e6e1633fa3fe0c7fbf418f9a;hpb=555fcf1a304c5f1aef9384c3c4d07d5255a0f05d;p=ypp-sc-tools.db-live.git diff --git a/yarrg/web/lookup b/yarrg/web/lookup old mode 100644 new mode 100755 index 9c00a65..64860fd --- a/yarrg/web/lookup +++ b/yarrg/web/lookup @@ -1,17 +1,43 @@ -
+%doc> <%perl> -my %a; +my %ahtml; my @vars; - -# for output: -my @archipelagoes; -my @islandids; -my %islandid2; +my %styles; #---------- "mode" argument parsing and mode menu at top of page ---------- @@ -27,6 +53,11 @@ my %islandid2; CmpCanon => sub { !!$_[0] }, Values => [ [ 0, 'Type in names' ], [ 4, 'Select from menus' ] ] + }, { Name => 'Query', + Before => 'Query: ', + Values => [ [ 'route', 'Trades for route' ], + [ 'commod', 'Prices for commodity' ], + [ 'age', 'Data age' ] ] }); foreach my $var (@vars) { @@ -39,36 +70,68 @@ foreach my $var (@vars) { $val= [ $val, encode_entities($val) ]; } if (exists $ARGS{$lname}) { - $a{$name}= $ARGS{$lname}; + $styles{$name}= $ARGS{$lname}; + my @html= grep { $_->[0] eq $styles{$name} } + @{ $var->{Values} }; + $ahtml{$name}= @html==1 ? $html[0][1] : '???'; } else { - $a{$name}= $var->{Values}[0][0]; + $styles{$name}= $var->{Values}[0][0]; + $ahtml{$name}= $var->{Values}[0][1]; } } +%perl> + +<%shared> my %baseqf; +my %queryqf; +%shared> + +<%method formhidden> +<%args> +$ours +%args> +% foreach my $n (keys %baseqf, keys %queryqf) { +% next if $ours->($n); +% my $v= exists $baseqf{$n} ? $baseqf{$n} : $queryqf{$n}; + value="<% $v |h %>"> +% } +%method> + +
+<%perl> + foreach my $var (@vars) { my $lname= lc $var->{Name}; next unless exists $ARGS{$lname}; $baseqf{$lname}= $ARGS{$lname}; } -my %queryqf; foreach my $var (keys %ARGS) { next unless $var =~ - m/^(?:routestring|islandid\d|archipelago\d|debug)$/; + m/^(?:(?:route|commod)string|islandid\d|archipelago\d|debug)$/; my $val= $ARGS{$var}; next if $val eq 'none'; $queryqf{$var}= $val; } -my $uri= URI->new($m->current_comp()->name()); -my $quri= sub { $uri->query_form(@_); $uri->path_query(); }; +my $quri= sub { + my $uri= URI->new('lookup'); + $uri->query_form(@_); + $uri->path_query(); +}; foreach my $var (@vars) { my $name= $var->{Name}; my $lname= lc $var->{Name}; my $delim= $var->{Before}; - my $canon= &{$var->{CmpCanon}}($a{$name}); + my $canon= &{$var->{CmpCanon}}($styles{$name}); my $cvalix= 0; foreach my $valr (@{ $var->{Values} }) { print $delim; $delim= "\n|\n"; @@ -82,7 +145,9 @@ foreach my $var (@vars) { my %qf= (%baseqf,%queryqf); delete $qf{$lname}; $qf{$lname}= $value if $cvalix; - print ''; +%perl> + +<%perl> $after= ''; } print $html, $after; @@ -93,236 +158,20 @@ foreach my $var (@vars) { #---------- initial checks, startup, main entry form ---------- -dbw_connect($a{Ocean}); +die if $styles{Query} =~ m/[^a-z]/; + +dbw_connect($styles{Ocean}); %perl> <%args> $debug => 0 -$routestring => '' %args> -
%#---------- debugging and epilogue ---------- @@ -333,19 +182,20 @@ Debug log: % } - +&script> + +<& footer &> <%init> use CommodsWeb; use HTML::Entities; use URI::Escape; -use JSON; %init>