added update functionality (fixes #7)

This commit is contained in:
Marian Oancea 2015-02-05 01:30:16 +02:00
parent a3968373c0
commit 4cfe4948af
5 changed files with 36 additions and 15 deletions

17
app.js
View File

@ -22,16 +22,21 @@ app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
var nodes = [],
nodeStatus = [];
nodeStatus = [],
nodeInterval;
for(i in config) {
var node = new Node(config[i], i);
console.log(node);
node.update();
nodes[i] = node;
nodeStatus[i] = node.info;
nodes[i] = new Node(config[i], i);
console.log(nodes[i]);
nodeStatus[i] = nodes[i].update();
}
nodeInterval = setInterval(function(){
for(i in nodes){
app.io.broadcast('update', nodes[i].update());
}
}, 10000);
app.get('/', function(req, res) {
res.render('index', { title: 'Ethereum Network Status' });
});

View File

@ -6,7 +6,7 @@ var Node = function Node(options, id)
{
this.info = options;
this.info.geo = geoip.lookup(this.info.rpcHost);
this.info.id = id;
this.info.id = parseInt(id);
this.info.stats = {
active: false,
peers: 0,

View File

@ -14,7 +14,7 @@ function StatsCtrl($scope, socket, _) {
});
socket.on('update', function(data){
$scope.nodes[data.node.id] = data.node;
$scope.nodes[data.id] = data;
updateStats();
});

View File

@ -3,6 +3,22 @@
/* Filters */
angular.module('netStatsApp.filters', [])
.filter('nodesActiveClass', function() {
return function(active, total) {
var ratio = active/total;
if(ratio >= 0.9)
return 'text-success';
if(ratio >= 0.75)
return 'text-info';
if(ratio >= 0.5)
return 'text-warning';
return 'text-danger';
};
})
.filter('mainClass', function() {
return function(node, bestBlock) {
if( ! node.active)
@ -12,25 +28,25 @@ angular.module('netStatsApp.filters', [])
return 'text-danger';
return (node.peers <= 1 ? 'text-danger' : (node.peers > 1 && node.peers < 4 ? 'text-warning' : 'text-success'));
}
};
})
.filter('peerClass', function() {
return function(peers) {
return (peers <= 1 ? 'text-danger' : (peers > 1 && peers < 4 ? 'text-warning' : 'text-success'));
}
};
})
.filter('miningClass', function() {
return function(mining) {
return (! mining ? 'text-danger' : '');
}
};
})
.filter('miningIconClass', function() {
return function(mining) {
return (! mining ? 'icon-cancel' : 'icon-check');
}
};
})
.filter('blockClass', function() {
return function(current, best) {
return (best - current <= 1 ? '' : (best - current > 1 && best - current < 4 ? 'text-warning' : 'text-danger'));
}
};
});

View File

@ -11,7 +11,7 @@ block content
div.clearfix
div.col-xs-6.stat-holder
div.row.big-info.nodesactive.text-success
div.row.big-info.nodesactive(class="{{ nodesActive | nodesActiveClass : nodesTotal }}")
div.pull-left.icon-full-width
i.icon-bulb
div.pull-left