made currency symbols and block explorer urls on html pages adapt to parent chain
authorForrest Voight <forrest@forre.st>
Thu, 3 May 2012 20:00:20 +0000 (16:00 -0400)
committerForrest Voight <forrest@forre.st>
Thu, 3 May 2012 21:17:25 +0000 (17:17 -0400)
p2pool/web.py
web-static/graphs.html
web-static/index.html
web-static/share.html

index 673e1a4..ceb8c74 100644 (file)
@@ -295,6 +295,7 @@ def get_web_root(tracker, current_work, current_work2, get_current_txouts, datad
     new_root.putChild('tails', WebInterface(lambda: ['%064x' % x for t in tracker.tails for x in tracker.reverse_shares.get(t, set())]))
     new_root.putChild('verified_tails', WebInterface(lambda: ['%064x' % x for t in tracker.verified.tails for x in tracker.verified.reverse_shares.get(t, set())]))
     new_root.putChild('best_share_hash', WebInterface(lambda: '%064x' % current_work.value['best_share_hash']))
+    new_root.putChild('currency_info', WebInterface(lambda: dict(symbol=net.PARENT.SYMBOL, block_explorer_url_prefix=net.PARENT.BLOCK_EXPLORER_URL_PREFIX)))
     
     class Explorer(resource.Resource):
         def render_GET(self, request):
index edd840a..055897c 100644 (file)
                 });
             }
             
-            function change_period(period) {
+            function change_period(period, currency_info) {
                 d3.select("#period_current").text(period);
                 var lowerperiod = period.toLowerCase();
                 plot_later(d3.select("#local"), "H/s", "H", [
                     {"url": "/web/graph_data/local_share_hash_rate/last_" + lowerperiod, "value_getter": identity, "color": "#0000FF", "label": "Total"},
                     //{"url": getData("/web/graph_data/local_dead_share_hash_rate/last_" + lowerperiod, "value_getter": identity, "color": "#FF0000", "label": "Dead"}
                 ]);
-                plot_later(d3.select("#payout"), "BTC", null, [
+                plot_later(d3.select("#payout"), currency_info.symbol, null, [
                     {"url": "/web/graph_data/current_payout/last_" + lowerperiod, "value_getter": identity, "color": "#0000FF"}
                 ]);
                 plot_later(d3.select("#pool"), "H/s", "H", [
                                 ]);
                             });
                             div.append("svg:svg").each(function(u) {
-                                plot(d3.select(this), "BTC", null, [
+                                plot(d3.select(this), currency_info.symbol, null, [
                                     {"data": current_payouts, "value_getter": function(d) { return u in d ? d[u] : null; }, "color": "#0000FF"}
                                 ]);
                             });
                 });
             }
             
-            periods = ["Hour", "Day", "Week", "Month", "Year"];
-            d3.select("#period_chooser").selectAll().data(periods).enter().append("span")
-                .text(identity)
-                .on("click", change_period)
-                .attr("style", function(d, i) { return (i == 0 ? "" : "margin-left:.4em;") + "color:blue;text-decoration:underline;cursor:pointer" });
-            change_period(periods[1]);
+            d3.json('/web/currency_info', function(currency_info) {
+                periods = ["Hour", "Day", "Week", "Month", "Year"];
+                d3.select("#period_chooser").selectAll().data(periods).enter().append("span")
+                    .text(identity)
+                    .on("click", function(period){ change_period(period, currency_info) })
+                    .attr("style", function(d, i) { return (i == 0 ? "" : "margin-left:.4em;") + "color:blue;text-decoration:underline;cursor:pointer" });
+                change_period(periods[1], currency_info);
+            });
         </script>
     </body>
 </html>
index be7f7be..4ae4b21 100644 (file)
                     .attr('style', 'color:red;border:1px solid red;padding:5px');
             });
             
