diff --git a/static/js/core/settings-manager.js b/static/js/core/settings-manager.js index ddc0831..bc4215f 100644 --- a/static/js/core/settings-manager.js +++ b/static/js/core/settings-manager.js @@ -8,7 +8,7 @@ const Settings = { 'offline.enabled': false, 'offline.assets_source': 'cdn', 'offline.fonts_source': 'cdn', - 'offline.tile_provider': 'openstreetmap', + 'offline.tile_provider': 'cartodb_dark', 'offline.tile_server_url': '' }, diff --git a/static/js/modes/meshtastic.js b/static/js/modes/meshtastic.js index e199a77..24ecc50 100644 --- a/static/js/modes/meshtastic.js +++ b/static/js/modes/meshtastic.js @@ -26,6 +26,23 @@ const Meshtastic = (function() { initMap(); loadPorts(); checkStatus(); + setupEventDelegation(); + } + + /** + * Setup event delegation for dynamically created elements + */ + function setupEventDelegation() { + // Handle traceroute button clicks in Leaflet popups + document.addEventListener('click', function(e) { + const tracerouteBtn = e.target.closest('.mesh-traceroute-btn'); + if (tracerouteBtn) { + const nodeId = tracerouteBtn.dataset.nodeId; + if (nodeId) { + sendTraceroute(nodeId); + } + } + }); } /** @@ -636,7 +653,7 @@ const Meshtastic = (function() { ${node.last_heard ? `Last heard: ${new Date(node.last_heard).toLocaleTimeString()}
` : ''} ${telemetryHtml} ${envHtml} - ${!isLocal ? `` : ''} + ${!isLocal ? `` : ''} `; diff --git a/templates/adsb_dashboard.html b/templates/adsb_dashboard.html index 9ce5ebe..be0c710 100644 --- a/templates/adsb_dashboard.html +++ b/templates/adsb_dashboard.html @@ -2340,8 +2340,9 @@ sudo make install maxZoom: 15 }); - L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { - attribution: '© OpenStreetMap contributors' + L.tileLayer('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png', { + attribution: '© OSM © CARTO', + maxZoom: 19 }).addTo(radarMap); // Draw range rings after map is ready diff --git a/templates/ais_dashboard.html b/templates/ais_dashboard.html index 64c5ae3..02a3bd0 100644 --- a/templates/ais_dashboard.html +++ b/templates/ais_dashboard.html @@ -390,9 +390,9 @@ zoomControl: true }); - // OpenStreetMap tile layer - L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { - attribution: '© OpenStreetMap contributors', + // Dark themed map tiles + L.tileLayer('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png', { + attribution: '© OSM © CARTO', maxZoom: 19 }).addTo(vesselMap); diff --git a/templates/index.html b/templates/index.html index 21b8831..cb2c23b 100644 --- a/templates/index.html +++ b/templates/index.html @@ -7591,9 +7591,9 @@ aprsMap = L.map('aprsMap').setView([initialLat, initialLon], initialZoom); - // OpenStreetMap with roads - better for APRS station tracking - L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { - attribution: '© OpenStreetMap contributors', + // Dark themed map tiles + L.tileLayer('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png', { + attribution: '© OSM © CARTO', maxZoom: 19 }).addTo(aprsMap); @@ -8495,9 +8495,9 @@ attributionControl: false }); - L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { - maxZoom: 19, - attribution: '© OpenStreetMap contributors' + L.tileLayer('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png', { + attribution: '© OSM © CARTO', + maxZoom: 19 }).addTo(groundTrackMap); // Add observer marker diff --git a/templates/satellite_dashboard.html b/templates/satellite_dashboard.html index 80287d9..44ce834 100644 --- a/templates/satellite_dashboard.html +++ b/templates/satellite_dashboard.html @@ -416,8 +416,9 @@ worldCopyJump: true }); - L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { - attribution: '© OpenStreetMap contributors' + L.tileLayer('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png', { + attribution: '© OSM © CARTO', + maxZoom: 19 }).addTo(groundMap); }