chiark / gitweb /
Make top-level Mason components executable
[ypp-sc-tools.web-live.git] / yarrg / web / lookup
old mode 100644 (file)
new mode 100755 (executable)
index e062e60..41eda49
@@ -1,11 +1,38 @@
-<html><head><title>Route - YARRG</title></head><body>
-
-<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.
+%#
 <%perl>
 my %a;
+my %ahtml;
 my @vars;
 
 # for output:
@@ -27,6 +54,10 @@ my %islandid2;
                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) {
@@ -40,11 +71,25 @@ 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>
+<& webcopyright &>
+
+<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};
@@ -56,11 +101,16 @@ my %queryqf;
 foreach my $var (keys %ARGS) {
        next unless $var =~
                m/^(?:routestring|islandid\d|archipelago\d|debug)$/;
-       $queryqf{$var}= $ARGS{$var};
+       my $val= $ARGS{$var};
+       next if $val eq 'none';
+       $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};
@@ -99,6 +149,11 @@ $debug => 0
 $routestring => ''
 </%args>
 
+<hr>
+
+%########### query `route' ##########
+% if ($a{Query} eq 'route') {
+
 <h1>Specify route</h1>
 <form action="<% $quri->() %>" method="get">
 
@@ -208,7 +263,7 @@ foreach my $arch (keys %islandlistdata) {
 
 </%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) %>;
@@ -322,6 +377,14 @@ for my $dd (0..$a{Dropdowns}-1) {
 
 % }
 
+% } elsif ($a{Query} eq 'age') {
+% ########### query `age' ##########
+
+<h1>Market data age</h1>
+<& dataage, %baseqf, %queryqf &>
+
+% } ########## end of `age' query ##########
+
 %#---------- debugging and epilogue ----------
 
 % if ($debug) {
@@ -340,6 +403,8 @@ function debug (m) {
 }
 </script>
 
+<& footer &>
+
 <%init>
 use CommodsWeb;
 use HTML::Entities;