chiark / gitweb /
Sort out validation errors in dataage and tidy up
[ypp-sc-tools.main.git] / yarrg / web / dataage
index b6ba5847b78df9043b433663533c26df92210533..851e5d8d2308a822b0fcea2a272b5a23f1f18746 100644 (file)
@@ -1,3 +1,38 @@
+<%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 `data age' query.
+
+
+</%doc>
 <%once>
 my $meta_prettyprint_age= sub {
     my ($age,$floor,$plus) = @_;
@@ -32,25 +67,9 @@ $sth->execute();
 
 </%perl>
 
-<script type="text/javascript">
-da_pageload= Date.now();
-da_ages= { };
-function da_Refresh() {
-  var now= Date.now();
-  debug('updating now='+now);
-  for (var elid in da_ages) {
-    var el= document.getElementById(elid);
-    var oldage= da_ages[elid];
-    var age= oldage + (now - da_pageload) / 1000;
-    var newhtml= <% $meta_prettyprint_age->('age','Math.floor','+') %>
-% if ($ARGS{debug}) {
-    if (elid == 'daid_loaded')
-      debug('element elid='+elid+' oldage='+oldage+' age='+age+': '+newhtml);
-% }
-    el.innerHTML= newhtml;
-  }
-}
-</script>
+<&| script &>
+  da_pageload= Date.now();
+</&script>
 
 <table>
 <tr>
@@ -58,13 +77,15 @@ function da_Refresh() {
 <th>Island
 <th>Age
 </tr>
+% my %da_ages;
+% $da_ages{'daid_loaded'}= 0;
 % while ($row=$sth->fetchrow_hashref) {
 %      my $elid= "daid_$row->{'islandid'}";
 %      my $age= $now - $row->{'timestamp'};
+%      $da_ages{$elid}= $age;
 <tr> <td><% $row->{'archipelago'} |h
  %>  <td><% $row->{'islandname'} |h
  %>  <td id="<% $elid %>"><% $prettyprint_age->($age) %> </tr>
-<script type="text/javascript"> da_ages['<% $elid %>']= <% $age %>; </script>
 % }
 </table>
 
@@ -79,11 +100,28 @@ Time since this page loaded:
 <input type=submit name=submit value="Reload">
 </form>
 
-<script type="text/javascript">
-da_ages['daid_loaded']= 0;
-window.onload= da_Refresh;
-window.setInterval(da_Refresh, 10000);
-</script>
+<&| script &>
+  da_ages= <% to_json_protecttags(\%da_ages) %>;
+
+  function da_Refresh() {
+    var now= Date.now();
+    debug('updating now='+now);
+    for (var elid in da_ages) {
+      var el= document.getElementById(elid);
+      var oldage= da_ages[elid];
+      var age= oldage + (now - da_pageload) / 1000;
+      var newhtml= <% $meta_prettyprint_age->('age','Math.floor','+') %>
+% if ($ARGS{debug}) {
+      if (elid == 'daid_loaded')
+       debug('element elid='+elid+' oldage='+oldage+' age='+age+': '+newhtml);
+% }
+      el.innerHTML= newhtml;
+    }
+  }
+
+  window.onload= da_Refresh;
+  window.setInterval(da_Refresh, 10000);
+</&script>
 
 <%init>
 use POSIX;