139 lines
5.3 KiB
JavaScript
139 lines
5.3 KiB
JavaScript
function refreshGeneralInfo(){
|
|
var utc_time = document.getElementById('utc-time');
|
|
var local_time= document.getElementById('local-time');
|
|
var num_aircrafts_receivable = document.getElementById('num-aircrafts-receivable');
|
|
var num_aircrafts_valid = document.getElementById('num-aircrafts-valid');
|
|
var num_aircrafts_located = document.getElementById('num-aircrafts-located');
|
|
var num_aircrafts_inView = document.getElementById('num-aircrafts-inView');
|
|
|
|
|
|
utc_time.innerHTML = getTimeString(false);
|
|
local_time.innerHTML = getTimeString(true);
|
|
num_aircrafts_receivable.innerHTML = AircraftsVisible.receivable;
|
|
num_aircrafts_valid.innerHTML = AircraftsVisible.valid;
|
|
num_aircrafts_located.innerHTML = AircraftsVisible.located;
|
|
num_aircrafts_inView.innerHTML = AircraftsVisible.inView;
|
|
|
|
// OGN (O) and FLAwA (F) are external sources for which no ac count exists!
|
|
["A", "M", "L"].forEach(function(srcId){
|
|
// values from AircraftsVisible are already prepared (null!=0)
|
|
replaceHtml(document.getElementById('acCountBySource-'+srcId), AircraftsVisible.countBySource[srcId]);
|
|
});
|
|
}
|
|
|
|
// replace html in element if it has changed, else leave unchanged (reduce dom events)
|
|
function replaceHtml(element, html){
|
|
if(element.innerHTML == html) return; // no change
|
|
else element.innerHTML = html;
|
|
}
|
|
|
|
function refreshSelectedPlaneInfo(){
|
|
selected_plane_infos = document.getElementById('selected-plane-infos');
|
|
var p = planes.get(highlightedPlane);
|
|
if(p === undefined){
|
|
selected_plane_infos.style.display = 'none';
|
|
return false; //cannot display details to non-existing plane
|
|
}
|
|
|
|
// all dom elements for plane details in sidebar
|
|
var reg_id = document.getElementById('reg-id');
|
|
var mode_s = document.getElementById('mode-s');
|
|
var ac_type = document.getElementById('ac-type');
|
|
var ac_category = document.getElementById('ac-category');
|
|
var flight_id = document.getElementById('flight-id');
|
|
var orig_airport = document.getElementById('orig-airport');
|
|
var orig_airport_label = document.getElementById('orig-airport-label');
|
|
var orig_airport_flag = document.getElementById('orig-airport-flag');
|
|
var dest_airport = document.getElementById('dest-airport');
|
|
var dest_airport_label = document.getElementById('dest-airport-label');
|
|
var dest_airport_flag = document.getElementById('dest-airport-flag');
|
|
var heading = document.getElementById('heading');
|
|
var speed = document.getElementById('speed');
|
|
var altitude = document.getElementById('altitude');
|
|
var v_rate = document.getElementById('v-rate');
|
|
var ac_lat = document.getElementById('ac-lat');
|
|
var ac_lon = document.getElementById('ac-lon');
|
|
var distance = document.getElementById('distance');
|
|
var datasource = document.getElementById('datasource');
|
|
var last_signal = document.getElementById('last-signal');
|
|
var squawk = document.getElementById('squawk');
|
|
|
|
// fill dom elements with infos
|
|
if(p.reg && p.reg != "") {
|
|
if(!p.reg.includes("state")){ // create link if reg doesn't include 'state'
|
|
replaceHtml(reg_id, '<a href="https://planespotters.net/search?q='
|
|
+ encodeURIComponent(p.reg) + '" target="_blank">' + p.reg + '</a> ');
|
|
} else { // just display reg without link else
|
|
replaceHtml(reg_id, p.reg + ' ');
|
|
}
|
|
} else { // if there is no reg info at all
|
|
replaceHtml(reg_id, 'n/a');
|
|
}
|
|
|
|
replaceHtml(mode_s, replaceUnavailable(p.hex) + ' ');
|
|
replaceHtml(ac_type, replaceUnavailable(p.typ) + ' ');
|
|
replaceHtml(ac_category, replaceUnavailable(p.cat) + ' ');
|
|
replaceHtml(flight_id, replaceUnavailable(p.fli) + ' ');
|
|
replaceHtml(squawk, replaceUnavailable(p.squ) + ' ');
|
|
|
|
|
|
/* Flight Details Row 1 */
|
|
replaceHtml(orig_airport, replaceUnavailable(p.org) + ' ');
|
|
replaceHtml(dest_airport, replaceUnavailable(p.dst) + ' ');
|
|
|
|
var origAirportInfo = resolveAirportById(p.org);
|
|
origAirportInfo.applyFlag(orig_airport_flag);
|
|
replaceHtml(orig_airport_label, replaceUnavailable(origAirportInfo.label));
|
|
|
|
var destAirportInfo = resolveAirportById(p.dst);
|
|
destAirportInfo.applyFlag(dest_airport_flag);
|
|
replaceHtml(dest_airport_label, replaceUnavailable(destAirportInfo.label));
|
|
|
|
/* Flight Details Row 2 */
|
|
replaceHtml(heading, replaceUnavailable(p.trk) + '°');
|
|
replaceHtml(speed, replaceUnavailable(p.spd) + ' kt');
|
|
|
|
/* Flight Details Row 3 */
|
|
replaceHtml(altitude, replaceUnavailable(p.alt) + " ft");
|
|
if(p.vrt) {
|
|
replaceHtml(v_rate, replaceUnavailable(p.vrt) + ' ft/min</td>');
|
|
} else {
|
|
replaceHtml(v_rate, "");
|
|
}
|
|
|
|
/* AC Tracking Row 1 */
|
|
replaceHtml(ac_lat, replaceUnavailable(p.lat) + '°');
|
|
replaceHtml(ac_lon, replaceUnavailable(p.lon) + '°');
|
|
|
|
/* AC Tracking Row 2 */
|
|
if(!historyModeEnabled){
|
|
replaceHtml(distance, replaceUnavailable(p.dis).toFixed(1) +' '+ mapInfo.distunit);
|
|
}
|
|
|
|
if(p.src == 'A') {
|
|
replaceHtml(datasource, 'ADS-B');
|
|
}
|
|
else if (p.src == 'M') {
|
|
replaceHtml(datasource, 'MLAT');
|
|
}
|
|
else if (p.src == 'F') {
|
|
replaceHtml(datasource, 'FlightAware');
|
|
}
|
|
else if (p.src == 'O') {
|
|
replaceHtml(datasource, 'OGN Flarm');
|
|
}
|
|
else if (p.src == 'L') {
|
|
replaceHtml(datasource, 'Local Flarm');
|
|
}
|
|
else {
|
|
replaceHtml(datasource, ' ');
|
|
}
|
|
|
|
/* AC Tracking Row 3 */
|
|
replaceHtml(last_signal, replaceUnavailable(p.lla) + ' sec');
|
|
|
|
selected_plane_infos.style.display = ''; // reveal/un-hide table
|
|
|
|
return true;
|
|
}
|