Add luci
[librecmc/librecmc.git] / package / luci / applications / luci-app-ocserv / luasrc / view / ocserv_status.htm
1 <script type="text/javascript">//<![CDATA[
2
3         function ocserv_disconnect(idx) {
4                 (new XHR()).post('<%=url('admin/services/ocserv/disconnect')%>/' + idx, { token: '<%=token%>' },
5                         function(x)
6                         {
7                                 var tb = document.getElementById('ocserv_status_table');
8                                 if (tb && (idx + 1 < tb.childNodes.length))
9                                         tb.removeChild(tb.childNodes[idx + 1]);
10                         }
11                 );
12         }
13
14         XHR.poll(5, '<%=url('admin/services/ocserv/status')%>', null,
15                 function(x, st)
16                 {
17                         var tb = document.getElementById('ocserv_status_table');
18                         if (st && tb)
19                         {
20                                 /* clear all rows */
21                                 while (tb.firstElementChild !== tb.lastElementChild)
22                                         tb.removeChild(tb.lastElementChild);
23
24                                 for (var i = 0; i < st.length; i++)
25                                 {
26                                         tb.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d">'.format((i % 2) + 1), [
27                                                 E('<div class="td">', st[i].user),
28                                                 E('<div class="td">', st[i].group),
29                                                 E('<div class="td">', st[i].vpn_ip),
30                                                 E('<div class="td">', st[i].ip),
31                                                 E('<div class="td">', st[i].device),
32                                                 E('<div class="td">', st[i].time),
33                                                 E('<div class="td">', st[i].cipher),
34                                                 E('<div class="td">', st[i].status),
35                                                 E('<div class="td">',
36                                                         E('<input class="cbi-button cbi-input-remove" type="button" value="<%:Disconnect%>" onclick="ocserv_disconnect(%d)" />'
37                                                                 .format(st[i].id)))
38                                         ]));
39                                 }
40
41                                 if (tb.firstElementChild === tb.lastElementChild)
42                                         tb.appendChild(E('<div class="tr cbi-section-table-row"><div class="td"><em><br /><%:There are no active users.%></em></div></div>'));
43                         }
44                 }
45         );
46 //]]></script>
47
48 <fieldset class="cbi-section">
49         <legend><%:Active OpenConnect Users%></legend>
50         <div class="table cbi-section-table" id="ocserv_status_table">
51                 <div class="tr cbi-section-table-titles">
52                         <div class="th cbi-section-table-cell"><%:User%></div>
53                         <div class="th cbi-section-table-cell"><%:Group%></div>
54                         <div class="th cbi-section-table-cell"><%:IP Address%></div>
55                         <div class="th cbi-section-table-cell"><%:VPN IP Address%></div>
56                         <div class="th cbi-section-table-cell"><%:Device%></div>
57                         <div class="th cbi-section-table-cell"><%:Time%></div>
58                         <div class="th cbi-section-table-cell"><%:Cipher%></div>
59                         <div class="th cbi-section-table-cell"><%:Status%></div>
60                         <div class="th cbi-section-table-cell">&#160;</div>
61                 </div>
62                 <div class="tr cbi-section-table-row">
63                         <div class="td" colspan="5"><em><br /><%:Collecting data...%></em></div>
64                 </div>
65         </div>
66 </fieldset>
67