--- /dev/null
+<%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 simply defines how to look up island names.
+ It is called by qtextstring.
+
+</%doc>
+
+<%attr>
+multiple => 1
+maxambig => 5
+</%attr>
+
+<%method sqlstmt>
+ SELECT islandname,islandid,NULL
+ FROM islands WHERE islandname LIKE ?
+</%method>
+
+<%method nomatch>
+ no island matches "<% $ARGS{spec} |h %>"
+</%method>
+
+<%method ambiguous>
+ ambiguous island "<% $ARGS{spec} |h %>",
+ could be <% $ARGS{couldbe} |h %>
+</%method>
+
+<%method manyambig>
+
+</%method>
size=9
</&>
+<% $m->content %>
+
</table>
%#---------- textbox, user enters route as string ----------
% if (!$qa->{Dropdowns}) {
-<% $enterwhat %> (islands, or archipelagoes, separated by |s or commas;
- abbreviations are OK):<br>
+<% $enterwhat %>
+% if (defined($archipelagoes_r)) {
+(islands, or archipelagoes,
+% } else {
+(islands
+% }
+separated by |s or commas; abbreviations are OK):<br>
<&| qtextstring, qa => $qa, dbh => $dbh, emsgstore => $emsg_r,
- thingstring => 'routestring', prefix => 'rl',
+ thingstring => defined($archipelagoes_r) ? 'routestring' : 'islandstring',
+ prefix => 'rl',
onresults => sub {
foreach (@_) {
my ($canonname, $island, $arch) = @$_;
push @$islandids_r, $island;
- push @$archipelagoes_r, defined $island ? undef : $arch;
+ push @$archipelagoes_r, defined $island ? undef : $arch
+ if defined $archipelagoes_r;
}
}
&>
Values => [ [ 'route', 'Trades for route' ],
[ 'commod', 'Prices for commodity' ],
[ 'offers', 'Offers at location' ],
+ [ 'routesearch', 'Find profitable route' ],
[ 'age', 'Data age' ] ]
}, { Name => 'BuySell',
Before => '',
my @warningfs;
my @archipelagoes;
my @islandids;
-my ($max_volume, $max_mass);
-my $lossperleaguepct;
-my $capital;
my $qa= \%ARGS;
--- /dev/null
+<%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 `routesearch' query.
+
+
+</%doc>
+<%args>
+$quri
+$dbh
+$capacitystring => '';
+$lossperleague => '';
+$capitalstring => '';
+$emsgokorprint
+</%args>
+
+<%perl>
+my $emsg;
+my @warningfs;
+my @islandids;
+
+my $qa= \%ARGS;
+my $routeparams= { EmsgRef => \$emsg };
+my $maxdist;
+</%perl>
+
+<h1>Find most profitable routes and trades</h1>
+
+% if ($qa->{Dropdowns}) {
+This feature is not available from the "drop down menus" interface.
+% } else {
+
+<form action="<% $quri->() |h %>" method="get">
+
+<& enter_route, qa=>$qa, dbh=>$dbh, emsg_r=>\$emsg, warningfs_r=>\@warningfs,
+ enterwhat => 'Enter starting point(s)',
+ islandids_r => \@islandids, archipelagoes_r => undef
+ &>
+
+<&| enter_advrouteopts, qa=>$qa, dbh=>$dbh, routeparams=>$routeparams &>
+<td>
+ Something:
+ <&| qtextstring, qa => $qa, dbh => $dbh, prefix => 'ml',
+ thingstring => 'capitalstring', emsgstore => \$emsg,
+ onresults => sub { ($maxdist)= @_; } &>
+ </&>
+</&>
+
+
+% }