2015-01-20 19:29:31 +01:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
/* Controllers */
|
|
|
|
|
2015-01-28 23:38:54 +01:00
|
|
|
function StatsCtrl($scope, socket, _) {
|
2015-01-20 19:29:31 +01:00
|
|
|
|
2015-02-05 16:54:04 +01:00
|
|
|
// Main Stats init
|
|
|
|
// ---------------
|
|
|
|
|
|
|
|
$scope.nodesTotal = 0;
|
|
|
|
$scope.nodesActive = 0;
|
|
|
|
$scope.bestBlock = 0;
|
|
|
|
$scope.lastBlock = 0;
|
|
|
|
$scope.upTimeTotal = 0;
|
|
|
|
|
2015-01-20 19:29:31 +01:00
|
|
|
// Socket listeners
|
|
|
|
// ----------------
|
|
|
|
|
|
|
|
socket.on('init', function(data){
|
|
|
|
$scope.nodes = data.nodes;
|
2015-01-29 17:50:16 +01:00
|
|
|
|
|
|
|
updateStats();
|
|
|
|
});
|
|
|
|
|
|
|
|
socket.on('update', function(data){
|
2015-02-05 00:30:16 +01:00
|
|
|
$scope.nodes[data.id] = data;
|
2015-01-29 17:50:16 +01:00
|
|
|
|
|
|
|
updateStats();
|
|
|
|
});
|
|
|
|
|
|
|
|
function updateStats()
|
|
|
|
{
|
2015-01-20 19:29:31 +01:00
|
|
|
$scope.nodesTotal = $scope.nodes.length;
|
2015-01-28 23:38:54 +01:00
|
|
|
$scope.nodesActive = _.filter($scope.nodes, function(node){ return node.stats.active == true; }).length;
|
|
|
|
$scope.bestBlock = _.max($scope.nodes, function(node){ return parseInt(node.stats.block.height); }).stats.block.height;
|
2015-01-29 00:41:52 +01:00
|
|
|
$scope.lastBlock = _.max($scope.nodes, function(node){ return parseInt(node.stats.block.timestamp); }).stats.block.timestamp;
|
2015-02-05 12:05:21 +01:00
|
|
|
$scope.upTimeTotal = _.reduce($scope.nodes, function(total, node){ return total + node.stats.uptime.total; }, 0) / $scope.nodes.length;
|
2015-01-29 17:50:16 +01:00
|
|
|
}
|
2015-01-20 19:29:31 +01:00
|
|
|
}
|