diff --git a/templates/adsb_dashboard.html b/templates/adsb_dashboard.html index 7f0ae52..e41980f 100644 --- a/templates/adsb_dashboard.html +++ b/templates/adsb_dashboard.html @@ -108,12 +108,15 @@ - +
+ +
@@ -3252,21 +3255,49 @@ sudo make install localStorage.setItem('acarsSidebarCollapsed', acarsSidebarCollapsed); } - // Initialize ACARS sidebar state + // Initialize ACARS sidebar state and frequency checkboxes document.addEventListener('DOMContentLoaded', () => { const sidebar = document.getElementById('acarsSidebar'); if (sidebar && acarsSidebarCollapsed) { sidebar.classList.add('collapsed'); } + updateAcarsFreqCheckboxes(); }); - function setAcarsFreqs() { - // Just updates the region selection - frequencies are sent on start + function updateAcarsFreqCheckboxes() { + const region = document.getElementById('acarsRegionSelect').value; + const freqs = acarsFrequencies[region] || acarsFrequencies['na']; + const container = document.getElementById('acarsFreqSelector'); + + // Save currently checked frequencies + const previouslyChecked = new Set(); + container.querySelectorAll('input:checked').forEach(cb => { + previouslyChecked.add(cb.value); + }); + + container.innerHTML = freqs.map(freq => { + // Check by default if it was previously checked or if this is initial load + const checked = previouslyChecked.size === 0 || previouslyChecked.has(freq) ? 'checked' : ''; + return ` + + `; + }).join(''); } function getAcarsRegionFreqs() { - const region = document.getElementById('acarsRegionSelect').value; - return acarsFrequencies[region] || acarsFrequencies['na']; + const checkboxes = document.querySelectorAll('.acars-freq-cb:checked'); + const selectedFreqs = Array.from(checkboxes).map(cb => cb.value); + + // If none selected, return all for the region as fallback + if (selectedFreqs.length === 0) { + const region = document.getElementById('acarsRegionSelect').value; + return acarsFrequencies[region] || acarsFrequencies['na']; + } + + return selectedFreqs; } function toggleAcars() {