modules/admin-full: properly handle disabled radios in live overview
This commit is contained in:
parent
b9c9b7ffeb
commit
97e27a0bcf
2 changed files with 43 additions and 20 deletions
|
@ -224,14 +224,15 @@ end
|
||||||
|
|
||||||
function wifi_status()
|
function wifi_status()
|
||||||
local path = luci.dispatcher.context.requestpath
|
local path = luci.dispatcher.context.requestpath
|
||||||
|
local arp = luci.sys.net.arptable()
|
||||||
local rv = { }
|
local rv = { }
|
||||||
|
|
||||||
local dev
|
local dev
|
||||||
for dev in path[#path]:gmatch("[%w%.%-]+") do
|
for dev in path[#path]:gmatch("[%w%.%-]+") do
|
||||||
|
local j = { id = dev }
|
||||||
local iw = luci.sys.wifi.getiwinfo(dev)
|
local iw = luci.sys.wifi.getiwinfo(dev)
|
||||||
if iw then
|
if iw then
|
||||||
local f
|
local f
|
||||||
local j = { id = dev }
|
|
||||||
for _, f in ipairs({
|
for _, f in ipairs({
|
||||||
"channel", "frequency", "txpower", "bitrate", "signal", "noise",
|
"channel", "frequency", "txpower", "bitrate", "signal", "noise",
|
||||||
"quality", "quality_max", "mode", "ssid", "bssid", "country",
|
"quality", "quality_max", "mode", "ssid", "bssid", "country",
|
||||||
|
@ -239,9 +240,8 @@ function wifi_status()
|
||||||
}) do
|
}) do
|
||||||
j[f] = iw[f]
|
j[f] = iw[f]
|
||||||
end
|
end
|
||||||
|
|
||||||
rv[#rv+1] = j
|
|
||||||
end
|
end
|
||||||
|
rv[#rv+1] = j
|
||||||
end
|
end
|
||||||
|
|
||||||
if #rv > 0 then
|
if #rv > 0 then
|
||||||
|
|
|
@ -109,11 +109,14 @@ $Id$
|
||||||
while (assoctable.rows.length > 1)
|
while (assoctable.rows.length > 1)
|
||||||
assoctable.rows[1].parentNode.removeChild(assoctable.rows[1]);
|
assoctable.rows[1].parentNode.removeChild(assoctable.rows[1]);
|
||||||
|
|
||||||
|
var devup = { };
|
||||||
|
|
||||||
for( var i = 0; i < st.length; i++ )
|
for( var i = 0; i < st.length; i++ )
|
||||||
{
|
{
|
||||||
var iw = st[i];
|
var iw = st[i];
|
||||||
|
var is_assoc = (iw.bssid && iw.channel);
|
||||||
var p = (100 / iw.quality_max * iw.quality);
|
var p = (100 / iw.quality_max * iw.quality);
|
||||||
var q = (iw.bssid && iw.channel) ? p : -1;
|
var q = is_assoc ? p : -1;
|
||||||
|
|
||||||
var icon;
|
var icon;
|
||||||
if (q < 0)
|
if (q < 0)
|
||||||
|
@ -129,6 +132,9 @@ $Id$
|
||||||
else
|
else
|
||||||
icon = "<%=resource%>/icons/signal-75-100.png";
|
icon = "<%=resource%>/icons/signal-75-100.png";
|
||||||
|
|
||||||
|
if (!devup[wifidevs[iw.id]])
|
||||||
|
devup[wifidevs[iw.id]] = is_assoc;
|
||||||
|
|
||||||
var sig = document.getElementById(iw.id + '-iw-signal');
|
var sig = document.getElementById(iw.id + '-iw-signal');
|
||||||
if (sig)
|
if (sig)
|
||||||
sig.innerHTML = String.format(
|
sig.innerHTML = String.format(
|
||||||
|
@ -138,6 +144,8 @@ $Id$
|
||||||
|
|
||||||
var info = document.getElementById(iw.id + '-iw-status');
|
var info = document.getElementById(iw.id + '-iw-status');
|
||||||
if (info)
|
if (info)
|
||||||
|
{
|
||||||
|
if (is_assoc)
|
||||||
info.innerHTML = String.format(
|
info.innerHTML = String.format(
|
||||||
'<strong><%:SSID%>:</strong> %s | ' +
|
'<strong><%:SSID%>:</strong> %s | ' +
|
||||||
'<strong><%:Mode%>:</strong> %s<br />' +
|
'<strong><%:Mode%>:</strong> %s<br />' +
|
||||||
|
@ -146,9 +154,14 @@ $Id$
|
||||||
iw.ssid, iw.mode, iw.bssid,
|
iw.ssid, iw.mode, iw.bssid,
|
||||||
iw.encryption ? iw.encryption.description : '<%:None%>'
|
iw.encryption ? iw.encryption.description : '<%:None%>'
|
||||||
);
|
);
|
||||||
|
else
|
||||||
|
info.innerHTML = '<em><%:Wireless is disabled or not associated%></em>';
|
||||||
|
}
|
||||||
|
|
||||||
var dev = document.getElementById(wifidevs[iw.id] + '-iw-devinfo');
|
var dev = document.getElementById(wifidevs[iw.id] + '-iw-devinfo');
|
||||||
if (dev)
|
if (dev)
|
||||||
|
{
|
||||||
|
if (is_assoc)
|
||||||
dev.innerHTML = String.format(
|
dev.innerHTML = String.format(
|
||||||
'<strong><%:Channel%>:</strong> %s (%s GHz) | ' +
|
'<strong><%:Channel%>:</strong> %s (%s GHz) | ' +
|
||||||
'<strong><%:Bitrate%>:</strong> %s Mb/s',
|
'<strong><%:Bitrate%>:</strong> %s Mb/s',
|
||||||
|
@ -156,6 +169,9 @@ $Id$
|
||||||
iw.frequency ? iw.frequency / 1000 : '?',
|
iw.frequency ? iw.frequency / 1000 : '?',
|
||||||
iw.bitrate ? iw.bitrate / 1000 : '?'
|
iw.bitrate ? iw.bitrate / 1000 : '?'
|
||||||
);
|
);
|
||||||
|
else
|
||||||
|
dev.innerHTML = '';
|
||||||
|
}
|
||||||
|
|
||||||
if (assoctable)
|
if (assoctable)
|
||||||
{
|
{
|
||||||
|
@ -218,6 +234,13 @@ $Id$
|
||||||
|
|
||||||
assoctable.rows[0].parentNode.appendChild(tr);
|
assoctable.rows[0].parentNode.appendChild(tr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (var dev in devup)
|
||||||
|
{
|
||||||
|
var img = document.getElementById(dev + '-iw-upstate');
|
||||||
|
if (img)
|
||||||
|
img.src = '<%=resource%>/icons/wifi' + (devup[dev] ? '' : '_disabled') + '.png';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -236,7 +259,7 @@ $Id$
|
||||||
<table class="cbi-section-table" style="margin:10px; empty-cells:hide">
|
<table class="cbi-section-table" style="margin:10px; empty-cells:hide">
|
||||||
<!-- physical device -->
|
<!-- physical device -->
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:34px"><img src="<%=resource%>/icons/wifi<%=dev:is_up() and "" or "_disabled"%>.png" style="float:left; margin-right:10px" /></td>
|
<td style="width:34px"><img src="<%=resource%>/icons/wifi_disabled.png" style="float:left; margin-right:10px" id="<%=dev:name()%>-iw-upstate" /></td>
|
||||||
<td colspan="2" style="text-align:left">
|
<td colspan="2" style="text-align:left">
|
||||||
<big><strong><%=guess_wifi_hw(dev:name())%> (<%=dev:name()%>)</strong></big><br />
|
<big><strong><%=guess_wifi_hw(dev:name())%> (<%=dev:name()%>)</strong></big><br />
|
||||||
<span id="<%=dev:name()%>-iw-devinfo"></span>
|
<span id="<%=dev:name()%>-iw-devinfo"></span>
|
||||||
|
|
Loading…
Reference in a new issue