<%+cbi/valueheader%>
-<script type="text/javascript"><![CDATA[
+<script type="text/javascript">//<![CDATA[
var iwxhr = new XHR();
+
(function() {
+ var func = arguments.callee;
+
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 html = '';
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 : '?'
+ '<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px" />' +
+ '<br /><small>%s</small>',
+ ifc.type, ifc.is_up ? '' : '_disabled',
+ ifc.is_up ? ifc.ifname : '?'
);
var d = document.getElementById('<%=self.option%>-ifc-description');
- if (d && ifc.ifname)
+ if (d && ifc.ifname && ifc.macaddr != '00:00:00:00:00:00')
{
- 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.is_up)
+ {
+ html += String.format('<strong><%:Uptime%>:</strong> %t<br />', ifc.uptime);
+ }
+
+ if (ifc.type != 'tunnel')
+ {
+ html += String.format('<strong><%:MAC Address%>:</strong> %s<br />', ifc.macaddr);
+ }
+
+ html += String.format(
+ '<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />' +
+ '<strong><%:TX%></strong>: %.2mB (%d <%:Pkts.%>)<br />',
+ ifc.rx_bytes, ifc.rx_packets,
+ ifc.tx_bytes, ifc.tx_packets
);
if (ifc.ipaddrs && ifc.ipaddrs.length)
{
- d.innerHTML += '<strong><%:IPv4%>: </strong>';
+ html += '<strong><%:IPv4%>: </strong>';
for (var i = 0; i < ifc.ipaddrs.length; i++)
- d.innerHTML += String.format(
+ html += String.format(
'%s%s/%d',
i ? ', ' : '',
ifc.ipaddrs[i].addr,
ifc.ipaddrs[i].prefix
);
- d.innerHTML += '<br />';
+ html += '<br />';
}
if (ifc.ip6addrs && ifc.ip6addrs.length)
{
- d.innerHTML += '<strong><%:IPv6%>: </strong>';
+ html += '<strong><%:IPv6%>: </strong>';
for (var i = 0; i < ifc.ip6addrs.length; i++)
- d.innerHTML += String.format(
+ html += String.format(
'%s%s/%d',
i ? ', ' : '',
ifc.ip6addrs[i].addr.toUpperCase(),
ifc.ip6addrs[i].prefix
);
- d.innerHTML += '<br />';
+ html += '<br />';
}
+
+ d.innerHTML = html;
}
else if (d)
- d.innerHTML = '<%:Interface not present or not connected yet.%>';
+ {
+ d.innerHTML = '<em><%:Interface not present or not connected yet.%></em>';
+ }
}
+
+ window.setTimeout(func, 5000);
}
)
-
- window.setTimeout(arguments.callee, 5000);
})();
-]]></script>
+//]]></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">
+ <td class="cbi-value-field" style="min-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>