()
| 4755 | document.getElementById('wifidef-at-clients-tbody').innerHTML = ''; |
| 4756 | } |
| 4757 | const roam = document.getElementById('wifidef-at-roam'); |
| 4758 | roam.innerHTML = (d.roaming && d.roaming.length) |
| 4759 | ? '<b class="text-gray-300">Roaming clients:</b> ' + d.roaming.map(r => |
| 4760 | `<span class="font-mono">${r.client}</span> (${r.reassoc + r.auth}×)`).join(', ') |
| 4761 | : ''; |
| 4762 | } |
| 4763 | |
| 4764 | // Clients from the last airtime scan, kept so the SSID filter can re-render. |
| 4765 | let _wifidefClients = []; |
| 4766 | |
| 4767 | function _wifidefClientRow(c) { |
| 4768 | const airCol = c.airtime_pct >= 20 ? 'text-orange-400' : 'text-gray-300'; |
| 4769 | const rate = c.rate_med != null ? `${c.rate_min}/${c.rate_med}/${c.rate_max}` : '—'; |
no outgoing calls
no test coverage detected