-<html><head><title>Route - YARRG</title></head><body>
+<%doc>
-<a href="<% $m->current_comp()->name() %>">YARRG</a> -
- Yet Another Revenue Research Gatherer
-<p>
+ 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 main `lookup' page, including
+ all the entry boxes etc. for every query.
+
+
+</%doc>
<%perl>
my %a;
+my %ahtml;
my @vars;
# for output:
CmpCanon => sub { !!$_[0] },
Values => [ [ 0, 'Type in names' ],
[ 4, 'Select from menus' ] ]
+ }, { Name => 'Query',
+ Before => 'Query: ',
+ Values => [ [ 'route', 'Trades for route' ],
+ [ 'age', 'Data age' ] ]
});
foreach my $var (@vars) {
}
if (exists $ARGS{$lname}) {
$a{$name}= $ARGS{$lname};
+ my @html= grep { $_->[0] eq $a{$name} } @{ $var->{Values} };
+ $ahtml{$name}= @html==1 ? $html[0][1] : '???';
} else {
$a{$name}= $var->{Values}[0][0];
+ $ahtml{$name}= $var->{Values}[0][1];
}
}
+</%perl>
+<html><head><title><% ucfirst $ahtml{Query} %> - YARRG</title></head><body>
+
+<a href="<% $m->current_comp()->name() |u %>">YARRG</a> -
+ Yet Another Revenue Research Gatherer
+|
+<a href="docs">documentation</a>
+<p>
+<%perl>
+
my %baseqf;
foreach my $var (@vars) {
my $lname= lc $var->{Name};
$queryqf{$var}= $val;
}
-my $uri= URI->new($m->current_comp()->name());
-my $quri= sub { $uri->query_form(@_); $uri->path_query(); };
+my $quri= sub {
+ my $uri= URI->new('lookup');
+ $uri->query_form(@_);
+ $uri->path_query();
+};
foreach my $var (@vars) {
my $name= $var->{Name};
my %qf= (%baseqf,%queryqf);
delete $qf{$lname};
$qf{$lname}= $value if $cvalix;
- print '<a href="',$quri->(%qf),'">';
+</%perl>
+<a href="<% $quri->(%qf) |h %>">
+<%perl>
$after= '</a>';
}
print $html, $after;
$routestring => ''
</%args>
+<hr>
+
+%########### query `route' ##########
+% if ($a{Query} eq 'route') {
+
<h1>Specify route</h1>
-<form action="<% $quri->() %>" method="get">
+<form action="<% $quri->() |h %>" method="get">
%#---------- textbox, user enters route as string ----------
% if (!$a{Dropdowns}) {
Enter route (islands, or archipelagoes, separated by |s or commas;
- abbreviations are OK):<br/>
+ abbreviations are OK):<br>
-<script type="text/javascript">
+<&| script &>
tr_uri= "routetextstring?format=json&type=text/xml"
+ "&ocean=<% uri_escape($a{Ocean}) %>";
tr_Request();
}
window.onload= tr_Needed;
-</script>
+</&script>
<input type="text" id="routestring" name="routestring" size=80
value="<% $routestring |h %>"
onchange="tr_Needed();"
onkeyup="tr_Later();"><br>
-<div id="routeresults"> </div><br/>
+<div id="routeresults"> </div><br>
% } else { #---------- dropdowns, user selects from menus ----------
</%perl>
-<input type=hidden name=dropdowns value="<% $a{Dropdowns} %>">
+<input type=hidden name=dropdowns value="<% $a{Dropdowns} |h %>">
-<script type="text/javascript">
-ms_lists= <% to_json(\%resetislandlistdata) %>;
+<&| script &>
+ms_lists= <% to_json_protecttags(\%resetislandlistdata) %>;
function ms_Setarch(dd) {
debug('ms_SetArch '+dd+' arch='+arch);
var arch= document.getElementsByName('archipelago'+dd).item(0).value;
select.innerHTML= got;
debug('ms_SetArch '+dd+' arch='+arch+' innerHTML set');
}
-</script>
+</&script>
<table style="table-layout:fixed; width:90%;">
% }
+% } elsif ($a{Query} eq 'age') {
+% ########### query `age' ##########
+
+<h1>Market data age</h1>
+<& dataage, %baseqf, %queryqf &>
+
+% } ########## end of `age' query ##########
+
%#---------- debugging and epilogue ----------
% if ($debug) {
</pre>
% }
-<script type="text/javascript">
+<&| script &>
function debug (m) {
% if ($debug) {
var node= document.getElementById('debug_log');
node.innerHTML += "\n" + m + "\n";
% }
}
-</script>
+</&script>
+
+<& footer &>
<%init>
use CommodsWeb;
use HTML::Entities;
use URI::Escape;
-use JSON;
</%init>