modules/admin-core, modules/admin-full: implement display support for dnsmasq dhcpv6...
[project/luci.git] / modules / admin-full / luasrc / view / admin_network / lease_status.htm
index 519b63e..0ba334e 100644 (file)
@@ -1,60 +1,94 @@
 <script type="text/javascript">//<![CDATA[
-       var stxhr = new XHR();
+       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)
+                       {
+                               /* clear all rows */
+                               while( tb.rows.length > 1 )
+                                       tb.deleteRow(1);
 
-       (function() {
-               var func = arguments.callee;
+                               for( var i = 0; i < st[0].length; i++ )
+                               {
+                                       var timestr;
 
-               stxhr.get('<%=luci.dispatcher.build_url("admin", "network", "dhcplease_status")%>', null,
-                       function(x, st)
+                                       if (st[0][i].expires <= 0)
+                                       {
+                                               timestr = '<em><%:expired%></em>';
+                                       }
+                                       else
+                                       {
+                                               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>';
+                               }
+                       }
+
+                       var tb6 = document.getElementById('lease6_status_table');
+                       if (st && st[1] && tb6)
                        {
-                               var tb = document.getElementById('lease_status_table');
-                               if (st && tb)
+                               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++ )
                                {
-                                       /* clear all rows */
-                                       while( tb.rows.length > 1 )
-                                               tb.deleteRow(1);
+                                       var timestr;
 
-                                       for( var i = 0; i < st.length; i++ )
+                                       if (st[1][i].expires <= 0)
                                        {
-                                               var timestr;
-
-                                               if (st[i].expires <= 0)
-                                               {
-                                                       timestr = '<em><%:expired%></em>';
-                                               }
-                                               else
-                                               {
-                                                       timestr = String.format('%t', st[i].expires);
-                                               }
-
-                                               var tr = tb.insertRow(-1);
-                                                       tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1);
-
-                                               tr.insertCell(-1).innerHTML = st[i].hostname ? st[i].hostname : '?';
-                                               tr.insertCell(-1).innerHTML = st[i].ipaddr;
-                                               tr.insertCell(-1).innerHTML = st[i].macaddr;
-                                               tr.insertCell(-1).innerHTML = timestr;
+                                               timestr = '<em><%:expired%></em>';
                                        }
-
-                                       if( tb.rows.length == 1 )
+                                       else
                                        {
-                                               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>';
+                                               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;
                                }
 
-                               window.setTimeout(func, 5000);
+                               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>
                </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>