(filePath)
| 13387 | |
| 13388 | // Show progress section |
| 13389 | document.getElementById('scan-progress').classList.remove('hidden'); |
| 13390 | |
| 13391 | // Start immediate scan |
| 13392 | await performCombinedNetworkScan(); |
| 13393 | |
| 13394 | // Set up interval for continuous scanning |
| 13395 | enhancedNetworkScanInterval = setInterval(async () => { |
| 13396 | if (isEnhancedRealTimeScanning) { |
| 13397 | await performCombinedNetworkScan(); |
| 13398 | } |
| 13399 | }, 15000); // Scan every 15 seconds (ARP background scanning is every 10 seconds) |
| 13400 | |
| 13401 | addConsoleMessage('Enhanced real-time network scanning started', 'info'); |
| 13402 | |
| 13403 | } catch (error) { |
| 13404 | console.error('Error starting enhanced real-time scan:', error); |
| 13405 | addConsoleMessage('Failed to start network scan: ' + error.message, 'error'); |
| 13406 | resetEnhancedScanButtons(); |
| 13407 | } |
| 13408 | } |
| 13409 | |
| 13410 | async function stopEnhancedRealTimeScan() { |
| 13411 | const stopBtn = document.getElementById('stop-network-scan'); |
| 13412 | const startBtn = document.getElementById('start-network-scan'); |
| 13413 | |
| 13414 | if (enhancedNetworkScanInterval) { |
| 13415 | clearInterval(enhancedNetworkScanInterval); |
| 13416 | enhancedNetworkScanInterval = null; |
| 13417 | } |
| 13418 | |
| 13419 | isEnhancedRealTimeScanning = false; |
| 13420 | |
| 13421 | if (stopBtn && startBtn) { |
| 13422 | addConsoleMessage('Stopping enhanced network scan...', 'info'); |
| 13423 | resetEnhancedScanButtons(); |
| 13424 | } |
| 13425 | } |
| 13426 | |
| 13427 | function resetEnhancedScanButtons() { |
| 13428 | const startBtn = document.getElementById('start-network-scan'); |
| 13429 | const stopBtn = document.getElementById('stop-network-scan'); |
| 13430 | |
| 13431 | if (startBtn && stopBtn) { |
| 13432 | startBtn.disabled = false; |
| 13433 | stopBtn.disabled = true; |
| 13434 | isEnhancedRealTimeScanning = false; |
| 13435 | document.getElementById('scan-progress').classList.add('hidden'); |
| 13436 | } |
| 13437 | } |
| 13438 | |
| 13439 | async function performCombinedNetworkScan() { |
| 13440 | try { |
| 13441 | const data = await fetchAPI('/api/scan/combined-network'); |
| 13442 | |
| 13443 | if (data.success) { |
| 13444 | updateNetworkTableWithScanData(data); |
| 13445 | addConsoleMessage(`Network scan found ${data.count} hosts (ARP: ${data.arp_count}, Nmap: ${data.nmap_count})`, 'success'); |
| 13446 | } else { |
nothing calls this directly
no test coverage detected