X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Fweb%2Fquery_route;h=f409e704b4d01345db3cb14feca6f08c9d55ed3b;hb=38e2919be138f8a77eef7a2fc93d34eff8897f5e;hp=4344e1d017d69b1c5113bf70b446e82e78befbad;hpb=013f7a0ab3bf8d2b1100022e8fc868407c751720;p=ypp-sc-tools.db-live.git diff --git a/yarrg/web/query_route b/yarrg/web/query_route index 4344e1d..f409e70 100644 --- a/yarrg/web/query_route +++ b/yarrg/web/query_route @@ -1,73 +1,26 @@ <%args> $quri -$a +$qa $routestring => ''; <%perl> -#my $routestring= $queryqf{'routestring'}; -# -# for output: + my @archipelagoes; my @islandids; my %islandid2; -

Specify route

-
- %#---------- textbox, user enters route as string ---------- -% if (!$a->{Dropdowns}) { +% if (!$qa->{Dropdowns}) { -Enter route (islands, or archipelagoes, separated by |s or commas; - abbreviations are OK):
+

Specify route

-<&| script &> -tr_uri= "routetextstring?format=json&type=text/xml" - + "&ocean=<% uri_escape($a->{Ocean}) %>"; - -tr_timeout=false; -tr_request=false; -tr_done=''; -tr_needed=''; -function tr_Later(){ - window.clearTimeout(tr_timeout); - tr_timeout = window.setTimeout(tr_Needed, 500); -} -function tr_Needed(){ - window.clearTimeout(tr_timeout); - tr_element= document.getElementById('routestring'); - tr_needed= tr_element.value; - tr_Request(); -} -function tr_Request(){ - if (tr_request || tr_needed==tr_done) return; - tr_done= tr_needed; - tr_request= new XMLHttpRequest(); - uri= tr_uri+'&string='+encodeURIComponent(tr_needed); - tr_request.open('GET', uri); - tr_request.onreadystatechange= tr_Ready; - tr_request.send(null); -} -function tr_Ready() { - if (tr_request.readyState != 4) return; - if (tr_request.status == 200) { - response= tr_request.responseText; - eval('results='+response); - toedit= document.getElementById('routeresults'); - toedit.innerHTML= results.show; - } - tr_request= false; - tr_Request(); -} -window.onload= tr_Needed; - + -
-
 

+<&| qtextstring, qa => $qa, thingstring => 'routestring' &> + size=80 + % } else { #---------- dropdowns, user selects from menus ---------- @@ -90,7 +43,7 @@ my $optionlistmap= sub { return $out; }; -my $dbh= dbw_connect($a->{Ocean}); +my $dbh= dbw_connect($qa->{Ocean}); $sth= $dbh->prepare("SELECT DISTINCT archipelago FROM islands ORDER BY archipelago;"); @@ -122,7 +75,7 @@ foreach my $arch (keys %islandlistdata) { - + <&| script &> ms_lists= <% to_json_protecttags(\%resetislandlistdata) %>; @@ -141,7 +94,7 @@ function ms_Setarch(dd) { -% for my $dd (0..$a->{Dropdowns}-1) { +% for my $dd (0..$qa->{Dropdowns}-1) { -% for my $dd (0..$a->{Dropdowns}-1) { +% for my $dd (0..$qa->{Dropdowns}-1) { % my $arch= $ARGS{"archipelago$dd"}; % $arch= 'none' if !defined $arch;
@@ -177,11 +130,11 @@ $results_head= sub { }; #---------- result computation - textstring ---------- -if (!$a->{Dropdowns}) { +if (!$qa->{Dropdowns}) { if (length $routestring) { $results_head->(); my $rsr= $m->comp('routetextstring', - ocean => $a->{Ocean}, + ocean => $qa->{Ocean}, string => $routestring, format => 'return' ); @@ -205,7 +158,7 @@ my $argorundef= sub { return $thing; }; -for my $dd (0..$a->{Dropdowns}-1) { +for my $dd (0..$qa->{Dropdowns}-1) { my $arch= $argorundef->($dd,'archipelago'); my $island= $argorundef->($dd,'islandid'); next unless defined $arch or defined $island;