From fe67461f88c9adbcf9000b56fb8af8d67b4e3492 Mon Sep 17 00:00:00 2001 From: Smittix Date: Thu, 15 Jan 2026 17:54:41 +0000 Subject: [PATCH] Add selectable ACARS frequencies - Add checkboxes for each ACARS frequency in the selected region - Users can now select one or multiple frequencies instead of all - Frequencies stay checked when switching regions if they exist in both - Falls back to all region frequencies if none selected Co-Authored-By: Claude Opus 4.5 --- templates/adsb_dashboard.html | 43 ++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 6 deletions(-) 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() {