modules/admin-full: xhr fixes
[project/luci.git] / modules / admin-full / luasrc / view / admin_network / lease_status.htm
1 <script type="text/javascript"><![CDATA[
2 var stxhr = new XHR();
3 var update_status = function() {
4 stxhr.get('<%=luci.dispatcher.build_url("admin", "network", "dhcplease_status")%>', null,
5 function(x, st)
6 {
7 var tb = document.getElementById('lease_status_table');
8 if (st && tb)
9 {
10 /* clear all rows */
11 while( tb.rows.length > 1 )
12 tb.rows[1].parentNode.removeChild(tb.rows[1]);
13
14 for( var i = 0; i < st.length; i++ )
15 {
16 var timestr;
17
18 if (st[i].expires <= 0)
19 {
20 timestr = '<em><%:expired%></em>';
21 }
22 else
23 {
24 var d = 0;
25 var h = 0;
26 var m = 0;
27 var s = st[i].expires;
28
29 if (s > 60) {
30 m = Math.floor(s / 60);
31 s = (s % 60);
32 }
33
34 if (m > 60) {
35 h = Math.floor(m / 60);
36 m = (m % 60);
37 }
38
39 if (h > 24) {
40 d = Math.floor(h / 24);
41 h = (h % 24);
42 }
43
44 timestr = (d > 0)
45 ? String.format('%dd %dh %dm %ds', d, h, m, s)
46 : String.format('%dh %dm %ds', h, m, s);
47 }
48
49 var tr = document.createElement('tr');
50 tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1);
51
52 tr.innerHTML = String.format(
53 '<td class="cbi-section-table-cell">%s</td>' +
54 '<td class="cbi-section-table-cell">%s</td>' +
55 '<td class="cbi-section-table-cell">%s</td>' +
56 '<td class="cbi-section-table-cell">%s</td>',
57 st[i].hostname ? st[i].hostname : '?',
58 st[i].ipaddr,
59 st[i].macaddr,
60 timestr
61 );
62
63 tb.rows[0].parentNode.appendChild(tr);
64 }
65
66 if( tb.rows.length == 1 )
67 {
68 var tr = document.createElement('tr');
69 tr.className = 'cbi-section-table-row';
70 tr.innerHTML = '<td colspan="4"><em><br /><%:There are no active leases.%></em></td>';
71
72 tb.rows[0].parentNode.appendChild(tr);
73 }
74 }
75
76 window.setTimeout(update_status, 5000);
77 }
78 )
79 };
80
81 update_status();
82 ]]></script>
83
84 <fieldset class="cbi-section">
85 <legend><%:Active Leases%></legend>
86 <table class="cbi-section-table" id="lease_status_table">
87 <tr class="cbi-section-table-titles">
88 <th class="cbi-section-table-cell"><%:Hostname%></th>
89 <th class="cbi-section-table-cell"><%:IPv4-Address%></th>
90 <th class="cbi-section-table-cell"><%:MAC-Address%></th>
91 <th class="cbi-section-table-cell"><%:Leasetime remaining%></th>
92 </tr>
93 <tr class="cbi-section-table-row">
94 <td colspan="4"><em><br /><%:Collecting data...%></em></td>
95 </tr>
96 </table>
97 </fieldset>