Merge pull request #42 from 0xAF/leaflet-ls

save leaflet user prefs to local storage
This commit is contained in:
Luarvique L. Luarvique 2023-11-27 18:26:05 -05:00 committed by GitHub
commit f2729db0d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 2 deletions

View File

@ -313,16 +313,17 @@ MapManager.prototype.initializeMap = function(receiver_gps, api_key, weather_key
} }
}); });
var map_idx = LS.loadInt('leaflet_map_idx'); // should return 0 if not found
$.each(mapSources, function (idx, ms) { $.each(mapSources, function (idx, ms) {
$('#openwebrx-map-source').append( $('#openwebrx-map-source').append(
$('<option></option>') $('<option></option>')
.attr('selected', idx == 0 ? true : false) .attr('selected', idx == map_idx ? true : false)
.attr('value', idx) .attr('value', idx)
.attr('title', ms.info) .attr('title', ms.info)
.text(ms.name) .text(ms.name)
); );
ms.layer = L.tileLayer(ms.url, ms.options); ms.layer = L.tileLayer(ms.url, ms.options);
if (idx == 0) ms.layer.addTo(map); if (idx == map_idx) ms.layer.addTo(map);
}); });
var apiKeys = {}; var apiKeys = {};
@ -375,6 +376,7 @@ MapManager.prototype.initializeMap = function(receiver_gps, api_key, weather_key
map.removeLayer(ms.layer); map.removeLayer(ms.layer);
}); });
map.addLayer(m.layer); map.addLayer(m.layer);
LS.save('leaflet_map_idx', id);
$('#openwebrx-map-extralayers').find('input').each(function (idx, inp) { $('#openwebrx-map-extralayers').find('input').each(function (idx, inp) {
if ($(inp).is(':checked')) { if ($(inp).is(':checked')) {
addMapOverlay($(inp).attr('name')); addMapOverlay($(inp).attr('name'));
@ -385,12 +387,14 @@ MapManager.prototype.initializeMap = function(receiver_gps, api_key, weather_key
if (!isMapEligible(mel)) return; if (!isMapEligible(mel)) return;
if ($('#openwebrx-map-layer-' + mel.name).length) if ($('#openwebrx-map-layer-' + mel.name).length)
return; // checkbox with that name exists already return; // checkbox with that name exists already
var enabled = LS.loadBool('leaflet-layer-' + mel.name); // should return false if not found
$('#openwebrx-map-extralayers').append( $('#openwebrx-map-extralayers').append(
$('<label>' + $('<label>' +
'<input type="checkbox" ' + '<input type="checkbox" ' +
'name="' + mel.name + '" ' + 'name="' + mel.name + '" ' +
'idx="' + idx + '" ' + 'idx="' + idx + '" ' +
'id="openwebrx-map-layer-' + mel.name + '"' + 'id="openwebrx-map-layer-' + mel.name + '"' +
(enabled ? ' checked ' : '') +
'>' + mel.name + '</label>' '>' + mel.name + '</label>'
).on('change', function (e) { ).on('change', function (e) {
if (e.target.checked) { if (e.target.checked) {
@ -398,8 +402,10 @@ MapManager.prototype.initializeMap = function(receiver_gps, api_key, weather_key
} else { } else {
removeMapOverlay(mel.name); removeMapOverlay(mel.name);
} }
LS.save('leaflet-layer-' + mel.name, e.target.checked);
}) })
); );
if (enabled) addMapOverlay(mel.name);
}); });
// Create map legend selectors // Create map legend selectors