<%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;