--- /dev/null
+<%args>
+$thingstring
+$qa => $m->caller_args(1)->{'qa'}
+</%args>
+
+Enter route (islands, or archipelagoes, separated by |s or commas;
+ abbreviations are OK):<br>
+
+<&| script &>
+ts_uri= "check_<% $thingstring %>?format=json&type=text/xml"
+ + "&ocean=<% uri_escape($qa->{Ocean}) %>";
+
+ts_timeout=false;
+ts_request=false;
+ts_done='';
+ts_needed='';
+function ts_Later(){
+ window.clearTimeout(ts_timeout);
+ ts_timeout = window.setTimeout(ts_Needed, 500);
+}
+function ts_Needed(){
+ window.clearTimeout(ts_timeout);
+ ts_element= document.getElementById('<% $thingstring %>');
+ ts_needed= ts_element.value;
+ ts_Request();
+}
+function ts_Request(){
+ if (ts_request || ts_needed==ts_done) return;
+ ts_done= ts_needed;
+ ts_request= new XMLHttpRequest();
+ uri= ts_uri+'&string='+encodeURIComponent(ts_needed);
+ ts_request.open('GET', uri);
+ ts_request.onreadystatechange= ts_Ready;
+ ts_request.send(null);
+}
+function ts_Ready() {
+ if (ts_request.readyState != 4) return;
+ if (ts_request.status == 200) {
+ response= ts_request.responseText;
+ eval('results='+response);
+ toedit= document.getElementById('ts_results');
+ toedit.innerHTML= results.show;
+ }
+ ts_request= false;
+ ts_Request();
+}
+window.onload= ts_Needed;
+</&script>
+
+<input type="text" <% $m->content %>
+ id="<% $thingstring %>" name="<% $thingstring %>"
+ onchange="ts_Needed();" onkeyup="ts_Later();"
+ value="<% $qa->{$thingstring} |h %>"
+ >
+<br>
+<div id="ts_results"> </div><br>
<%args>
$quri
-$a
+$qa
$routestring => '';
</%args>
<%perl>
-#my $routestring= $queryqf{'routestring'};
-#
-# for output:
+
my @archipelagoes;
my @islandids;
my %islandid2;
</%perl>
-<h1>Specify route</h1>
-<form action="<% $quri->() |h %>" method="get">
-
%#---------- 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):<br>
+<h1>Specify route</h1>
-<&| 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;
-</&script>
+<form action="<% $quri->() |h %>" method="get">
-<input type="text" id="routestring" name="routestring" size=80
- value="<% $routestring |h %>"
- onchange="tr_Needed();"
- onkeyup="tr_Later();"><br>
-<div id="routeresults"> </div><br>
+<&| qtextstring, qa => $qa, thingstring => 'routestring' &>
+ size=80
+</&>
% } else { #---------- dropdowns, user selects from menus ----------
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;");
</%perl>
-<input type=hidden name=dropdowns value="<% $a->{Dropdowns} |h %>">
+<input type=hidden name=dropdowns value="<% $qa->{Dropdowns} |h %>">
<&| script &>
ms_lists= <% to_json_protecttags(\%resetislandlistdata) %>;
<table style="table-layout:fixed; width:90%;">
<tr>
-% for my $dd (0..$a->{Dropdowns}-1) {
+% for my $dd (0..$qa->{Dropdowns}-1) {
<td>
<select name="archipelago<% $dd %>" onchange="ms_Setarch(<% $dd %>)">
<option value="none">Whole ocean</option>
</tr>
<tr>
-% for my $dd (0..$a->{Dropdowns}-1) {
+% for my $dd (0..$qa->{Dropdowns}-1) {
% my $arch= $ARGS{"archipelago$dd"};
% $arch= 'none' if !defined $arch;
<td>
};
#---------- 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'
);
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;