Merge branch 'additional_filtering' into dev

This commit is contained in:
eric1tran 2020-12-11 16:58:13 +00:00
commit af4951a494
4 changed files with 418 additions and 185 deletions

View File

@ -212,109 +212,126 @@
</tr>
</table>
</div> <!-- dump1090_infoblock -->
<form id="altitude_filter_form">
<label><span class="infoBlockTitleText">Filter by Altitude:</span></label>
<input id="altitude_filter_min" name="minAltitude" type="text" class="altitudeFilterInput" maxlength="5">
<label for="minAltitude" class="altitudeUnit"></label>
<span> to </span>
<input id="altitude_filter_max" name="maxAltitude" type="text" class="altitudeFilterInput" maxlength="5">
<label for="maxAltitude" class="altitudeUnit"></label>
<button type="submit">Filter</button>
<button id="altitude_filter_reset_button">Reset</button>
</form>
<div>
<button id="column_select">Select Columns</button>
<div class="config_button_row">
<button id="filter_button" class="config_button">Filters</button>
<button id="column_select_button" class="config_button">Select Columns</button>
<button id="stats_page_button" class="config_button">Go to My ADS-B Statistics Page</button>
</div>
<div id="column_select_window" class="hidden">
<div id="column_select_close_box"></div>
<div id="column_select_header">Columns</div>
<div class="columnOptionSelectAllContainer">
<div class="columnSelectAllCheckbox" id="select_all_column_checkbox"></div>
<div class="columnOptionText">Select/Deselect All</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="icao_col_checkbox"></div>
<div class="columnOptionText">Icao</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="flag_col_checkbox"></div>
<div class="columnOptionText">Flag</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="ident_col_checkbox"></div>
<div class="columnOptionText">Ident</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="reg_col_checkbox"></div>
<div class="columnOptionText">Registration</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="ac_col_checkbox"></div>
<div class="columnOptionText">Aircraft Type</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="squawk_col_checkbox"></div>
<div class="columnOptionText">Squawk</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="alt_col_checkbox"></div>
<div class="columnOptionText">Altitude</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="speed_col_checkbox"></div>
<div class="columnOptionText">Speed</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="vrate_col_checkbox"></div>
<div class="columnOptionText">Vertical Rate</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="distance_col_checkbox"></div>
<div class="columnOptionText">Distance</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="heading_col_checkbox"></div>
<div class="columnOptionText">Heading</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="messages_col_checkbox"></div>
<div class="columnOptionText">Messages</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="msg_age_col_checkbox"></div>
<div class="columnOptionText">Message Age</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="rssi_col_checkbox"></div>
<div class="columnOptionText">RSSI</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="lat_col_checkbox"></div>
<div class="columnOptionText">Latitude</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="lon_col_checkbox"></div>
<div class="columnOptionText">Longitude</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="datasource_col_checkbox"></div>
<div class="columnOptionText">Data Source</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="airframes_col_checkbox"></div>
<div class="columnOptionText">Airframes.org</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="fa_modes_link_checkbox"></div>
<div class="columnOptionText">FlightAware</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="fa_photo_link_checkbox"></div>
<div class="columnOptionText">Photos</div>
</div>
<div id="filter_panel" class="panel">
<form id="altitude_filter_form">
<label><span class="infoBlockTitleText">Filter by Altitude:</span></label>
<input id="altitude_filter_min" name="minAltitude" type="text" class="altitudeFilterInput" maxlength="5">
<label for="minAltitude" class="altitudeUnit"></label>
<span> to </span>
<input id="altitude_filter_max" name="maxAltitude" type="text" class="altitudeFilterInput" maxlength="5">
<label for="maxAltitude" class="altitudeUnit"></label>
<button type="submit">Filter</button>
<button id="altitude_filter_reset_button">Reset</button>
</form>
<form id="aircraft_type_filter_form">
<label><span class="infoBlockTitleText">Filter by Aircraft Type:</span></label>
<input id="aircraft_type_filter" name="aircraftTypeFilter" type="text" class="aircraftFilterInput" maxlength="5">
<button type="submit">Filter</button>
<button id="aircraft_type_filter_reset_button">Reset</button>
</form>
<form id="aircraft_ident_filter_form">
<label><span class="infoBlockTitleText">Filter by Aircraft Ident:</span></label>
<input id="aircraft_ident_filter" name="aircraftIdentFilter" type="text" class="aircraftFilterInput" maxlength="10">
<button type="submit">Filter</button>
<button id="aircraft_ident_filter_reset_button">Reset</button>
</form>
</div>
<div id="column_select_panel" class="panel">
<div class="columnOptionSelectAllContainer">
<div class="columnSelectAllCheckbox" id="select_all_column_checkbox"></div>
<div class="columnOptionText">Select/Deselect All</div>
</div>
<div class="wrapper">
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="icao_col_checkbox"></div>
<div class="columnOptionText">Icao</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="flag_col_checkbox"></div>
<div class="columnOptionText">Flag</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="ident_col_checkbox"></div>
<div class="columnOptionText">Ident</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="reg_col_checkbox"></div>
<div class="columnOptionText">Registration</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="ac_col_checkbox"></div>
<div class="columnOptionText">Aircraft Type</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="squawk_col_checkbox"></div>
<div class="columnOptionText">Squawk</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="alt_col_checkbox"></div>
<div class="columnOptionText">Altitude</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="speed_col_checkbox"></div>
<div class="columnOptionText">Speed</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="vrate_col_checkbox"></div>
<div class="columnOptionText">Vertical Rate</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="distance_col_checkbox"></div>
<div class="columnOptionText">Distance</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="heading_col_checkbox"></div>
<div class="columnOptionText">Heading</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="messages_col_checkbox"></div>
<div class="columnOptionText">Messages</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="msg_age_col_checkbox"></div>
<div class="columnOptionText">Message Age</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="rssi_col_checkbox"></div>
<div class="columnOptionText">RSSI</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="lat_col_checkbox"></div>
<div class="columnOptionText">Latitude</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="lon_col_checkbox"></div>
<div class="columnOptionText">Longitude</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="datasource_col_checkbox"></div>
<div class="columnOptionText">Data Source</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="airframes_col_checkbox"></div>
<div class="columnOptionText">Airframes.org</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="fa_modes_link_checkbox"></div>
<div class="columnOptionText">FlightAware</div>
</div>
<div class="columnOptionContainer">
<div class="columnSelectCheckbox" id="fa_photo_link_checkbox"></div>
<div class="columnOptionText">Photos</div>
</div>
</div>
</div>
<div id="planes_table_container">
@ -372,14 +389,14 @@
</div> <!-- planes_table -->
<div>
<div class="legend">
<div class="legendBox vPosition"></div>
<div class="legendTitle">ADS-B</div>
<div class="legendBox mlat"></div>
<div class="legendTitle">MLAT</div>
<div class="legendBox other"></div>
<div class="legendTitle">Other</div>
<div class="legendBox tisb"></div>
<div class="legendTitle">TIS-B</div>
<div class="sourceCheckbox" id="adsb_datasource_checkbox"></div>
<div class="legendTitle vPosition">ADS-B</div>
<div class="sourceCheckbox" id="mlat_datasource_checkbox"></div>
<div class="legendTitle mlat">MLAT</div>
<div class="sourceCheckbox" id="other_datasource_checkbox"></div>
<div class="legendTitle other">Other</div>
<div class="sourceCheckbox" id="tisb_datasource_checkbox"></div>
<div class="legendTitle tisb">TIS-B</div>
</div>
</div>
</div> <!-- planes_table_container -->

