linked together static pages and unified styles and titles
[p2pool.git] / web-static / index.html
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4     <head>
5         <title>P2Pool</title>
6         <script type="text/javascript" src="d3.v2.min.js"></script>
7         <script type="text/javascript">
8             // based on goblin's p2pool-stats project
9             
10             d3.json('/rate', function(rate) {
11                 d3.select('#hashrate').text(rate / 1e9);
12             });
13             
14             d3.json('/current_payouts', function(pays) {
15                 d3.json('/payout_addr', function(addr) {
16                     d3.select('#payout').text(addr);
17                     d3.select('#amt').text(addr in pays ? pays[addr] : 0);
18                 });
19                 
20                 var arr = []; for(var i in pays) arr.push(i); arr.sort(function(a, b){return pays[b] - pays[a]});
21                 
22                 var tr = d3.select('#payouts').selectAll().data(arr).enter().append('tr');
23                 tr.append('td').append('a').text(function(addr){return addr}).attr('href', function(addr){return 'http://blockexplorer.com/address/' + addr});
24                 tr.append('td').text(function(addr){return pays[addr]});
25                 
26                 var total_tr = d3.select('#payouts').append('tr');
27                 total_tr.append('td').append('strong').text('Total');
28                 total_tr.append('td').text(d3.sum(arr, function(addr){return pays[addr]}).toFixed(8));
29             });
30             
31             d3.json('/recent_blocks', function(blocks) {
32                 var tr = d3.select('#blocks').selectAll().data(blocks).enter().append('tr');
33                 tr.append('td').text(function(block){return new Date(1000*block.ts).toString()})
34                 tr.append('td').append('a').text(function(block){return block.hash}).attr('href', function(block){return 'http://blockexplorer.com/block/' + block.hash});
35             });
36             
37             d3.json('/web/best_share_hash', function(c) {
38                 d3.select('#best_share').append('a').attr('href', 'share.html#' + c).text(c.substr(-8));
39             });
40             
41             function fill(url, id) {
42                 d3.json(url, function(d) {
43                     d.sort()
44                     d3.select(id).selectAll().data(d).enter().append('span').text(' ').append('a').attr('href', function(c){return 'share.html#' + c}).text(function(c){return c.substr(-8)});
45                 });
46             }
47             fill('/web/verified_heads', '#verified_heads');
48             fill('/web/heads', '#heads');
49             fill('/web/verified_tails', '#verified_tails');
50             fill('/web/tails', '#tails');
51         </script>
52     </head>
53     <body>
54         <h1>P2Pool</h1>
55         <p><a href="graphs.html">Graphs</a></p>
56         <p>Total pool GH/s: <span id="hashrate"></span></p>
57         <p>My payout address: <span id="payout"></span></p>
58         <p>Payout if a block were found NOW: <span id="amt"></span> BTC</p>
59         
60         <h2>Share explorer</h2>
61         <p>Best share: <span id="best_share"></span></p>
62         <p>Verified heads: <span id="verified_heads"></span></p>
63         <p>Heads: <span id="heads"></span></p>
64         <p>Verified tails: <span id="verified_tails"></span></p>
65         <p>Tails: <span id="tails"></span></p>
66         
67         <h2>Blocks found since program started:</h2>
68         <table border="1" id="blocks">
69             <tr><th>time</th><th>hash</th></tr>
70         </table>
71         
72         <h2>Payouts if a block were found NOW:</h2>
73         <table border="1" id="payouts">
74             <tr><th>address</th><th>amount in BTC</th></tr>
75         </table>
76     </body>
77 </html>