X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-test.git;a=blobdiff_plain;f=yarrg%2Fweb%2Fquery_route;h=d4a3bd15e4c06cd362765852d3e63bcc8c6284fd;hp=66dee1dd08135de011871b15d71d963f7db235af;hb=70f23c42b325a1463fe8a9d76cb967b7df1260df;hpb=72587d0d7358ca77ecd0ede859abba7f89b1d9d2 diff --git a/yarrg/web/query_route b/yarrg/web/query_route index 66dee1d..d4a3bd1 100644 --- a/yarrg/web/query_route +++ b/yarrg/web/query_route @@ -35,7 +35,10 @@ <%args> $quri +$dbh +$prselector $routestring => ''; +$capacitystring => ''; $someresults $emsgokorprint @@ -45,21 +48,35 @@ my $emsg; my @archipelagoes; my @islandids; my %islandid2; +my ($max_volume, $max_mass); my $qa= \%ARGS; + +my $be_post; +my $startform= sub { + ($be_post)= @_; +
+<%perl> +}; +my $goupdate= sub { $be_post ? 'Update' : 'Go' }; -%#---------- textbox, user enters route as string ---------- -% if (!$qa->{Dropdowns}) { +

Specify route

+% $prselector->('ShowStalls'); + +%#---------- textbox, user enters route as string ---------- +% if (!$qa->{Dropdowns}) { + Enter route (islands, or archipelagoes, separated by |s or commas; abbreviations are OK):
- +% $startform->($routestring =~ m/\S/); -<&| qtextstring, qa => $qa, thingstring => 'routestring', emsgstore => \$emsg, +<&| qtextstring, qa => $qa, dbh => $dbh, + thingstring => 'routestring', emsgstore => \$emsg, perresult => sub { my ($canonname, $island, $arch) = @_; push @islandids, $island; @@ -69,8 +86,22 @@ Enter route (islands, or archipelagoes, separated by |s or commas; size=80 +Vessel capacity: +<&| qtextstring, qa => $qa, dbh => $dbh, prefix => 'cs', + thingstring => 'capacitystring', emsgstore => \$emsg, + perresult => sub { + ($max_volume,$max_mass) = @_; + } + &> + + % } else { #---------- dropdowns, user selects from menus ---------- +% $startform->(grep { +% defined $ARGS{"archipelago$_"} || +% defined $ARGS{"islandid$_"} +% } (0..$qa->{Dropdowns}-1)); + <%perl> my ($sth,$row); my @archlistdata; @@ -90,8 +121,6 @@ my $optionlistmap= sub { return $out; }; -my $dbh= dbw_connect($qa->{Ocean}); - $sth= $dbh->prepare("SELECT DISTINCT archipelago FROM islands ORDER BY archipelago;"); $sth->execute(); @@ -120,8 +149,6 @@ foreach my $arch (keys %islandlistdata) { $optionlistmap->($islandlistdata{$arch}, ''); } -$dbh->rollback(); - <&| script &> @@ -164,10 +191,11 @@ function ms_Setarch(dd) { % } #---------- end of dropdowns, now common middle of page code ---------- - -% my $ours= sub { $_[0] =~ m/^island|^archipelago|^routestring/; }; + +% my $ours= sub { $_[0] =~ +% m/^island|^archipelago|^routestring|^capacitystring|^[RT]/; +% }; <& "lookup:formhidden", ours => $ours &> -
<%perl> #========== results ========== @@ -205,6 +233,12 @@ for my $dd (0..$qa->{Dropdowns}-1) { % if (@islandids) { -% $someresults->(); -<& routetrade, islandids => \@islandids, archipelagoes => \@archipelagoes &> +% $someresults->('Relevant trades'); +<& routetrade, + dbh => $dbh, + islandids => \@islandids, + archipelagoes => \@archipelagoes, + qa => $qa + &> + % }