summaryrefslogtreecommitdiffhomepage
path: root/modules/admin-full/luasrc
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2012-08-17 15:06:46 +0000
committerJo-Philipp Wich <jow@openwrt.org>2012-08-17 15:06:46 +0000
commitdce04bbcb2b2b41898281ed5de0622705bf17b1e (patch)
treeb8428d52f69ac79dc4a7c6ae4fd8cf0741411477 /modules/admin-full/luasrc
parent044b011051086b9cb845e497c0a620cdecd038a6 (diff)
modules/admin-core, modules/admin-full: implement display support for dnsmasq dhcpv6 leases
Diffstat (limited to 'modules/admin-full/luasrc')
-rw-r--r--modules/admin-full/luasrc/controller/admin/network.lua4
-rw-r--r--modules/admin-full/luasrc/view/admin_network/lease_status.htm73
-rw-r--r--modules/admin-full/luasrc/view/admin_status/index.htm55
3 files changed, 124 insertions, 8 deletions
diff --git a/modules/admin-full/luasrc/controller/admin/network.lua b/modules/admin-full/luasrc/controller/admin/network.lua
index 85d7b18dd5..00e1fe2ff1 100644
--- a/modules/admin-full/luasrc/controller/admin/network.lua
+++ b/modules/admin-full/luasrc/controller/admin/network.lua
@@ -410,7 +410,11 @@ function lease_status()
local s = require "luci.tools.status"
luci.http.prepare_content("application/json")
+ luci.http.write('[')
luci.http.write_json(s.dhcp_leases())
+ luci.http.write(',')
+ luci.http.write_json(s.dhcp6_leases())
+ luci.http.write(']')
end
function diag_command(cmd)
diff --git a/modules/admin-full/luasrc/view/admin_network/lease_status.htm b/modules/admin-full/luasrc/view/admin_network/lease_status.htm
index bf5a5c2677..0ba334ee9d 100644
--- a/modules/admin-full/luasrc/view/admin_network/lease_status.htm
+++ b/modules/admin-full/luasrc/view/admin_network/lease_status.htm
@@ -3,31 +3,31 @@
function(x, st)
{
var tb = document.getElementById('lease_status_table');
- if (st && tb)
+ if (st && st[0] && tb)
{
/* clear all rows */
while( tb.rows.length > 1 )
tb.deleteRow(1);
- for( var i = 0; i < st.length; i++ )
+ for( var i = 0; i < st[0].length; i++ )
{
var timestr;
- if (st[i].expires <= 0)
+ if (st[0][i].expires <= 0)
{
timestr = '<em><%:expired%></em>';
}
else
{
- timestr = String.format('%t', st[i].expires);
+ 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[i].hostname ? st[i].hostname : '?';
- tr.insertCell(-1).innerHTML = st[i].ipaddr;
- tr.insertCell(-1).innerHTML = st[i].macaddr;
+ 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;
}
@@ -41,12 +41,54 @@
td.innerHTML = '<em><br /><%:There are no active leases.%></em>';
}
}
+
+ 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>
@@ -59,3 +101,18 @@
</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>
diff --git a/modules/admin-full/luasrc/view/admin_status/index.htm b/modules/admin-full/luasrc/view/admin_status/index.htm
index 4f2a651a5d..003ec31031 100644
--- a/modules/admin-full/luasrc/view/admin_status/index.htm
+++ b/modules/admin-full/luasrc/view/admin_status/index.htm
@@ -50,6 +50,7 @@ $Id$
connmax = conn_max,
conncount = conn_count,
leases = luci.tools.status.dhcp_leases(),
+ leases6 = luci.tools.status.dhcp6_leases(),
wifinets = luci.tools.status.wifi_networks()
}
@@ -248,6 +249,44 @@ $Id$
td.innerHTML = '<em><br /><%:There are no active leases.%></em>';
}
}
+
+ var ls6 = document.getElementById('lease6_status_table');
+ if (ls6 && info.leases6)
+ {
+ ls6.parentNode.style.display = 'block';
+
+ /* clear all rows */
+ while( ls6.rows.length > 1 )
+ ls6.rows[0].parentNode.deleteRow(1);
+
+ for( var i = 0; i < info.leases6.length; i++ )
+ {
+ var timestr;
+
+ if (info.leases6[i].expires <= 0)
+ timestr = '<em><%:expired%></em>';
+ else
+ timestr = String.format('%t', info.leases6[i].expires);
+
+ var tr = ls6.rows[0].parentNode.insertRow(-1);
+ tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1);
+
+ tr.insertCell(-1).innerHTML = info.leases6[i].hostname ? info.leases6[i].hostname : '?';
+ tr.insertCell(-1).innerHTML = info.leases6[i].ip6addr;
+ tr.insertCell(-1).innerHTML = info.leases6[i].duid;
+ tr.insertCell(-1).innerHTML = timestr;
+ }
+
+ if( ls6.rows.length == 1 )
+ {
+ var tr = ls6.rows[0].parentNode.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>';
+ }
+ }
<% end %>
<% if has_wifi then %>
@@ -532,6 +571,22 @@ $Id$
</tr>
</table>
</fieldset>
+
+<fieldset class="cbi-section" style="display:none">
+ <legend><%: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>
<% end %>
<% if has_wifi then %>