44682206b7b987190023cb05f893ab840d14c7c7
[oweals/luci.git] / applications / luci-app-banip / luasrc / view / banip / runtime.htm
1 <%#
2 Copyright 2018-2019 Dirk Brenken (dev@brenken.org)
3 This is free software, licensed under the Apache License, Version 2.0
4 -%>
5
6 <%+banip/banip_css%>
7 <script type="text/javascript">
8 //<![CDATA[
9         function status_update(json)
10         {
11                         var btn1         = document.getElementById("btn1");
12                         var btn1_running = document.getElementById("btn1_running");
13                         var btn2         = document.getElementById("btn2");
14                         var btn2_running = document.getElementById("btn2_running");
15                         var view         = document.getElementById("value_1");
16                         var input        = json.data.status;
17
18                         btn1.value = "<%:Refresh%>";
19                         btn1.name  = "do_refresh";
20
21                         btn2.value = "<%:Reload%>";
22                         btn2.name  = "do_reload";
23                         view.innerHTML = input || "-";
24                         if (input != "running")
25                         {
26                                 btn1.disabled = false;
27                                 running(btn1_running, 0);
28                                 btn2.disabled = false;
29                                 running(btn2_running, 0);
30                         }
31                         view = document.getElementById("value_2");
32                         input = json.data.version;
33                         view.innerHTML = input || "-";
34                         view = document.getElementById("value_3");
35                         input = json.data.fetch_info;
36                         view.innerHTML = input || "-";
37                         view = document.getElementById("value_4");
38                         input = json.data.ipset_info;
39                         view.innerHTML = input || "-";
40                         view = document.getElementById("value_5");
41                         input = json.data.backup_dir;
42                         view.innerHTML = input || "-";
43                         view = document.getElementById("value_6");
44                         input = json.data.last_run;
45                         view.innerHTML = input || "-";
46         }
47
48 function btn_action(action)
49         {
50                 var btn1 = document.getElementById("btn1");
51                 var btn1_running = document.getElementById("btn1_running");
52                 var btn2 = document.getElementById("btn2");
53                 var btn2_running = document.getElementById("btn2_running");
54
55                 if (action.name === "do_refresh")
56                 {
57                         btn1.disabled = true;
58                         btn2.disabled = true;
59                         running(btn1_running, 1);
60                 }
61                 else if (action.name === "do_reload")
62                 {
63                         btn1.disabled = true;
64                         btn2.disabled = true;
65                         running(btn2_running, 1);
66                 }
67                 new XHR.get('<%=luci.dispatcher.build_url("admin", "services", "banip")%>/action/' + action.name, null,
68                 function(x)
69                 {
70                         if (!x)
71                         {
72                                 return;
73                         }
74                 });
75         }
76
77         function running(element, state)
78         {
79                 if (state === 1)
80                 {
81                         var running_html = '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" width="16" height="16" style="vertical-align:middle" />';
82                         element.innerHTML = running_html;
83                 }
84                 else
85                 {
86                         element.innerHTML = '';
87                 }
88         }
89
90         XHR.get('<%=luci.dispatcher.build_url("admin", "services", "banip", "status")%>', null,
91         function(x, json_info)
92         {
93                 if (!x || !json_info)
94                 {
95                         return;
96                 }
97                 status_update(json_info)
98         });
99
100         XHR.poll(-1, '<%=luci.dispatcher.build_url("admin", "services", "banip", "status")%>', null,
101         function(x, json_info)
102         {
103                 if (!x || !json_info)
104                 {
105                         return;
106                 }
107                 status_update(json_info)
108         });
109 //]]>
110 </script>
111
112 <h3><%:Runtime Information%></h3>
113 <div class="cbi-value" id="status_1">
114         <label class="cbi-value-title" for="status_1"><%:banIP Status%></label>
115         <div class="cbi-value-field">
116                 <span class="runtime" id="value_1">-</span>
117         </div>
118 </div>
119 <div class="cbi-value" id="status_2">
120         <label class="cbi-value-title" for="status_2"><%:banIP Version%></label>
121         <div class="cbi-value-field">
122                 <span class="runtime" id="value_2">-</span>
123         </div>
124 </div>
125 <div class="cbi-value" id="status_3">
126         <label class="cbi-value-title" for="status_3"><%:Download Utility (SSL Library)%></label>
127         <div class="cbi-value-field">
128                 <span class="runtime" id="value_3">-</span>
129         </div>
130 </div>
131 <div class="cbi-value" id="status_4">
132         <label class="cbi-value-title" for="status_4"><%:IPSet Information%></label>
133         <div class="cbi-value-field">
134                 <span class="runtime" id="value_4">-</span>
135         </div>
136 </div>
137 <div class="cbi-value" id="status_5">
138         <label class="cbi-value-title" for="status_5"><%:Backup Directory%></label>
139         <div class="cbi-value-field">
140                 <span class="runtime" id="value_5">-</span>
141         </div>
142 </div>
143 <div class="cbi-value" id="status_6">
144         <label class="cbi-value-title" for="status_6"><%:Last Run%></label>
145         <div class="cbi-value-field">
146                 <span class="runtime" id="value_6">-</span>
147         </div>
148 </div>
149 <hr />
150 <div class="cbi-value" id="button_1">
151         <label class="cbi-value-title" for="button_1"><%:Refresh IPSets%></label>
152         <div class="cbi-value-field">
153                 <input class="cbi-button cbi-button-apply" id="btn1" type="button" name="do_refresh" value="<%:Refresh%>" onclick="btn_action(this)" />
154                 <span id="btn1_running" class="btn_running"></span>
155         </div>
156 </div>
157 <div class="cbi-value" id="button_2">
158         <label class="cbi-value-title" for="button_2"><%:Reload IPSet Sources%></label>
159         <div class="cbi-value-field">
160                 <input class="cbi-button cbi-button-reset" id="btn2" type="button" name="do_reload" value="<%:Reload%>" onclick="btn_action(this)" />
161                 <span id="btn2_running" class="btn_running"></span>
162         </div>
163 </div>
164