mirror of
https://github.com/smittix/intercept.git
synced 2026-07-24 16:58:12 -07:00
Fix ADS-B dashboard for remote agents
- Fix device dropdown to use sdr_devices (same as agents.js fix) - Keep dropdown/start button enabled in "All Agents" mode for control - Disable airband controls for remote agents (audio not supported)
This commit is contained in:
@@ -4461,18 +4461,45 @@ sudo make install</code>
|
|||||||
loadDevices();
|
loadDevices();
|
||||||
// Check if local ADS-B is running
|
// Check if local ADS-B is running
|
||||||
syncLocalTrackingStatus();
|
syncLocalTrackingStatus();
|
||||||
|
// Enable airband controls (local audio works)
|
||||||
|
setAirbandEnabled(true);
|
||||||
console.log('ADS-B: Using local device');
|
console.log('ADS-B: Using local device');
|
||||||
} else {
|
} else {
|
||||||
// Get agent devices
|
// Get agent devices
|
||||||
refreshAgentDevicesForAdsb(agentId);
|
refreshAgentDevicesForAdsb(agentId);
|
||||||
// Check if agent has ADS-B running (syncAgentModeStates will call setADSBRunning)
|
// Check if agent has ADS-B running (syncAgentModeStates will call setADSBRunning)
|
||||||
syncAgentModeStates(agentId);
|
syncAgentModeStates(agentId);
|
||||||
|
// Disable airband controls (no audio streaming from remote agents)
|
||||||
|
setAirbandEnabled(false);
|
||||||
console.log(`ADS-B: Using agent ${agentId}`);
|
console.log(`ADS-B: Using agent ${agentId}`);
|
||||||
}
|
}
|
||||||
updateAgentStatus();
|
updateAgentStatus();
|
||||||
updateSourceIndicator();
|
updateSourceIndicator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Enable/disable airband controls based on local vs remote agent
|
||||||
|
function setAirbandEnabled(enabled) {
|
||||||
|
const airbandControls = document.querySelectorAll('.airband-controls');
|
||||||
|
const playBtn = document.getElementById('airbandBtn');
|
||||||
|
|
||||||
|
airbandControls.forEach(ctrl => {
|
||||||
|
ctrl.disabled = !enabled;
|
||||||
|
ctrl.style.opacity = enabled ? '1' : '0.5';
|
||||||
|
});
|
||||||
|
|
||||||
|
if (playBtn) {
|
||||||
|
playBtn.disabled = !enabled;
|
||||||
|
playBtn.style.opacity = enabled ? '1' : '0.5';
|
||||||
|
if (!enabled) {
|
||||||
|
playBtn.textContent = '▶ LOCAL ONLY';
|
||||||
|
playBtn.title = 'Airband requires local audio - not available for remote agents';
|
||||||
|
} else {
|
||||||
|
playBtn.textContent = '▶ LISTEN';
|
||||||
|
playBtn.title = 'Start airband audio';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Check local ADS-B tracking status
|
// Check local ADS-B tracking status
|
||||||
async function syncLocalTrackingStatus() {
|
async function syncLocalTrackingStatus() {
|
||||||
try {
|
try {
|
||||||
@@ -4600,7 +4627,8 @@ sudo make install</code>
|
|||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
if (data.agent && data.agent.interfaces) {
|
if (data.agent && data.agent.interfaces) {
|
||||||
const devices = data.agent.interfaces.devices || [];
|
// Agent stores SDR devices in interfaces.sdr_devices (same fix as agents.js)
|
||||||
|
const devices = data.agent.interfaces.sdr_devices || data.agent.interfaces.devices || [];
|
||||||
populateAdsbDeviceSelects(devices);
|
populateAdsbDeviceSelects(devices);
|
||||||
|
|
||||||
// Update observer location if agent has GPS
|
// Update observer location if agent has GPS
|
||||||
@@ -4667,9 +4695,9 @@ sudo make install</code>
|
|||||||
const startBtn = document.getElementById('startBtn');
|
const startBtn = document.getElementById('startBtn');
|
||||||
|
|
||||||
if (showAllAgentsMode) {
|
if (showAllAgentsMode) {
|
||||||
// Disable individual agent selection and start button
|
// Keep dropdown enabled to select which agent to control
|
||||||
if (agentSelect) agentSelect.disabled = true;
|
// Keep start button enabled to start/stop on selected agent
|
||||||
if (startBtn) startBtn.disabled = true;
|
// (agentSelect and startBtn stay enabled)
|
||||||
|
|
||||||
// Connect to multi-agent stream (passive listening to all agents)
|
// Connect to multi-agent stream (passive listening to all agents)
|
||||||
startAllAgentsStream();
|
startAllAgentsStream();
|
||||||
@@ -4689,8 +4717,9 @@ sudo make install</code>
|
|||||||
|
|
||||||
console.log('Show All Agents mode enabled');
|
console.log('Show All Agents mode enabled');
|
||||||
} else {
|
} else {
|
||||||
// Re-enable controls
|
// When unchecking "All", dropdown follows normal tracking rules
|
||||||
if (agentSelect) agentSelect.disabled = isTracking;
|
// (disabled only if tracking is active on a specific agent)
|
||||||
|
if (agentSelect) agentSelect.disabled = isTracking && !showAllAgentsMode;
|
||||||
if (startBtn) startBtn.disabled = false;
|
if (startBtn) startBtn.disabled = false;
|
||||||
|
|
||||||
// Stop multi-agent stream
|
// Stop multi-agent stream
|
||||||
|
|||||||
Reference in New Issue
Block a user