Files
eacp_webapp/htdocs/js/ol-sidebar.js
T
2026-06-16 11:24:50 +08:00

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>&nbsp;');
} else { // just display reg without link else
replaceHtml(reg_id, p.reg + '&nbsp;');
}
} else { // if there is no reg info at all
replaceHtml(reg_id, 'n/a');
}
replaceHtml(mode_s, replaceUnavailable(p.hex) + '&nbsp;');
replaceHtml(ac_type, replaceUnavailable(p.typ) + '&nbsp;');
replaceHtml(ac_category, replaceUnavailable(p.cat) + '&nbsp;');
replaceHtml(flight_id, replaceUnavailable(p.fli) + '&nbsp;');
replaceHtml(squawk, replaceUnavailable(p.squ) + '&nbsp;');
/* Flight Details Row 1 */
replaceHtml(orig_airport, replaceUnavailable(p.org) + '&nbsp;');
replaceHtml(dest_airport, replaceUnavailable(p.dst) + '&nbsp;');
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) + '&deg;');
replaceHtml(speed, replaceUnavailable(p.spd) + '&nbsp;kt');
/* Flight Details Row 3 */
replaceHtml(altitude, replaceUnavailable(p.alt) + "&nbsp;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) + '&deg;');
replaceHtml(ac_lon, replaceUnavailable(p.lon) + '&deg;');
/* AC Tracking Row 2 */
if(!historyModeEnabled){
replaceHtml(distance, replaceUnavailable(p.dis).toFixed(1) +'&nbsp;'+ 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, '&nbsp;');
}
/* AC Tracking Row 3 */
replaceHtml(last_signal, replaceUnavailable(p.lla) + '&nbsp;sec');
selected_plane_infos.style.display = ''; // reveal/un-hide table
return true;
}