2 my $meta_prettyprint_age= sub {
3 my ($age,$floor,$plus) = @_;
5 $age < 60 ? 'less than a minute' :
6 $age < 60*2 ? '1 minute' :
7 $age < 3600*2 ? $floor ($age/60) $plus' minutes' :
8 $age < 86400*2 ? $floor ($age/3600) $plus ' hours' :
9 $floor ($age/86400) $plus ' days';
15 $prettyprint_age= sub {
17 '.$meta_prettyprint_age->('$age','floor','.').'
28 my $sth= $dbh->prepare("SELECT archipelago, islandid, islandname, timestamp
29 FROM uploads NATURAL JOIN islands
30 ORDER BY archipelago, islandid");
35 <script type="text/javascript">
36 da_pageload= Date.now();
38 function da_Refresh() {
40 debug('updating now='+now);
41 for (var elid in da_ages) {
42 var el= document.getElementById(elid);
43 var oldage= da_ages[elid];
44 var age= oldage + (now - da_pageload) / 1000;
45 var newhtml= <% $meta_prettyprint_age->('age','Math.floor','+') %>
47 if (elid == 'daid_loaded')
48 debug('element elid='+elid+' oldage='+oldage+' age='+age+': '+newhtml);
50 el.innerHTML= newhtml;
61 % while ($row=$sth->fetchrow_hashref) {
62 % my $elid= "daid_$row->{'islandid'}";
63 % my $age= $now - $row->{'timestamp'};
64 <tr> <td><% $row->{'archipelago'} |h
65 %> <td><% $row->{'islandname'} |h
66 %> <td id="<% $elid %>"><% $prettyprint_age->($age) %> </tr>
67 <script type="text/javascript"> da_ages['<% $elid %>']= <% $age %>; </script>
72 Time since this page loaded:
73 <span id="daid_loaded">(not known; times above not updating)</span>
75 <form action="lookup" method="get">
76 % foreach my $a (keys %ARGS) {
77 <input type="hidden" name="<% $a |h %>" value="<% $ARGS{$a} |h %>">
79 <input type=submit name=submit value="Reload">
82 <script type="text/javascript">
83 da_ages['daid_loaded']= 0;
84 window.onload= da_Refresh;
85 window.setInterval(da_Refresh, 10000);
91 my $dbh= dbw_connect('Midnight');