chiark / gitweb /
Trade plan; wip data age
[ypp-sc-tools.db-live.git] / yarrg / web / qtextstring
index c0f2482fe63bda47ceb9e1c0c71613b62ea4b1ce..16aa372bd6794caad89992d6d7b2f2a976d519c2 100644 (file)
@@ -1,13 +1,55 @@
+<%doc>
+
+ This is part of the YARRG website.  YARRG is a tool and website
+ for assisting players of Yohoho Puzzle Pirates.
+
+ Copyright (C) 2009 Ian Jackson <ijackson@chiark.greenend.org.uk>
+ Copyright (C) 2009 Clare Boothby
+
+  YARRG's client code etc. is covered by the ordinary GNU GPL (v3 or later).
+  The YARRG website is covered by the GNU Affero GPL v3 or later, which
+   basically means that every installation of the website will let you
+   download the source.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+ Yohoho and Puzzle Pirates are probably trademarks of Three Rings and
+ are used without permission.  This program is not endorsed or
+ sponsored by Three Rings.
+
+
+ This Mason component handles analysis of text string entries, including
+ both the AJAX calls from web page javascript and the entry validation
+ and processing calls from other components.
+
+
+</%doc>
 <%args>
-$thingstring
 $qa => $m->caller_args(1)->{'qa'}
+$dbh
+$thingstring
+$emsgstore
+$perresult
 </%args>
-
-Enter route (islands, or archipelagoes, separated by |s or commas;
- abbreviations are OK):<br>
+<%perl>
+my $stringval= $qa->{$thingstring};
+$stringval='' if !defined $stringval;
+</%perl>
 
 <&| script &>
-ts_uri= "check_<% $thingstring %>?format=json&type=text/xml"
+ts_uri= "qtextstringcheck?format=application/json&ctype=text/xml"
+               + "&what=<% $thingstring %>"
                + "&ocean=<% uri_escape($qa->{Ocean}) %>";
 
 ts_timeout=false;
@@ -37,6 +79,7 @@ function ts_Ready() {
   if (ts_request.readyState != 4) return;
   if (ts_request.status == 200) {
     response= ts_request.responseText;
+    debug('got '+response);
     eval('results='+response);
     toedit= document.getElementById('ts_results');
     toedit.innerHTML= results.show;
@@ -50,7 +93,23 @@ window.onload= ts_Needed;
 <input type="text" <% $m->content %>
  id="<% $thingstring %>" name="<% $thingstring %>"
  onchange="ts_Needed();" onkeyup="ts_Later();"
- value="<% $qa->{$thingstring} |h %>"
+ value="<% $stringval |h %>"
  >
 <br>
 <div id="ts_results">&nbsp;</div><br>
+
+<%perl>
+if (length $thingstring) {
+       my ($emsg,$canonstring,$results)= $m->comp('qtextstringcheck',
+               what => $thingstring,
+               ocean => $qa->{Ocean},
+               string => $stringval,
+               format => 'return'
+       );
+       $$emsgstore= $emsg;
+
+       foreach my $entry (@$results) {
+               $perresult->(@$entry);
+       }
+}
+</%perl>