-<script type="text/javascript"><![CDATA[
- var stxhr = new XHR();
- (function() {
- stxhr.get('<%=luci.dispatcher.build_url("admin", "network", "dhcplease_status")%>', null,
- function(x)
+<script type="text/javascript">//<![CDATA[
+ XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "dhcplease_status")%>', null,
+ function(x, st)
+ {
+ var tb = document.getElementById('lease_status_table');
+ if (st && st[0] && tb)
{
- var st = x.responseText ? eval('(' + x.responseText + ')') : null;
- var tb = document.getElementById('lease_status_table');
+ /* clear all rows */
+ while( tb.rows.length > 1 )
+ tb.deleteRow(1);
- if (st && tb)
+ for( var i = 0; i < st[0].length; i++ )
{
- /* clear all rows */
- while( tb.rows.length > 1 )
- tb.rows[1].parentNode.removeChild(tb.rows[1]);
+ var timestr;
- for( var i = 0; i < st.length; i++ )
+ if (st[0][i].expires <= 0)
{
- var timestr;
-
- if (st[i].expires <= 0)
- {
- timestr = '<em><%:expired%></em>';
- }
- else
- {
- var d = 0;
- var h = 0;
- var m = 0;
- var s = st[i].expires;
-
- if (s > 60) {
- m = Math.floor(s / 60);
- s = (s % 60);
- }
-
- if (m > 60) {
- h = Math.floor(m / 60);
- m = (m % 60);
- }
-
- if (h > 24) {
- d = Math.floor(h / 24);
- h = (h % 24);
- }
-
- timestr = (d > 0)
- ? String.format('%dd %dh %dm %ds', d, h, m, s)
- : String.format('%dh %dm %ds', h, m, s);
- }
-
- var tr = document.createElement('tr');
- tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1);
-
- tr.innerHTML = String.format(
- '<td class="cbi-section-table-cell">%s</td>' +
- '<td class="cbi-section-table-cell">%s</td>' +
- '<td class="cbi-section-table-cell">%s</td>' +
- '<td class="cbi-section-table-cell">%s</td>',
- st[i].hostname ? st[i].hostname : '?',
- st[i].ipaddr,
- st[i].macaddr,
- timestr
- );
-
- tb.rows[0].parentNode.appendChild(tr);
+ timestr = '<em><%:expired%></em>';
}
-
- if( tb.rows.length == 1 )
+ else
{
- var tr = document.createElement('tr');
- tr.className = 'cbi-section-table-row';
- tr.innerHTML = '<td colspan="5"><em><br /><%:There are no active leases.%></em></td>';
-
- tb.rows[0].parentNode.appendChild(tr);
+ timestr = String.format('%t', st[0][i].expires);
}
+
+ var tr = tb.insertRow(-1);
+ tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1);
+
+ tr.insertCell(-1).innerHTML = st[0][i].hostname ? st[0][i].hostname : '?';
+ tr.insertCell(-1).innerHTML = st[0][i].ipaddr;
+ tr.insertCell(-1).innerHTML = st[0][i].macaddr;
+ tr.insertCell(-1).innerHTML = timestr;
+ }
+
+ if( tb.rows.length == 1 )
+ {
+ var tr = tb.insertRow(-1);
+ tr.className = 'cbi-section-table-row';
+
+ var td = tr.insertCell(-1);
+ td.colSpan = 4;
+ td.innerHTML = '<em><br /><%:There are no active leases.%></em>';
}
}
- )
- window.setTimeout(arguments.callee, 5000);
- })();
-]]></script>
+ var tb6 = document.getElementById('lease6_status_table');
+ if (st && st[1] && tb6)
+ {
+ tb6.parentNode.style.display = 'block';
+
+ /* clear all rows */
+ while( tb6.rows.length > 1 )
+ tb6.deleteRow(1);
+
+ for( var i = 0; i < st[1].length; i++ )
+ {
+ var timestr;
+
+ if (st[1][i].expires <= 0)
+ {
+ timestr = '<em><%:expired%></em>';
+ }
+ else
+ {
+ timestr = String.format('%t', st[1][i].expires);
+ }
+
+ var tr = tb6.insertRow(-1);
+ tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1);
+
+ tr.insertCell(-1).innerHTML = st[1][i].hostname ? st[1][i].hostname : '?';
+ tr.insertCell(-1).innerHTML = st[1][i].ip6addr;
+ tr.insertCell(-1).innerHTML = st[1][i].duid;
+ tr.insertCell(-1).innerHTML = timestr;
+ }
+
+ if( tb6.rows.length == 1 )
+ {
+ var tr = tb6.insertRow(-1);
+ tr.className = 'cbi-section-table-row';
+
+ var td = tr.insertCell(-1);
+ td.colSpan = 4;
+ td.innerHTML = '<em><br /><%:There are no active leases.%></em>';
+ }
+ }
+ }
+ );
+//]]></script>
<fieldset class="cbi-section">
- <legend><%:Active Leases%></legend>
+ <legend><%:Active DHCP Leases%></legend>
<table class="cbi-section-table" id="lease_status_table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell"><%:Hostname%></th>
<th class="cbi-section-table-cell"><%:Leasetime remaining%></th>
</tr>
<tr class="cbi-section-table-row">
- <td colspan="5"><em><br /><%:Collecting data...%></em></td>
+ <td colspan="4"><em><br /><%:Collecting data...%></em></td>
+ </tr>
+ </table>
+</fieldset>
+
+<fieldset class="cbi-section" style="display:none">
+ <legend><%:Active DHCPv6 Leases%></legend>
+ <table class="cbi-section-table" id="lease6_status_table">
+ <tr class="cbi-section-table-titles">
+ <th class="cbi-section-table-cell"><%:Hostname%></th>
+ <th class="cbi-section-table-cell"><%:IPv6-Address%></th>
+ <th class="cbi-section-table-cell"><%:DUID%></th>
+ <th class="cbi-section-table-cell"><%:Leasetime remaining%></th>
+ </tr>
+ <tr class="cbi-section-table-row">
+ <td colspan="4"><em><br /><%:Collecting data...%></em></td>
</tr>
</table>
</fieldset>