From b416f4bb7e04b90c25c22cc2055ba63eb94b1f56 Mon Sep 17 00:00:00 2001 From: James Wilson Date: Fri, 19 Aug 2016 14:43:20 -0500 Subject: [PATCH 1/2] Add the ability to select all/none of the aircraft --- public_html/index.html | 8 ++++ public_html/script.js | 94 ++++++++++++++++++++++++++++++++++++------ 2 files changed, 89 insertions(+), 13 deletions(-) diff --git a/public_html/index.html b/public_html/index.html index 6862bc1..99972d4 100644 --- a/public_html/index.html +++ b/public_html/index.html @@ -56,6 +56,14 @@ [ Reset Map ] + + + [ Select All ] + + + + [ Select None ] + diff --git a/public_html/script.js b/public_html/script.js index 1f28cab..1cdfccd 100644 --- a/public_html/script.js +++ b/public_html/script.js @@ -9,6 +9,7 @@ var PlaneTrailFeatures = new ol.Collection(); var Planes = {}; var PlanesOrdered = []; var SelectedPlane = null; +var SelectedAllPlanes = false; var FollowSelected = false; var SpecialSquawks = { @@ -129,6 +130,7 @@ function fetchData() { plane.updateTick(now, LastReceiverTimestamp); } + selectNewPlanes(); refreshTableInfo(); refreshSelected(); @@ -875,6 +877,11 @@ function sortBy(id,sc,se) { function selectPlaneByHex(hex,autofollow) { //console.log("select: " + hex); // If SelectedPlane has something in it, clear out the selected + + if (SelectedAllPlanes) { + deselectAllPlanes(); + } + if (SelectedPlane != null) { Planes[SelectedPlane].selected = false; Planes[SelectedPlane].clearLines(); @@ -883,31 +890,92 @@ function selectPlaneByHex(hex,autofollow) { } // If we are clicking the same plane, we are deselecting it. - // (unless it was a doubleclick..) + // (unless it was a doubleclick..) if (SelectedPlane === hex && !autofollow) { - hex = null; - } + hex = null; + } - if (hex !== null) { + if (hex !== null) { // Assign the new selected SelectedPlane = hex; Planes[SelectedPlane].selected = true; Planes[SelectedPlane].updateLines(); Planes[SelectedPlane].updateMarker(); - $(Planes[SelectedPlane].tr).addClass("selected"); + $(Planes[SelectedPlane].tr).addClass("selected"); } else { SelectedPlane = null; } - if (SelectedPlane !== null && autofollow) { - FollowSelected = true; - if (OLMap.getView().getZoom() < 8) - OLMap.getView().setZoom(8); - } else { - FollowSelected = false; - } + if (SelectedPlane !== null && autofollow) { + FollowSelected = true; + if (OLMap.getView().getZoom() < 8) + OLMap.getView().setZoom(8); + } else { + FollowSelected = false; + } - refreshSelected(); + refreshSelected(); +} + +// loop through the planes and mark them as selected to show the paths for all planes +function selectAllPlanes() { + // if all planes are already selected, deselect them all + if (SelectedAllPlanes) { + deselectAllPlanes(); + } else { + // If SelectedPlane has something in it, clear out the selected + if (SelectedPlane != null) { + Planes[SelectedPlane].selected = false; + Planes[SelectedPlane].clearLines(); + Planes[SelectedPlane].updateMarker(); + $(Planes[SelectedPlane].tr).removeClass("selected"); + } + + SelectedPlane = null; + + for(var key in Planes) { + if (Planes[key].visible !== false) { + Planes[key].selected = true; + Planes[key].updateLines(); + Planes[key].updateMarker(); + } + } + SelectedAllPlanes = true; + } + + refreshSelected(); +} + +// on refreshes, try to find new planes and mark them as selected +function selectNewPlanes() { + if (SelectedAllPlanes) { + for (var key in Planes) { + if (Planes[key].visible === false) { + Planes[key].selected = false; + Planes[key].updateLines(); + Planes[key].updateMarker(); + } else { + if (Planes[key].selected !== true) { + Planes[key].selected = true; + Planes[key].updateLines(); + Planes[key].updateMarker(); + } + } + } + } +} + +// deselect all the planes +function deselectAllPlanes() { + for(var key in Planes) { + Planes[key].selected = false; + Planes[key].clearLines(); + Planes[key].updateMarker(); + $(Planes[key].tr).removeClass("selected"); + } + SelectedPlane = null; + SelectedAllPlanes = false; + refreshSelected(); } function toggleFollowSelected() { From 31f99fac19e57511aea0f93584a1026fae12c262 Mon Sep 17 00:00:00 2001 From: James Wilson Date: Fri, 19 Aug 2016 15:52:48 -0500 Subject: [PATCH 2/2] clearLines instead of updateLines --- public_html/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public_html/script.js b/public_html/script.js index 1cdfccd..f21a89a 100644 --- a/public_html/script.js +++ b/public_html/script.js @@ -952,7 +952,7 @@ function selectNewPlanes() { for (var key in Planes) { if (Planes[key].visible === false) { Planes[key].selected = false; - Planes[key].updateLines(); + Planes[key].clearLines(); Planes[key].updateMarker(); } else { if (Planes[key].selected !== true) {