X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Fweb%2Flookup;h=371bbb2747c3a5f06588c4ef9b950cd4a1353306;hb=315da411e1e9d4c92efac97c51cfc590ee6e4560;hp=64860fd5f9db94e83105e83b50ad43e433b286db;hpb=9d01242d0991d15f7ea84454264c868e1c4ed8ad;p=ypp-sc-tools.db-test.git diff --git a/yarrg/web/lookup b/yarrg/web/lookup index 64860fd..371bbb2 100755 --- a/yarrg/web/lookup +++ b/yarrg/web/lookup @@ -58,6 +58,26 @@ my %styles; Values => [ [ 'route', 'Trades for route' ], [ 'commod', 'Prices for commodity' ], [ 'age', 'Data age' ] ] + }, { Name => 'BuySell', + Before => '', + Values => [ [ 'buy_sell', 'Buy and sell' ], + [ 'sell_buy', 'Sell and buy' ], + [ 'buy', 'Buy offers only' ], + [ 'sell', 'Sell offers only' ], + ], + QuerySpecific => 1, + }, { Name => 'ShowBlank', + Before => '', + Values => [ [ 0, 'Omit islands with no offers' ], + [ 'show', 'Show all islands' ], + ], + QuerySpecific => 1, + }, { Name => 'ShowStalls', + Before => '', + Values => [ [ 0, 'Show total quantity at each price' ], + [ 1, 'Show individual stalls' ], + ], + QuerySpecific => 1, }); foreach my $var (@vars) { @@ -98,11 +118,33 @@ $ours % } %method> -
<%perl> @@ -115,7 +157,14 @@ foreach my $var (@vars) { foreach my $var (keys %ARGS) { next unless $var =~ - m/^(?:(?:route|commod)string|islandid\d|archipelago\d|debug)$/; + m/^(?: (?:route|commod|capacity|capital)string | + lossperleague | + commodid | + islandid \d | + archipelago \d | + debug | + [RT]\w+ + )$/x; my $val= $ARGS{$var}; next if $val eq 'none'; $queryqf{$var}= $val; @@ -127,7 +176,8 @@ my $quri= sub { $uri->path_query(); }; -foreach my $var (@vars) { +my $prselector_core= sub { + my ($var)= @_; my $name= $var->{Name}; my $lname= lc $var->{Name}; my $delim= $var->{Before}; @@ -154,13 +204,39 @@ foreach my $var (@vars) { $cvalix++; } print "
\n\n"; +}; + +my $prselector= sub { + my ($name)= @_; + foreach my $var (@vars) { + if ($var->{Name} eq $name) { + $prselector_core->($var); + return; + } + } + die $name; +}; + +foreach my $var (@vars) { + next if $var->{QuerySpecific}; + $prselector_core->($var); } #---------- initial checks, startup, main entry form ---------- die if $styles{Query} =~ m/[^a-z]/; -dbw_connect($styles{Ocean}); +my $mydbh; +my $dbh= ($mydbh= dbw_connect($styles{Ocean})); + +my $results_head_done=0; +my $someresults= sub { + return if $results_head_done; + $results_head_done=1; + my ($h)= @_; + $h= 'Results' if !$h; + print "\n
@@ -199,3 +286,8 @@ use HTML::Entities; use URI::Escape; %init> +<%cleanup> + +$mydbh->rollback() if $mydbh; + +%cleanup>