View File

@ -109,6 +109,31 @@ function PlaneObject(icao) {
}
PlaneObject.prototype.isFiltered = function() {
// aircraft type filter
if (this.filter.aircraftTypeCode) {
if (this.icaotype === null || (typeof this.icaotype === 'string' && !this.icaotype.toUpperCase().trim().match(this.filter.aircraftTypeCode))) {
return true;
}
}
// aircraft ident filter
if (this.filter.aircraftIdent) {
if (this.flight === null || (typeof this.flight === 'string' && !this.flight.toUpperCase().trim().match(this.filter.aircraftIdent))) {
return true;
}
}
var dataSource = this.getDataSource();
if (dataSource === 'adsb_icao') {
if (!this.filter.ADSB) return true;
} else if (dataSource === 'mlat') {
if (!this.filter.MLAT) return true;
} else if (dataSource === 'tisb_trackfile' || dataSource === 'tisb_icao' || dataSource === 'tisb_other') {
if (!this.filter.TISB) return true;
} else {
if (!this.filter.Other) return true;
}
if (this.filter.minAltitude !== undefined && this.filter.maxAltitude !== undefined) {
if (this.altitude === null || this.altitude === undefined) {
return true;

View File

@ -16,6 +16,7 @@ var HighlightedPlane = null;
var FollowSelected = false;
var infoBoxOriginalPosition = {};
var customAltitudeColors = true;
var myAdsbStatsSiteUrl = null;
var SpecialSquawks = {
'7500' : { cssClass: 'squawk7500', markerColor: 'rgb(255, 85, 85)', text: 'Aircraft Hijacking' },
@ -217,6 +218,8 @@ function initialize() {
flightFeederCheck();
setStatsLink();
PlaneRowTemplate = document.getElementById("plane_row_template");
refreshClock();
@ -321,20 +324,21 @@ function initialize() {
}
$("#altitude_filter_reset_button").click(onResetAltitudeFilter);
$("#aircraft_type_filter_form").submit(onFilterByAircraftType);
$("#aircraft_type_filter_reset_button").click(onResetAircraftTypeFilter);
$("#aircraft_ident_filter_form").submit(onFilterByAircraftIdent);
$("#aircraft_ident_filter_reset_button").click(onResetAircraftIdentFilter);
$('#settingsCog').on('click', function() {
$('#settings_infoblock').toggle();
});
$('#column_select').on('click', function() {
$('#column_select_window').toggle();
});
$('#column_select_close_box').on('click', function() {
$('#column_select_window').hide();
});
$('#settings_close').on('click', function() {
$('#settings_infoblock').hide();
});
@ -369,6 +373,43 @@ function initialize() {
toggleAllColumns(true);
})
$('#adsb_datasource_checkbox').on('click', function() {
toggleADSBAircraft(true);
refreshDataSourceFilters();
})
$('#mlat_datasource_checkbox').on('click', function() {
toggleMLATAircraft(true);
refreshDataSourceFilters();
})
$('#other_datasource_checkbox').on('click', function() {
toggleOtherAircraft(true);
refreshDataSourceFilters();
})
$('#tisb_datasource_checkbox').on('click', function() {
toggleTISBAircraft(true);
refreshDataSourceFilters();
})
$('#column_select_button').on('click', function() {
this.classList.toggle("config_button_active");
$('#column_select_panel').toggle();
});
$('#filter_button').on('click', function() {
this.classList.toggle("config_button_active");
$('#filter_panel').toggle();
});
$('#stats_page_button').on('click', function() {
if (myAdsbStatsSiteUrl) {
window.open(myAdsbStatsSiteUrl);
}
});
// Event handlers for to column checkboxes
checkbox_div_map.forEach(function (checkbox, div) {
$(div).on('click', function() {
@ -383,12 +424,18 @@ function initialize() {
mapResizeTimeout = setTimeout(updateMapSize, 10);
});
// Initialize settings from local storage
filterGroundVehicles(false);
filterBlockedMLAT(false);
toggleAltitudeChart(false);
toggleAllPlanes(false);
toggleGroupByDataType(false);
toggleAllColumns(false);
toggleADSBAircraft(false);
toggleMLATAircraft(false);
toggleOtherAircraft(false);
toggleTISBAircraft(false);
refreshDataSourceFilters();
// Get receiver metadata, reconfigure using it, then continue
// with initialization
@ -1118,24 +1165,23 @@ function refreshSelected() {
// emerg.className = 'hidden';
// }
$("#selected_altitude").text(format_altitude_long(selected.altitude, selected.vert_rate, DisplayUnits));
$('#selected_onground').text(format_onground(selected.altitude));
$("#selected_altitude").text(format_altitude_long(selected.altitude, selected.vert_rate, DisplayUnits));
$('#selected_onground').text(format_onground(selected.altitude));
if (selected.squawk === null || selected.squawk === '0000') {
$('#selected_squawk').text('n/a');
} else {
$('#selected_squawk').text(selected.squawk);
}
$('#selected_speed').text(format_speed_long(selected.gs, DisplayUnits));
$('#selected_ias').text(format_speed_long(selected.ias, DisplayUnits));
$('#selected_tas').text(format_speed_long(selected.tas, DisplayUnits));
$('#selected_vertical_rate').text(format_vert_rate_long(selected.baro_rate, DisplayUnits));
$('#selected_vertical_rate_geo').text(format_vert_rate_long(selected.geom_rate, DisplayUnits));
$('#selected_speed').text(format_speed_long(selected.gs, DisplayUnits));
$('#selected_ias').text(format_speed_long(selected.ias, DisplayUnits));
$('#selected_tas').text(format_speed_long(selected.tas, DisplayUnits));
$('#selected_vertical_rate').text(format_vert_rate_long(selected.baro_rate, DisplayUnits));
$('#selected_vertical_rate_geo').text(format_vert_rate_long(selected.geom_rate, DisplayUnits));
$('#selected_icao').text(selected.icao.toUpperCase());
$('#airframes_post_icao').attr('value',selected.icao);
$('#selected_track').text(format_track_long(selected.track));
$('#selected_track').text(format_track_long(selected.track));
if (selected.seen <= 1) {
$('#selected_seen').text('now');
@ -1158,7 +1204,7 @@ function refreshSelected() {
$('#selected_flag').addClass('hidden');
}
if (selected.position === null) {
if (selected.position === null) {
$('#selected_position').text('n/a');
$('#selected_follow').addClass('hidden');
} else {
@ -1171,23 +1217,24 @@ function refreshSelected() {
} else {
$('#selected_follow').css('font-weight', 'normal');
}
}
if (selected.getDataSource() === "adsb_icao") {
$('#selected_source').text("ADS-B");
} else if (selected.getDataSource() === "tisb_trackfile" || selected.getDataSource() === "tisb_icao" || selected.getDataSource() === "tisb_other") {
$('#selected_source').text("TIS-B");
} else if (selected.getDataSource() === "mlat") {
$('#selected_source').text("MLAT");
} else {
$('#selected_source').text("Other");
}
$('#selected_category').text(selected.category ? selected.category : "n/a");
}
if (selected.getDataSource() === "adsb_icao") {
$('#selected_source').text("ADS-B");
} else if (selected.getDataSource() === "tisb_trackfile" || selected.getDataSource() === "tisb_icao" || selected.getDataSource() === "tisb_other") {
$('#selected_source').text("TIS-B");
} else if (selected.getDataSource() === "mlat") {
$('#selected_source').text("MLAT");
} else {
$('#selected_source').text("Other");
}
$('#selected_category').text(selected.category ? selected.category : "n/a");
$('#selected_sitedist').text(format_distance_long(selected.sitedist, DisplayUnits));
$('#selected_rssi').text(selected.rssi.toFixed(1) + ' dBFS');
$('#selected_message_count').text(selected.messages);
$('#selected_photo_link').html(getFlightAwarePhotoLink(selected.registration));
$('#selected_altitude_geom').text(format_altitude_long(selected.alt_geom, selected.geom_rate, DisplayUnits));
$('#selected_photo_link').html(getFlightAwarePhotoLink(selected.registration));
$('#selected_altitude_geom').text(format_altitude_long(selected.alt_geom, selected.geom_rate, DisplayUnits));
$('#selected_mag_heading').text(format_track_long(selected.mag_heading));
$('#selected_true_heading').text(format_track_long(selected.true_heading));
$('#selected_ias').text(format_speed_long(selected.ias, DisplayUnits));
@ -1977,6 +2024,31 @@ function onFilterByAltitude(e) {
}
}
function onFilterByAircraftType(e) {
e.preventDefault();
updatePlaneFilter();
refreshTableInfo();
}
function onResetAircraftTypeFilter(e) {
$("#aircraft_type_filter").val("");
updatePlaneFilter();
refreshTableInfo();
}
function onFilterByAircraftIdent(e) {
e.preventDefault();
updatePlaneFilter();
refreshTableInfo();
}
function onResetAircraftIdentFilter(e) {
$("#aircraft_ident_filter").val("");
updatePlaneFilter();
refreshTableInfo();
}
function filterGroundVehicles(switchFilter) {
if (typeof localStorage['groundVehicleFilter'] === 'undefined') {
localStorage.setItem('groundVehicleFilter' , 'not_filtered');
@ -2065,6 +2137,26 @@ function updatePlaneFilter() {
PlaneFilter.minAltitude = minAltitude;
PlaneFilter.maxAltitude = maxAltitude;
PlaneFilter.altitudeUnits = DisplayUnits;
var aircraftTypeCode = $("#aircraft_type_filter").val().trim().toUpperCase()
if (aircraftTypeCode === "") {
aircraftTypeCode = undefined
}
var aircraftIdent = $("#aircraft_ident_filter").val().trim().toUpperCase()
if (aircraftIdent === "") {
aircraftIdent = undefined
}
PlaneFilter.aircraftTypeCode = aircraftTypeCode;
PlaneFilter.aircraftIdent = aircraftIdent;
}
function refreshDataSourceFilters () {
PlaneFilter.ADSB = (localStorage.getItem('sourceADSBFilter') === 'selected') ? true : false;
PlaneFilter.MLAT = (localStorage.getItem('sourceMLATFilter') === 'selected') ? true : false;
PlaneFilter.Other = (localStorage.getItem('sourceOtherFilter') === 'selected') ? true : false;
PlaneFilter.TISB = (localStorage.getItem('sourceTISBFilter') === 'selected') ? true : false;
}
function getFlightAwareIdentLink(ident, linkText) {
@ -2151,6 +2243,20 @@ function flightFeederCheck() {
})
}
function setStatsLink() {
$.ajax('/status.json', {
success: function(data) {
if (data.unclaimed_feeder_id) {
var claim_link = "https://flightaware.com/adsb/piaware/claim/" + data.unclaimed_feeder_id;
$('#stats_page_button').text("Claim this feeder on FlightAware")
myAdsbStatsSiteUrl = claim_link;
} else if (data.site_url) {
myAdsbStatsSiteUrl = data.site_url;
}
}
})
}
// updates the page to replace piaware with flightfeeder references
function updatePiAwareOrFlightFeeder() {
if (isFlightFeeder) {
@ -2357,3 +2463,71 @@ function toggleAllColumns(switchToggle) {
localStorage.setItem('selectAllColumnsCheckbox', selectAllColumnsCheckbox);
}
function toggleADSBAircraft(switchFilter) {
if (typeof localStorage['sourceADSBFilter'] === 'undefined') {
localStorage.setItem('sourceADSBFilter','selected');
}
var sourceADSBFilter = localStorage.getItem('sourceADSBFilter');
if (switchFilter === true) {
sourceADSBFilter = (sourceADSBFilter === 'deselected') ? 'selected' : 'deselected';
}
if (sourceADSBFilter === 'deselected') {
$('#adsb_datasource_checkbox').removeClass('sourceCheckboxChecked');
} else {
$('#adsb_datasource_checkbox').addClass('sourceCheckboxChecked');
}
localStorage.setItem('sourceADSBFilter', sourceADSBFilter);
}
function toggleMLATAircraft(switchFilter) {
if (typeof localStorage['sourceMLATFilter'] === 'undefined') {
localStorage.setItem('sourceMLATFilter','selected');
}
var sourceMLATFilter = localStorage.getItem('sourceMLATFilter');
if (switchFilter === true) {
sourceMLATFilter = (sourceMLATFilter === 'deselected') ? 'selected' : 'deselected';
}
if (sourceMLATFilter === 'deselected') {
$('#mlat_datasource_checkbox').removeClass('sourceCheckboxChecked');
} else {
$('#mlat_datasource_checkbox').addClass('sourceCheckboxChecked');
}
localStorage.setItem('sourceMLATFilter', sourceMLATFilter);
}
function toggleOtherAircraft(switchFilter) {
if (typeof localStorage['sourceOtherFilter'] === 'undefined') {
localStorage.setItem('sourceOtherFilter','selected');
}
var sourceOtherFilter = localStorage.getItem('sourceOtherFilter');
if (switchFilter === true) {
sourceOtherFilter = (sourceOtherFilter === 'deselected') ? 'selected' : 'deselected';
}
if (sourceOtherFilter === 'deselected') {
$('#other_datasource_checkbox').removeClass('sourceCheckboxChecked');
} else {
$('#other_datasource_checkbox').addClass('sourceCheckboxChecked');
}
localStorage.setItem('sourceOtherFilter', sourceOtherFilter);
}
function toggleTISBAircraft(switchFilter) {
if (typeof localStorage['sourceTISBFilter'] === 'undefined') {
localStorage.setItem('sourceTISBFilter','selected');
}
var sourceTISBFilter = localStorage.getItem('sourceTISBFilter');
if (switchFilter === true) {
sourceTISBFilter = (sourceTISBFilter === 'deselected') ? 'selected' : 'deselected';
}
if (sourceTISBFilter === 'deselected') {
$('#tisb_datasource_checkbox').removeClass('sourceCheckboxChecked');
} else {
$('#tisb_datasource_checkbox').addClass('sourceCheckboxChecked');
}
localStorage.setItem('sourceTISBFilter', sourceTISBFilter);
}

View File

@ -55,47 +55,6 @@ html, body {
overflow-x: scroll;
}
#column_select {
position: relative;
float: right;
background-color: #002F5D;
color: #FFFFFF;
}
#column_select_window {
position: absolute;
right: 1px;
top: 80px;
width: 150px;
min-height: 180px;
background: #ffffff;
box-shadow: 4px 4px 10px #444444;
padding: 20px;
z-index: 9999;
display: none;
}
#column_select_header {
display: table;
background-color: #002F5D;
color: #ffffff;
font-size: smaller;
padding: 5px;
text-align: center;
width: 120px;
}
#column_select_close_box {
position: absolute;
right: 15px;
top: 21px;
background-image: url('images/close-settings.png');
background-size: cover;
width: 20px;
height: 20px;
cursor: pointer;
}
.columnOptionContainer {
position: relative;
display: table;
@ -271,7 +230,9 @@ div#loader { z-index: 99; position: absolute; left: 0; top: 0; bottom: 0; right:
}
#units_container,
#altitude_filter_form {
#altitude_filter_form,
#aircraft_type_filter_form,
#aircraft_ident_filter_form {
font-size: small;
margin: 10px 0 10px 0;
}
@ -333,6 +294,10 @@ div#loader { z-index: 99; position: absolute; left: 0; top: 0; bottom: 0; right:
width: 50px;
}
.aircraftFilterInput {
width: 80px;
}
.rangeRingsInput {
width: 30px;
float: right;
@ -683,8 +648,10 @@ select.error, textarea.error, input.error {
.legendTitle {
line-height: 19px;
display: inline-block;
padding-right: 20px;
padding-right: 5px;
padding-left: 5px;
border-radius: 5px;
margin-right: 20px;
}
#settings_infoblock {
@ -723,6 +690,22 @@ select.error, textarea.error, input.error {
background-image: url('images/box-checked.png') !important;
}
.sourceCheckbox {
width: 13px;
height: 13px;
background-image: url('images/box-empty.png');
background-repeat: no-repeat;
background-position: center;
background-size: contain;
cursor: pointer;
margin-top: 3px;
margin-right: 3px;
}
.sourceCheckboxChecked {
background-image: url('images/box-checked.png') !important;
}
.settingsCloseBox {
position: absolute;
right: 8px;
@ -861,3 +844,37 @@ select.error, textarea.error, input.error {
background-image: url("images/map-icon@3x.png");
}
}
.config_button {
position: relative;
background-color: #FEBC11;
color: #002F5D;
cursor: pointer;
text-align: center;
width: auto;
}
.config_button:hover, .config_button_active {
background-color: #abcad8;
}
.config_button_row {
position: relative;
margin-top: 5px;
padding: 3px 0 3px 0;
}
.panel {
position: relative;
padding: 3px 3px 10px 3px;
display: none;
margin-bottom: 5px;
border: solid;
border-color: #002F5D;
}
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
}