diff --git a/src/web/aprsc.js b/src/web/aprsc.js
index cccd921..2865c30 100644
--- a/src/web/aprsc.js
+++ b/src/web/aprsc.js
@@ -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);
diff --git a/src/web/index.html b/src/web/index.html
index 773bfc3..52dabd1 100644
--- a/src/web/index.html
+++ b/src/web/index.html
@@ -16,7 +16,7 @@
-
{{ status.server.server_id }} aprsc status at {{ status.server.time_now | datetime }}
+
{{ status.server.server_id }} aprsc status at {{ status.server.time_now | datetime }}
@@ -24,17 +24,31 @@
Server
- | Server ID | {{ status.server.server_id }} |
- | Server admin | {{ status.server.admin }} |
- | Software | {{ status.server.software }} {{ status.server.software_version }} |
- | Software features | {{ status.server.software_build_features }} |
- | Uptime | {{ status.server.uptime | duration }} |
- | Started | {{ status.server.time_started | datetime }} |
- | OS | {{ status.server.os }} |
+ | Server ID | {{ status.server.server_id }} |
+ | Server admin | {{ status.server.admin }} |
+ | Software | {{ status.server.software }} {{ status.server.software_version }} |
+ | Software features | {{ status.server.software_build_features }} |
+ | Uptime | {{ status.server.uptime | duration }} |
+ | Started | {{ status.server.time_started | datetime }} |
+ | OS | {{ status.server.os }} |
+
+
Totals
+
+
+
+ | {{ setup.key_translate[k] }} |
+ {{ status.totals[k] }} |
+ {{ (status.totals[k] - status_prev.totals[k]) / (status.server.tick_now - status_prev.server.tick_now) | ratestr}}/s |
+
+
+
+
+
+