angular: show totals

This commit is contained in:
Heikki Hannikainen 2016-07-27 00:28:58 +03:00
parent 7a25220ca5
commit 36f88cf58e
2 changed files with 63 additions and 18 deletions

View File

@ -145,6 +145,9 @@ function dur_str(i)
var s = '';
var c = 0;
if (isUndefined(i))
return '';
if (i > 86400) {
t = Math.floor(i/86400);
i -= t*86400;
@ -691,13 +694,6 @@ function calc_rate(key, value, no_s)
return [ value, rate ];
}
var totals_keys = [
'clients', 'connects',
'tcp_bytes_tx', 'tcp_bytes_rx', 'tcp_pkts_tx', 'tcp_pkts_rx',
'udp_bytes_tx', 'udp_bytes_rx', 'udp_pkts_tx', 'udp_pkts_rx',
'sctp_bytes_tx', 'sctp_bytes_rx', 'sctp_pkts_tx', 'sctp_pkts_rx'
];
var alarms_visible = 0;
function render_alarms(alarms)
@ -1116,9 +1112,37 @@ function init()
});
}
var setup = {
'server_keys': [ 'server_id', 'admin' ]
};
/* ******** NEW angular.js ********* */
function ratestr(rate)
{
var prefix = '';
if (rate < 0) {
rate *= -1;
prefix = '-';
}
if (rate >= 10)
rate = rate.toFixed(0);
else if (rate >= 1)
rate = rate.toFixed(1);
else if (rate > 0)
rate = rate.toFixed(2);
else if (rate == 0)
rate = '0';
else
rate = rate.toFixed(2);
return prefix + rate;
}
var keys_totals = [
'clients', 'connects',
'tcp_bytes_tx', 'tcp_bytes_rx', 'tcp_pkts_tx', 'tcp_pkts_rx',
'udp_bytes_tx', 'udp_bytes_rx', 'udp_pkts_tx', 'udp_pkts_rx',
'sctp_bytes_tx', 'sctp_bytes_rx', 'sctp_pkts_tx', 'sctp_pkts_rx'
];
var app = angular.module('aprsc', []).
config(function() {
@ -1130,9 +1154,15 @@ var app = angular.module('aprsc', []).
app.filter('duration', function() { return dur_str; });
app.filter('datetime', function() { return timestr; });
app.filter('ratestr', function() { return ratestr; });
app.controller('aprscc', [ '$scope', '$http', function($scope, $http) {
console.log('aprsc init');
$scope.setup = {
'keys_totals': keys_totals,
'key_translate': key_translate
};
/* Ajax updates */
@ -1144,6 +1174,7 @@ app.controller('aprscc', [ '$scope', '$http', function($scope, $http) {
$http.get('/status.json', config).success(function(d) {
console.log('status.json received, status: ' + d['result']);
$scope.status_prev = $scope.status;
$scope.status = d;
setTimeout(function() { full_load($scope, $http); }, 10000);

View File

@ -16,7 +16,7 @@
<div class="row">
<div class="col-md-3 col-sm-3">
<div class="text-primary text-right" ng-cloak>{{ status.server.server_id }} aprsc status</span> <span ng-show="status">at {{ status.server.time_now | datetime }}</span></div>
<div class="text-primary text-right" ng-cloak><h3>{{ status.server.server_id }} aprsc status <span ng-show="status">at {{ status.server.time_now | datetime }}</span></h3></div>
</div>
</div>
@ -24,17 +24,31 @@
<h3>Server</h3>
<div class='table-responsive'>
<table class='table table-hover table-condensed'>
<tr><td>Server ID</td> <td>{{ status.server.server_id }}</td></tr>
<tr><td>Server admin</td> <td>{{ status.server.admin }}</td></tr>
<tr><td>Software</td> <td>{{ status.server.software }} {{ status.server.software_version }}</td></tr>
<tr><td>Software features</td> <td>{{ status.server.software_build_features }}</td></tr>
<tr><td>Uptime</td> <td>{{ status.server.uptime | duration }}</td></tr>
<tr><td>Started</td> <td>{{ status.server.time_started | datetime }}</td></tr>
<tr><td>OS</td> <td>{{ status.server.os }}</td></tr>
<tr><td>Server ID</td> <td class="ar">{{ status.server.server_id }}</td></tr>
<tr><td>Server admin</td> <td class="ar">{{ status.server.admin }}</td></tr>
<tr><td>Software</td> <td class="ar">{{ status.server.software }} {{ status.server.software_version }}</td></tr>
<tr><td>Software features</td> <td class="ar">{{ status.server.software_build_features }}</td></tr>
<tr><td>Uptime</td> <td class="ar">{{ status.server.uptime | duration }}</td></tr>
<tr><td>Started</td> <td class="ar">{{ status.server.time_started | datetime }}</td></tr>
<tr><td>OS</td> <td class="ar">{{ status.server.os }}</td></tr>
</table>
</div>
</div>
<div class='row' ng-cloak>
<h3>Totals</h3>
<div class='table-responsive'>
<table class='table table-hover table-condensed'>
<tr ng-repeat="k in setup.keys_totals">
<td>{{ setup.key_translate[k] }}</td>
<td>{{ status.totals[k] }}</td>
<td ng-show="status_prev">{{ (status.totals[k] - status_prev.totals[k]) / (status.server.tick_now - status_prev.server.tick_now) | ratestr}}/s</td>
</tr>
</table>
</div>
</div>
</div><!-- container -->
<script type='text/JavaScript' src='jquery.min.js'></script>