X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.web-live.git;a=blobdiff_plain;f=yarrg%2Fweb%2Fquery_route;h=2162e8a8bbf203c7336c561d217374c378d11043;hp=d4a3bd15e4c06cd362765852d3e63bcc8c6284fd;hb=991b38b009b25da6992e9d984cd74d0e47c3c0b6;hpb=70f23c42b325a1463fe8a9d76cb967b7df1260df diff --git a/yarrg/web/query_route b/yarrg/web/query_route index d4a3bd1..2162e8a 100644 --- a/yarrg/web/query_route +++ b/yarrg/web/query_route @@ -39,16 +39,20 @@ $dbh $prselector $routestring => ''; $capacitystring => ''; +$lossperleague => ''; +$capitalstring => ''; $someresults $emsgokorprint %args> <%perl> my $emsg; +my @warningfs; my @archipelagoes; my @islandids; -my %islandid2; my ($max_volume, $max_mass); +my $lossperleaguepct; +my $capital; my $qa= \%ARGS; @@ -65,135 +69,80 @@ my $goupdate= sub { $be_post ? 'Update' : 'Go' };
+
+ +Vessel or capacity: <&| qtextstring, qa => $qa, dbh => $dbh, prefix => 'cs', thingstring => 'capacitystring', emsgstore => \$emsg, - perresult => sub { - ($max_volume,$max_mass) = @_; - } + helpref => 'capacity', + onresults => sub { ($max_mass,$max_volume) = @_; } &> + size=40 &> -% } else { #---------- dropdowns, user selects from menus ---------- - -% $startform->(grep { -% defined $ARGS{"archipelago$_"} || -% defined $ARGS{"islandid$_"} -% } (0..$qa->{Dropdowns}-1)); - -<%perl> -my ($sth,$row); -my @archlistdata; -my %islandlistdata; -$islandlistdata{'none'}= [ [ "none", "Select island..." ] ]; - -my $optionlistmap= sub { - my ($optlist, $selected) = @_; - my $out=''; - foreach my $entry (@$optlist) { - $out.= sprintf('', - encode_entities($entry->[0]), - defined $selected && $entry->[0] eq $selected - ? 'selected' : '', - encode_entities($entry->[1])); - } - return $out; -}; - -$sth= $dbh->prepare("SELECT DISTINCT archipelago FROM islands - ORDER BY archipelago;"); -$sth->execute(); - -while ($row=$sth->fetchrow_arrayref) { - my ($arch)= @$row; - push @archlistdata, [ $arch, $arch ]; - $islandlistdata{$arch}= [ [ "none", "Whole arch" ] ]; -} - -$sth= $dbh->prepare("SELECT islandid,islandname,archipelago - FROM islands - ORDER BY islandname;"); -$sth->execute(); - -while ($row=$sth->fetchrow_arrayref) { - my $arch= $row->[2]; - push @{ $islandlistdata{'none'} }, [ @$row ]; - push @{ $islandlistdata{$arch} }, [ @$row ]; - $islandid2{$row->[0]}= { Name => $row->[1], Arch => $arch }; -} - -my %resetislandlistdata; -foreach my $arch (keys %islandlistdata) { - $resetislandlistdata{$arch}= - $optionlistmap->($islandlistdata{$arch}, ''); -} + | + + -%perl> + |
+Expected losses:
-<&| script &>
-ms_lists= <% to_json_protecttags(\%resetislandlistdata) %>;
-function ms_Setarch(dd) {
- debug('ms_SetArch '+dd+' arch='+arch);
- var arch= document.getElementsByName('archipelago'+dd).item(0).value;
- var got= ms_lists[arch];
- if (got == undefined) return; // unknown arch ? hrm
- debug('ms_SetArch '+dd+' arch='+arch+' got ok');
- var select= document.getElementsByName('islandid'+dd).item(0);
- select.innerHTML= got;
- debug('ms_SetArch '+dd+' arch='+arch+' innerHTML set');
-}
-&script>
+<&| qtextstring, qa => $qa, dbh => $dbh, prefix => 'll',
+ thingstring => 'lossperleague', emsgstore => \$emsg,
+ helpref => 'losses',
+ onresults => sub { ($lossperleaguepct)= @_; }
+ &>
+ size=9
+&>
-
-<%perl> - } - $arch= undef; - } - push @archipelagoes, $arch; - push @islandids, $island; +foreach my $warningf (@warningfs) { + $someresults->(); + $warningf->(); } %perl> @@ -238,7 +164,11 @@ for my $dd (0..$qa->{Dropdowns}-1) { dbh => $dbh, islandids => \@islandids, archipelagoes => \@archipelagoes, - qa => $qa + qa => $qa, + max_mass => $max_mass, + max_volume => $max_volume, + lossperleaguepct => $lossperleaguepct, + max_capital => $capital &> - % } + |