113 lines
4.6 KiB
JavaScript
113 lines
4.6 KiB
JavaScript
/********************************************************************
|
|
* Dynamic Aircraftlist for Radarcape
|
|
********************************************************************
|
|
* Guenter Koellner Embedded Development GmbH
|
|
*
|
|
* Am Rain 24
|
|
* 85256 Vierkirchen
|
|
* Geschaeftsfuehrer Guenter Koellner
|
|
*
|
|
* http://www.modesbeast.com
|
|
********************************************************************/
|
|
|
|
http://maps.google.de/maps?q=50.11834,8.66309(Block+House)&t=k&z=19
|
|
|
|
|
|
var sort_key = "id";
|
|
var sort_asc = true;
|
|
|
|
function get_date_time_string (unix_timestamp) {
|
|
// Create a new JavaScript Date object based on the timestamp
|
|
// multiplied by 1000 so that the argument is in milliseconds, not seconds.
|
|
var date = new Date(unix_timestamp*1000);
|
|
return date.toISOString().replace("T"," ").substr(0, 19);
|
|
}
|
|
|
|
function updateTable() {
|
|
console.log("updateTable");
|
|
getJSON( rcd_globals.sensors_endpoint_prefix+"clients.json", function(unsorted_data) {
|
|
//console.log("unsorted_data.length=",unsorted_data.length);
|
|
var data = unsorted_data["TLS"].sort(function(a, b) {
|
|
var x = a[sort_key]; var y = b[sort_key];
|
|
if (sort_asc) {
|
|
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
|
|
} else {
|
|
return ((x > y) ? -1 : ((x < y) ? 1 : 0));
|
|
}
|
|
});
|
|
|
|
var table = document.getElementById("clientlist").tBodies[0];
|
|
var rows_len = table.rows.length - 1; //first is row to clone
|
|
while ( rows_len > data.length ) {
|
|
table.removeChild(table.rows[rows_len--]);
|
|
}
|
|
|
|
for( var i = 0; i < data.length; ++i ) {
|
|
var line;
|
|
if( i >= rows_len ) {
|
|
var line = table.rows[0].cloneNode(true);
|
|
line.style = ""; // remove style="display:none;"
|
|
table.appendChild(line);
|
|
} else {
|
|
var line = table.rows[1+i];
|
|
}
|
|
|
|
line.cells.namedItem("active" ).innerHTML = data[i].active;
|
|
line.cells.namedItem("id" ).innerHTML = "<a href=\"http://maps.google.de/maps/?q=" + data[i].lat + "," + data[i].lon + "(eule)&z=19\" target=\"_blank\">" + data[i].id + "</a>";
|
|
line.cells.namedItem("ver" ).innerHTML = data[i].ver;
|
|
line.cells.namedItem("swtyp" ).innerHTML = data[i].swtyp;
|
|
line.cells.namedItem("hwtyp" ).innerHTML = data[i].hwtyp;
|
|
line.cells.namedItem("temp" ).innerHTML = data[i].temp;
|
|
line.cells.namedItem("gnss" ).innerHTML = data[i].gnss;
|
|
line.cells.namedItem("anto" ).innerHTML = data[i].anto;
|
|
line.cells.namedItem("ants" ).innerHTML = data[i].ants;
|
|
line.cells.namedItem("conn" ).innerHTML = data[i].conn;
|
|
if(data[i].lat == null || data[i].lon == null) {
|
|
line.cells.namedItem("lat" ).innerHTML = "";
|
|
line.cells.namedItem("lon" ).innerHTML = "";
|
|
} else {
|
|
line.cells.namedItem("lat").innerHTML = data[i].lat.toFixed(5);
|
|
line.cells.namedItem("lon").innerHTML = data[i].lon.toFixed(5);
|
|
}
|
|
line.cells.namedItem("alt" ).innerHTML = data[i].alt;
|
|
line.cells.namedItem("ac" ).innerHTML = data[i].ac;
|
|
line.cells.namedItem("iBy" ).innerHTML = data[i].iBy;
|
|
line.cells.namedItem("iTotal" ).innerHTML = data[i].iTotal;
|
|
line.cells.namedItem("iMsg" ).innerHTML = data[i].iMsg;
|
|
line.cells.namedItem("qRes" ).innerHTML = data[i].qRes;
|
|
line.cells.namedItem("tLogin" ).innerHTML = get_date_time_string(data[i].login);
|
|
line.cells.namedItem("tLogout" ).innerHTML = get_date_time_string(data[i].logout);
|
|
line.cells.namedItem("tUTC" ).innerHTML = data[i].tUTC;
|
|
line.cells.namedItem("latMin" ).innerHTML = data[i].latMin;
|
|
line.cells.namedItem("latAvg" ).innerHTML = data[i].latAvg;
|
|
line.cells.namedItem("latMax" ).innerHTML = data[i].latMax;
|
|
|
|
}
|
|
|
|
var statuslines = $("tr.serverstatusline");
|
|
line = $(statuslines[0]);
|
|
line.children(".NofClients" ).html(data.length);
|
|
line.children(".AcDbSize" ).html(unsorted_data.AcDbSize);
|
|
line.children(".dat" ).html(unsorted_data.dat);
|
|
line.children(".incomingEvents").html(unsorted_data.incomingEvents);
|
|
|
|
});
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
$(".arrow-box .arrow-down").click(function(evt) {
|
|
sort_key = $(this).parent().attr("id");
|
|
sort_asc = false;
|
|
updateTable();
|
|
});
|
|
$(".arrow-box .arrow-up").click(function(evt) {
|
|
sort_key = $(this).parent().attr("id");
|
|
sort_asc = true;
|
|
updateTable();
|
|
});
|
|
updateTable();
|
|
//setInterval( function() { updateTable(); }, RefreshInterval * 1000);
|
|
setInterval( function() { updateTable(); }, 5000);
|
|
});
|
|
|