Some angularjs old testing changes from way back

This commit is contained in:
Heikki Hannikainen 2013-09-02 13:20:42 +03:00
parent 545525f2dd
commit c76529a296
3 changed files with 69 additions and 15 deletions

View File

@ -7,6 +7,7 @@ body {
.grey { color: #666; }
.bold { font-weight: bold; }
.red { color: #ff5370; }
.green { }
.rxerr { color: #0000ff; cursor: pointer; }
.rxerr_red { color: #ff5370; cursor: pointer; }
.link { color: #0000ff; cursor: pointer; }

View File

@ -94,6 +94,8 @@ function client_bytes_rates(c, k)
ckey = c['addr_rem'] + ':' + k;
var tx = calc_rate(ckey + ':tx', c['bytes_tx'], 1);
var rx = calc_rate(ckey + ':rx', c['bytes_rx'], 1);
console.log('tx: ' + tx);
console.log('rx: ' + rx);
if (!isUndefined(tx[1]) && tx[1] !== '')
return tx[1] + ' / ' + rx[1];
return '';
@ -295,7 +297,7 @@ var key_tooltips = {
};
var val_convert_c = {
'bytes_rates': client_bytes_rates,
'bytes_rates': function() { return ''; }, //client_bytes_rates,
'pkts_rx': client_pkts_rx,
'connects_rates': port_conn_rates,
'verified': conv_verified
@ -665,11 +667,13 @@ var tick_now;
var rate_cache = {};
function calc_rate(key, value, no_s)
{
console.log("calc_rate key " + key + " value " + value + " t_now " + tick_now);
var rate = '';
if (rate_cache[key]) {
// can calculate current rate
var t_dif = tick_now - rate_cache[key][0];
var val_dif = value - rate_cache[key][1];
console.log("t_dif " + t_dif + " val_dif " + val_dif);
rate = val_dif / t_dif;
var prefix = '';
if (rate < 0) {
@ -1047,6 +1051,27 @@ function init()
* give a go at using AngularJS
*/
function client_rates(cl)
{
for (var i in cl) {
var c = cl[i];
console.log("client " + i);
var ckey = c['addr_rem'] + ':bytes_rate';
var tx = calc_rate(ckey + ':tx', c['bytes_tx'], 1);
var rx = calc_rate(ckey + ':rx', c['bytes_rx'], 1);
console.log('tx: ' + tx);
console.log('rx: ' + rx);
if (!isUndefined(tx[1]) && tx[1] !== '') {
c['bytes_tx_rate'] = tx[1];
c['bytes_rx_rate'] = rx[1];
console.log("client now: " + JSON.stringify(c));
};
}
}
var app = angular.module('aprsc', []).
config(function() {
console.log('aprsc module config');
@ -1083,20 +1108,34 @@ app.filter('client_verified', function() {
app.controller('aprscCtrl', [ '$scope', '$http', function($scope, $http) {
console.log('aprscCtrl init');
var self = this;
this.scope = $scope;
this.update = function() {
console.log("doing update");
$http.get('/status.json').success(function(d) {
console.log('NG got status');
tick_now = d['server']['tick_now'];
client_rates(d['clients']);
if (d['server'] && d['server']['tick_now'])
self.scope.server = d['server'];
self.scope.clients = d['clients'];
});
setTimeout(function() { self.update(); }, 10000);
};
var order_server = [];
for (var i in keys_server)
order_server.push(i);
$scope.order_server = order_server;
$scope.keys_server = keys_server;
$http.get('/status.json').success(function(d) {
console.log('NG got status');
this.update();
if (d['server'] && d['server']['tick_now'])
$scope.server = d['server'];
$scope.clients = d['clients'];
});
}]);
//-->

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html ng-app='aprsc'>
<html xmlns:ng="http://angularjs.org" ng-app='aprsc'>
<head>
<title>aprsc status</title>
<meta name="lang" content="en" />
@ -7,7 +7,14 @@
<link rel="stylesheet" type="text/css" href="/aprsc.css" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="shortcut" href="/favicon.ico" type="image/x-icon" />
<!--[if lte IE 8]>
<script src="json2.js"></script>
<![endif]-->
<script src="angular.min.js"></script>
<!-- script type='text/JavaScript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js'></script -->
<script type='text/JavaScript' src='http://code.jquery.com/jquery-1.8.1.min.js'></script>
<!--[if lte IE 8]><script type='text/JavaScript' src='excanvas.min.js'></script><![endif]-->
<script type='text/JavaScript' src='jquery.flot.min.js'></script>
</head>
<body onclick='ttip_hide();' ng-controller="aprscCtrl">
@ -68,9 +75,20 @@
<th>MsgRcpts</th> <th>Filter</th>
</tr>
<tr ng-repeat="c in clients"><td>{{ c.addr_loc|addr_port }}</td>
<td>{{ c.username }}</td>
<td><a href="http://aprs.fi/?call={{c.username}}" target="_blank">{{ c.username }}</a></td>
<td>{{ c.addr_rem }}</td>
<td ng-class="{'0':'red', '1':'green', '2':'green'}[c.verified]">{{ c|client_verified }}</td>
<td>{{ c.since_connect|duration }}</td>
<td>{{ c.since_last_read|duration }}</td>
<td>{{ c.app_name }} {{ c.app_version }}</td>
<td>{{ c.pkts_tx }}</td>
<td ng-class="{red: c.pkts_ign / c.pkts_rx > 0.1}">{{ c.pkts_rx }}/{{ c.pkts_dup }}/{{ c.pkts_ign }}</td>
<td>{{ c.bytes_tx }}</td>
<td>{{ c.bytes_rx }}</td>
<td>{{ c.bytes_tx_rate }} / {{ c.bytes_rx_rate }}</td>
<td>{{ c.obuf_q }}</td>
<td>{{ c.heard_count }}</td>
<td>{{ c.filter }}</td>
</tr>
</table>
@ -82,10 +100,6 @@
<div id='ttip' class='ttip' style='display: none;'></div>
<!-- script type='text/JavaScript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js'></script -->
<script type='text/JavaScript' src='http://code.jquery.com/jquery-1.8.1.min.js'></script>
<!--[if lte IE 8]><script type='text/JavaScript' src='excanvas.min.js'></script><![endif]-->
<script type='text/JavaScript' src='jquery.flot.min.js'></script>
<script type='text/JavaScript' src='aprsc.js'></script>
<script type='text/JavaScript'>$(document).ready(function(){init();});;</script>