luci/modules/admin-full/luasrc/view/admin_network/iface_status.htm
2010-11-17 15:23:21 +00:00

96 lines
2.8 KiB
HTML

<%+cbi/valueheader%>
<script type="text/javascript"><![CDATA[
var iwxhr = new XHR();
var update_status = function() {
iwxhr.get('<%=luci.dispatcher.build_url("admin", "network", "iface_status", self.network)%>', null,
function(x, ifc)
{
if (ifc && (ifc = ifc[0]))
{
var is_up = (ifc.flags && ifc.flags.up);
var rxb = ifc.stats ? (ifc.stats["rx_bytes"] / 1024) : 0;
var txb = ifc.stats ? (ifc.stats["tx_bytes"] / 1024) : 0;
var rxp = ifc.stats ? ifc.stats["rx_packets"] : 0;
var txp = ifc.stats ? ifc.stats["tx_packets"] : 0;
var mac = ifc.macaddr ? ifc.macaddr : '00:00:00:00:00:00';
var icon;
if (is_up)
icon = "<%=resource%>/icons/ethernet.png";
else
icon = "<%=resource%>/icons/ethernet_disabled.png";
var s = document.getElementById('<%=self.option%>-ifc-signal');
if (s)
s.innerHTML = String.format(
'<img src="%s" style="width:16px; height:16px" /><br />' +
'<small>%s</small>', icon, ifc.ifname ? ifc.ifname : '?'
);
var d = document.getElementById('<%=self.option%>-ifc-description');
if (d && ifc.ifname)
{
d.innerHTML = String.format(
'<strong><%:MAC Address%>:</strong> %s<br />' +
'<strong><%:RX%></strong>: %.2f <%:KB%> (%d <%:Pkts.%>)<br />' +
'<strong><%:TX%></strong>: %.2f <%:KB%> (%d <%:Pkts.%>)<br />',
mac, rxb, rxp, txb, txp
);
if (ifc.ipaddrs && ifc.ipaddrs.length)
{
d.innerHTML += '<strong><%:IPv4%>: </strong>';
for (var i = 0; i < ifc.ipaddrs.length; i++)
d.innerHTML += String.format(
'%s%s/%d',
i ? ', ' : '',
ifc.ipaddrs[i].addr,
ifc.ipaddrs[i].prefix
);
d.innerHTML += '<br />';
}
if (ifc.ip6addrs && ifc.ip6addrs.length)
{
d.innerHTML += '<strong><%:IPv6%>: </strong>';
for (var i = 0; i < ifc.ip6addrs.length; i++)
d.innerHTML += String.format(
'%s%s/%d',
i ? ', ' : '',
ifc.ip6addrs[i].addr.toUpperCase(),
ifc.ip6addrs[i].prefix
);
d.innerHTML += '<br />';
}
}
else if (d)
d.innerHTML = '<%:Interface not present or not connected yet.%>';
}
window.setTimeout(update_status, 5000);
}
)
};
update_status();
]]></script>
<table>
<tr class="cbi-section-table">
<td></td>
<td class="cbi-value-field" style="width:16px; padding:3px; text-align:center" id="<%=self.option%>-ifc-signal">
<img src="<%=resource%>/icons/ethernet_disabled.png" style="width:16px; height:16px" /><br />
<small>?</small>
</td>
<td class="cbi-value-field" style="vertical-align:middle; text-align:left; padding:3px" id="<%=self.option%>-ifc-description">
<em><%:Collecting data...%></em>
</td>
</tr>
</table>
<%+cbi/valuefooter%>