added plotting of desired versions
[p2pool.git] / web-static / graphs.html
index b184185..edd840a 100644 (file)
@@ -6,11 +6,6 @@
         <script type="text/javascript" src="d3.v2.min.js"></script>
         
         <style type="text/css">
-            body {
-                font-family: Sans-serif;
-                font-size: 12px;
-            }
-            
             line {
                 stroke: black;
                 stroke-width: 1;
@@ -30,7 +25,7 @@
     </head>
     
     <body>
-        <h1>P2Pool Graphs</h1>
+        <h1><a href="/static/">P2Pool</a> &gt; Graphs</h1>
         
         <p>Periods: <span id="period_chooser"></span> Current: <span id="period_current"></span></p>
         
@@ -52,6 +47,9 @@
         <h2>Miners</h2>
         <div id="miners"></div>
         
+        <h2>Desired versions</h2>
+        <svg id="desired_versions"></svg>
+        
         <script type="text/javascript">
             function compose() {
                 var funcs = arguments;
                 
                 d3.json("/web/graph_data/miner_hash_rates/last_" + lowerperiod, function(data) {
                     d3.json("/web/graph_data/miner_dead_hash_rates/last_" + lowerperiod, function(dead_data) {
-                        var users = {}; for(var i = 0; i < data.length; ++i) for(var u in data[i][1]) users[u] = null; for(var i = 0; i < dead_data.length; ++i) for(var u in dead_data[i][1]) users[u] = null;
-                        var userlist = []; for(var u in users) userlist.push(u);
-                        d3.select("#miners").selectAll("*").remove();
-                        var div = d3.select("#miners").selectAll().data(userlist).enter().append("div");
-                        div.append("h3").text(identity);
-                        div.append("svg:svg").each(function(u) {
-                            plot(d3.select(this), "H/s", "H", [
-                                {"data": data, "value_getter": function(d) { return u in d ? d[u] : 0; }, "color": "#0000FF", "label": "Total"},
-                                {"data": dead_data, "value_getter": function(d) { return u in d ? d[u] : 0; }, "color": "#FF0000", "label": "Dead"}
-                            ]);
+                        d3.json("/web/graph_data/current_payouts/last_" + lowerperiod, function(current_payouts) {
+                            var users = {}; for(var i = 0; i < data.length; ++i) for(var u in data[i][1]) users[u] = null; for(var i = 0; i < dead_data.length; ++i) for(var u in dead_data[i][1]) users[u] = null;
+                            var userlist = []; for(var u in users) userlist.push(u);
+                            userlist.sort();
+                            d3.select("#miners").selectAll("*").remove();
+                            var div = d3.select("#miners").selectAll().data(userlist).enter().append("div");
+                            div.append("h3").text(identity);
+                            div.append("svg:svg").each(function(u) {
+                                plot(d3.select(this), "H/s", "H", [
+                                    {"data": data, "value_getter": function(d) { return u in d ? d[u] : 0; }, "color": "#0000FF", "label": "Total"},
+                                    {"data": dead_data, "value_getter": function(d) { return u in d ? d[u] : 0; }, "color": "#FF0000", "label": "Dead"}
+                                ]);
+                            });
+                            div.append("svg:svg").each(function(u) {
+                                plot(d3.select(this), "BTC", null, [
+                                    {"data": current_payouts, "value_getter": function(d) { return u in d ? d[u] : null; }, "color": "#0000FF"}
+                                ]);
+                            });
                         });
                     });
                 });
+                
+                d3.json("/web/graph_data/desired_versions/last_" + lowerperiod, function(data) {
+                    var vers = {}; for(var i = 0; i < data.length; ++i) for(var v in data[i][1]) vers[v] = null;
+                    var verlist = []; for(var v in vers) verlist.push(v);
+                    verlist.sort();
+                    
+                    lines = [];
+                    for(var i = 0; i < verlist.length; i++) {
+                        lines.push({
+                            data: data,
+                            value_getter: function(v){ return function(d) { return v in d ? d[v] : null; } }(verlist[i]),
+                            color: "#0000FF",
+                            label: verlist[i]
+                        });
+                    }
+                    plot(d3.select('#desired_versions'), '', null, lines);
+                });
             }
             
             periods = ["Hour", "Day", "Week", "Month", "Year"];