chiark / gitweb /
Revamp qtextstring arrangements
[ypp-sc-tools.main.git] / yarrg / web / query_route
index f409e704b4d01345db3cb14feca6f08c9d55ed3b..dd8644f1675694d200e28341d0b32bc5d6396422 100644 (file)
@@ -1,6 +1,40 @@
+<%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 generates the core of the `trade route' query.
+
+
+</%doc>
 <%args>
 $quri
-$qa
 $routestring => '';
 </%args>
 <%perl>
@@ -9,6 +43,7 @@ my @archipelagoes;
 my @islandids;
 my %islandid2;
 
+my $qa= \%ARGS;
 </%perl>
 
 %#---------- textbox, user enters route as string ----------
@@ -73,6 +108,8 @@ foreach my $arch (keys %islandlistdata) {
                $optionlistmap->($islandlistdata{$arch}, '');
 }
 
+$dbh->rollback();
+
 </%perl>
 
 <input type=hidden name=dropdowns value="<% $qa->{Dropdowns} |h %>">
@@ -133,18 +170,19 @@ $results_head= sub {
 if (!$qa->{Dropdowns}) {
   if (length $routestring) {
        $results_head->();
-       my $rsr= $m->comp('routetextstring',
+       my ($emsg,$canonstring,$results)= $m->comp('qtextstringcheck',
+               what => 'routestring',
                ocean => $qa->{Ocean},
                string => $routestring,
                format => 'return'
        );
-       if (length $rsr->{Error}) {
-               print encode_entities($rsr->{Error});
+       if (length $emsg) {
+               print encode_entities($emsg);
        } else {
-               foreach my $entry (@{ $rsr->{Results} }) {
-                       push @archipelagoes,
-                               defined $entry->[1] ? undef : $entry->[0];
+               foreach my $entry (@$results) {
                        push @islandids, $entry->[1];
+                       push @archipelagoes,
+                               defined $entry->[1] ? undef : $entry->[2];
                } 
        }
   }