()
| 18197 | } else { |
| 18198 | interfaceSelect.innerHTML = '<option value="wlan0">wlan0 (default)</option>'; |
| 18199 | selectionApplied = true; |
| 18200 | } |
| 18201 | |
| 18202 | if (!selectionApplied && interfaceSelect.options.length > 0) { |
| 18203 | interfaceSelect.options[0].selected = true; |
| 18204 | } |
| 18205 | |
| 18206 | setSelectedWifiInterface(interfaceSelect.value || null, { skipRefresh: true }); |
| 18207 | |
| 18208 | interfaceSelect.removeEventListener('change', handleWifiInterfaceChange); |
| 18209 | interfaceSelect.addEventListener('change', handleWifiInterfaceChange); |
| 18210 | |
| 18211 | renderWifiInterfaceSwitch((data && data.interfaces) || []); |
| 18212 | } catch (error) { |
| 18213 | console.error('Error loading Wi-Fi interfaces:', error); |
| 18214 | const interfaceSelect = document.getElementById('wifi-interface-select'); |
| 18215 | if (interfaceSelect) { |
| 18216 | interfaceSelect.innerHTML = '<option value="wlan0">wlan0 (default)</option>'; |
| 18217 | } |
| 18218 | setWifiInterfaceMetadata([]); |
| 18219 | renderWifiInterfaceSwitch([]); |
| 18220 | } |
| 18221 | } |
| 18222 | |
| 18223 | async function scanWifiNetworks() { |
| 18224 | const scanBtn = document.getElementById('scan-wifi-btn'); |
| 18225 | const networksList = document.getElementById('wifi-networks-list'); |
| 18226 | |
| 18227 | if (!networksList) return; |
| 18228 | const interfaceName = getActiveWifiInterface(); |
| 18229 | const hasNetworkEntries = (payload) => { |
| 18230 | if (!payload) return false; |
| 18231 | if (Array.isArray(payload.available) && payload.available.length > 0) { |
| 18232 | return true; |
| 18233 | } |
| 18234 | if (Array.isArray(payload.networks) && payload.networks.length > 0) { |
| 18235 | return true; |
| 18236 | } |
| 18237 | return false; |
| 18238 | }; |
| 18239 | const applyInterfaceContext = (payload) => { |
| 18240 | if (payload && interfaceName && !payload.interface) { |
| 18241 | payload.interface = interfaceName; |
| 18242 | } |
| 18243 | return payload; |
| 18244 | }; |
| 18245 | let displayedFromScan = false; |
| 18246 | |
| 18247 | try { |
| 18248 | // Disable button and show scanning message |
| 18249 | if (scanBtn) { |
| 18250 | scanBtn.disabled = true; |
| 18251 | scanBtn.innerHTML = ` |
no test coverage detected