diff --git a/html/formatter.js b/html/formatter.js index e2e2e8d..183d7b6 100644 --- a/html/formatter.js +++ b/html/formatter.js @@ -58,15 +58,14 @@ function format_altitude_brief(alt, vr, displayUnits) { alt_text = Math.round(convert_altitude(alt, displayUnits)).toLocaleString() + NBSP; // Vertical Rate Triangle - var verticalRateTriangle = ""; + var verticalRateTriangle = ""; if (vr > 128){ - verticalRateTriangle += UP_TRIANGLE; + verticalRateTriangle = UP_TRIANGLE; } else if (vr < -128){ - verticalRateTriangle += DOWN_TRIANGLE; + verticalRateTriangle = DOWN_TRIANGLE; } else { - verticalRateTriangle += NBSP; + verticalRateTriangle = NBSP; } - verticalRateTriangle += "" return alt_text + verticalRateTriangle; } diff --git a/html/index.html b/html/index.html index 2f7cfee..f49afc3 100644 --- a/html/index.html +++ b/html/index.html @@ -7,27 +7,27 @@ - - - - - + + + + + - - + + - - + + - - - - - - - - - + + + + + + + + + SkyAware diff --git a/html/script.js b/html/script.js index c21fee2..8a41ebd 100644 --- a/html/script.js +++ b/html/script.js @@ -192,7 +192,6 @@ function fetchData() { console.log(((now-LastReceiverTimestamp)*1000).toFixed(0) + " " + diff +" "+ delay + " "+now); */ - refreshClock(new Date(now * 1000)); processReceiverUpdate(data); if (enable_uat) { @@ -209,6 +208,7 @@ function fetchData() { selectNewPlanes(); refreshTableInfo(); + refreshClock(new Date(now * 1000)); refreshSelected(); refreshHighlighted(); @@ -1399,28 +1399,38 @@ function refreshTableInfo() { } // ICAO doesn't change - if (tableplane.flight) { + if (tableplane.flight && tableplane.flight_cache !== tableplane.flight) { tableplane.tr.cells[2].innerHTML = getFlightAwareModeSLink(tableplane.icao, tableplane.flight, tableplane.flight); - } else { - tableplane.tr.cells[2].innerHTML = ""; + tableplane.tr.cells[18].innerHTML = getFlightAwareModeSLink(tableplane.icao, tableplane.flight); + tableplane.flight_cache = tableplane.flight; } - tableplane.tr.cells[3].textContent = (tableplane.registration !== null ? tableplane.registration : ""); - tableplane.tr.cells[4].textContent = (tableplane.icaotype !== null ? tableplane.icaotype : ""); - tableplane.tr.cells[5].textContent = (tableplane.squawk !== null ? tableplane.squawk : ""); - tableplane.tr.cells[6].innerHTML = format_altitude_brief(tableplane.altitude, tableplane.vert_rate, DisplayUnits); + if (!tableplane.flight) { + tableplane.tr.cells[2].textContent = (tableplane.registration != null ? tableplane.registration : ""); + tableplane.tr.cells[18].textContent = (tableplane.registration != null ? tableplane.registration : ""); + } + tableplane.tr.cells[3].textContent = (tableplane.registration != null ? tableplane.registration : ""); + tableplane.tr.cells[4].textContent = (tableplane.icaotype != null ? tableplane.icaotype : ""); + tableplane.tr.cells[5].textContent = (tableplane.squawk != null ? tableplane.squawk : ""); + tableplane.tr.cells[6].textContent = format_altitude_brief(tableplane.altitude, tableplane.vert_rate, DisplayUnits); tableplane.tr.cells[7].textContent = format_speed_brief(tableplane.gs, DisplayUnits); tableplane.tr.cells[8].textContent = format_vert_rate_brief(tableplane.vert_rate, DisplayUnits); tableplane.tr.cells[9].textContent = format_distance_brief(tableplane.sitedist, DisplayUnits); tableplane.tr.cells[10].textContent = format_track_brief(tableplane.track); tableplane.tr.cells[11].textContent = tableplane.messages; tableplane.tr.cells[12].textContent = tableplane.seen.toFixed(0); - tableplane.tr.cells[13].textContent = (tableplane.rssi !== null ? tableplane.rssi.toFixed(1) : ""); - tableplane.tr.cells[14].textContent = (tableplane.position !== null ? tableplane.position[1].toFixed(4) : ""); - tableplane.tr.cells[15].textContent = (tableplane.position !== null ? tableplane.position[0].toFixed(4) : ""); + tableplane.tr.cells[13].textContent = (tableplane.rssi != null ? tableplane.rssi.toFixed(1) : ""); + tableplane.tr.cells[14].textContent = (tableplane.position != null ? tableplane.position[1].toFixed(4) : ""); + tableplane.tr.cells[15].textContent = (tableplane.position != null ? tableplane.position[0].toFixed(4) : ""); tableplane.tr.cells[16].textContent = format_data_source(tableplane.getDataSource()); - tableplane.tr.cells[17].innerHTML = getAirframesModeSLink(tableplane.icao); - tableplane.tr.cells[18].innerHTML = getFlightAwareModeSLink(tableplane.icao, tableplane.flight); - tableplane.tr.cells[19].innerHTML = getFlightAwarePhotoLink(tableplane.registration); + if (tableplane.icao_cache !== tableplane.icao) { + tableplane.tr.cells[17].innerHTML = getAirframesModeSLink(tableplane.icao); + tableplane.icao_cache = tableplane.icao; + } + if (tableplane.registration_cache !== tableplane.registration) { + tableplane.tr.cells[19].innerHTML = getFlightAwarePhotoLink(tableplane.registration); + tableplane.registration_cache = tableplane.registration; + } + tableplane.tr.className = classes; } } @@ -1504,9 +1514,11 @@ function resortTable() { PlanesOrdered.sort(sortFunction); var tbody = document.getElementById('tableinfo').tBodies[0]; + var fragment = document.createDocumentFragment(); for (var i = 0; i < PlanesOrdered.length; ++i) { - tbody.appendChild(PlanesOrdered[i].tr); + fragment.appendChild(PlanesOrdered[i].tr); } + tbody.appendChild(fragment); } function sortBy(id,sc,se) {