-            d3.json('/current_payouts', function(pays) {
-                d3.json('/payout_addr', function(addr) {
-                    d3.select('#payout_addr').text(addr);
-                    d3.select('#payout_amount').text(addr in pays ? pays[addr] : 0);
-                });
-                
-                var arr = []; for(var i in pays) arr.push(i); arr.sort(function(a, b){return pays[b] - pays[a]});
+            
+            d3.json('/web/currency_info', function(currency_info) {
+                d3.selectAll('.symbol').text(currency_info.symbol);
                 
-                var tr = d3.select('#payouts').selectAll().data(arr).enter().append('tr');
-                tr.append('td').append('a').text(function(addr){return addr}).attr('href', function(addr){return 'http://blockexplorer.com/address/' + addr});
-                tr.append('td').text(function(addr){return pays[addr]});
+                d3.json('/current_payouts', function(pays) {
+                    d3.json('/payout_addr', function(addr) {
+                        d3.select('#payout_addr').text(addr);
+                        d3.select('#payout_amount').text(addr in pays ? pays[addr] : 0);
+                    });
+                    
+                    var arr = []; for(var i in pays) arr.push(i); arr.sort(function(a, b){return pays[b] - pays[a]});
+                    
+                    var tr = d3.select('#payouts').selectAll().data(arr).enter().append('tr');
+                    tr.append('td').append('a').text(function(addr){return addr}).attr('href', function(addr){return currency_info.block_explorer_url_prefix + addr});
+                    tr.append('td').text(function(addr){return pays[addr]});
+                    
+                    var total_tr = d3.select('#payouts').append('tr');
+                    total_tr.append('td').append('strong').text('Total');
+                    total_tr.append('td').text(d3.sum(arr, function(addr){return pays[addr]}).toFixed(8));
+                });
                 
-                var total_tr = d3.select('#payouts').append('tr');
-                total_tr.append('td').append('strong').text('Total');
-                total_tr.append('td').text(d3.sum(arr, function(addr){return pays[addr]}).toFixed(8));
-            });
-            
-            d3.json('/recent_blocks', function(blocks) {
-                var tr = d3.select('#blocks').selectAll().data(blocks).enter().append('tr');
-                tr.append('td').text(function(block){return new Date(1000*block.ts).toString()})
-                tr.append('td').append('a').text(function(block){return block.hash}).attr('href', function(block){return 'http://blockexplorer.com/block/' + block.hash});
+                d3.json('/recent_blocks', function(blocks) {
+                    var tr = d3.select('#blocks').selectAll().data(blocks).enter().append('tr');
+                    tr.append('td').text(function(block){return new Date(1000*block.ts).toString()})
+                    tr.append('td').append('a').text(function(block){return block.hash}).attr('href', function(block){return currency_info.block_explorer_url_prefix + block.hash});
+                });
             });
             
             d3.json('/web/best_share_hash', function(c) {
@@ -83,8 +88,8 @@
         <p>Node uptime: <span id="uptime_days"></span> days Peers: <span id="peers_out"></span> out, <span id="peers_in"></span> in</p>
         <p>Local rate: <span id="local_rate"></span> (<span id="local_doa"></span> DOA)</p>
         <p>Shares: <span id="shares_total"></span> total (<span id="shares_orphan"></span> orphaned, <span id="shares_dead"></span> dead) Efficiency: <span id="efficiency"></span></p>
-        <p>Payout if a block were found NOW: <span id="payout_amount"></span> BTC to <span id="payout_addr"></span></p>
-        <p>Current block value: <span id="block_value"></span> BTC</p>
+        <p>Payout if a block were found NOW: <span id="payout_amount"></span> <span class="symbol"></span> to <span id="payout_addr"></span></p>
+        <p>Current block value: <span id="block_value"></span> <span class="symbol"></span></p>
         <div id="warnings"></div>
         
         <h2>Share explorer</h2>
         
         <h2>Payouts if a block were found NOW:</h2>
         <table border="1" id="payouts">
-            <tr><th>address</th><th>amount in BTC</th></tr>
+            <tr><th>address</th><th>amount in <span class="symbol"></span></th></tr>
         </table>
     </body>
 </html>
index 84d075c..160e99a 100644 (file)
@@ -20,7 +20,7 @@
             function target_to_difficulty(target) { return (0xffff0000 * Math.pow(2, 256-64) + 1)/(target + 1); }
             
             var current_hash = null;
-            function reload() {
+            function reload(currency_info) {
                 var share_hash = document.location.hash.substr(1);
                 if(share_hash == current_hash) return;
                 d3.json('/web/share/' + share_hash, function(share) {
                     b.append('h2').text('Block');
                     var block = b.append('p')
                         block.append('span').text('Hash: ')
-                        block.append('a').attr('href', 'http://blockexplorer.com/block/' + share.block.hash).text(share.block.hash);
+                        block.append('a').attr('href', currency_info.block_explorer_url_prefix + share.block.hash).text(share.block.hash);
                     b.append('p').text('Transaction count: ' + share.block.txn_count_range);
                     b.append('h2').text('Header');
                     b.append('p').text('Version: ' + share.block.header.version);
                     var prevblock = b.append('p')
                         prevblock.append('span').text('Previous block: ');
-                        prevblock.append('a').attr('href', 'http://blockexplorer.com/block/' + share.block.header.previous_block).text(share.block.header.previous_block);
+                        prevblock.append('a').attr('href', currency_info.block_explorer_url_prefix + share.block.header.previous_block).text(share.block.header.previous_block);
                     b.append('p').text('Merkle root: ' + share.block.header.merkle_root);
                     b.append('p').text('Timestamp: ' + share.block.header.timestamp);
                     b.append('p').text('Difficulty: ' + target_to_difficulty(share.block.header.target));
                     b.append('h2').text('Generation transaction');
                     b.append('p').text('Hash: ' + share.block.gentx.hash);
                     b.append('p').text('Coinbase: ' + share.block.gentx.coinbase + ' ' + hex2a(share.block.gentx.coinbase));
-                    b.append('p').text('Value: ' + share.block.gentx.value + ' BTC');
+                    b.append('p').text('Value: ' + share.block.gentx.value + ' ' + currency_info.symbol);
                     return true;
                 });
             }
-            reload();
-            setInterval(reload, 100);
+            
+            d3.json('/web/currency_info', function(currency_info) {
+                reload(currency_info);
+                setInterval(function(){ reload(currency_info) }, 100);
+            });
         </script>
     </body>
 </html>