b5cf832913428da53217a5e789373e6cf307ff27
[oweals/luci.git] / applications / luci-app-adblock / luasrc / view / adblock / runtime.htm
1 <%#
2 Copyright 2017-2019 Dirk Brenken (dev@brenken.org)
3 This is free software, licensed under the Apache License, Version 2.0
4 -%>
5
6 <%+adblock/adblock_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 input        = json.data.adblock_status || "-";
16
17                 document.getElementById("value_1").innerHTML = input;
18                 if (input === "enabled")
19                 {
20                         btn1.value = "<%:Suspend%>";
21                         btn1.name  = "do_suspend";
22                         btn2.value = "<%:Refresh%>";
23                         btn2.name  = "do_refresh";
24                         btn1.disabled = false;
25                         running(btn1_running, 0);
26                         btn2.disabled = false;
27                         running(btn2_running, 0);
28                 }
29                 else if (input === "paused")
30                 {
31                         btn1.value = "<%:Resume%>";
32                         btn1.name  = "do_resume";
33                         btn2.value = "<%:Refresh%>";
34                         btn2.name  = "do_refresh";
35                         btn1.disabled = false;
36                         running(btn1_running, 0);
37                         btn2.disabled = false;
38                         running(btn2_running, 0);
39                 }
40                 else
41                 {
42                         btn1.value = "<%:Suspend%>";
43                         btn1.name  = "do_suspend";
44                         btn2.value = "<%:Refresh%>";
45                         btn2.name  = "do_refresh";
46                         btn1.disabled = true;
47                         btn2.disabled = true;
48                 }
49
50                 document.getElementById("value_2").innerHTML = json.data.adblock_version || "-";
51                 document.getElementById("value_3").innerHTML = json.data.fetch_utility || "-";
52                 document.getElementById("value_4").innerHTML = json.data.dns_backend || "-";
53                 document.getElementById("value_5").innerHTML = json.data.dns_variant || "-";
54                 document.getElementById("value_6").innerHTML = json.data.backup_dir || "-";
55                 document.getElementById("value_7").innerHTML = json.data.overall_domains || "-";
56                 document.getElementById("value_8").innerHTML = json.data.last_rundate || "-";
57         }
58
59         function btn_action(action)
60         {
61                 var btn1 = document.getElementById("btn1");
62                 var btn1_running = document.getElementById("btn1_running");
63                 var btn2 = document.getElementById("btn2");
64                 var btn2_running = document.getElementById("btn2_running");
65
66                 btn1.disabled = true;
67                 btn2.disabled = true;
68
69                 if (action.name === "do_refresh")
70                 {
71                         running(btn2_running, 1);
72                 }
73                 else
74                 {
75                         running(btn1_running, 1);
76                 }
77
78                 new XHR.get('<%=luci.dispatcher.build_url("admin", "services", "adblock")%>/action/' + action.name, null,
79                 function(x)
80                 {
81                         if (!x)
82                         {
83                                 return;
84                         }
85                 });
86         }
87
88         function running(element, state)
89         {
90                 if (state === 1)
91                 {
92                         var running_html = '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" width="16" height="16" style="vertical-align:middle" />';
93                         element.innerHTML = running_html;
94                 }
95                 else
96                 {
97                         element.innerHTML = '';
98                 }
99         }
100
101         function reset_view()
102         {
103                 document.getElementById("btn1").value        = "<%:Suspend%>";
104                 document.getElementById("btn1").name         = "do_suspend";
105                 document.getElementById("btn2").value        = "<%:Refresh%>";
106                 document.getElementById("btn2").name         = "do_refresh";
107                 document.getElementById("btn1").disabled     = true;
108                 document.getElementById("btn2").disabled     = true;
109                 document.getElementById("value_1").innerHTML = "-";
110                 document.getElementById("value_2").innerHTML = "-";
111                 document.getElementById("value_3").innerHTML = "-";
112                 document.getElementById("value_4").innerHTML = "-";
113                 document.getElementById("value_5").innerHTML = "-";
114                 document.getElementById("value_6").innerHTML = "-";
115                 document.getElementById("value_7").innerHTML = "-";
116                 document.getElementById("value_8").innerHTML = "-";
117         }
118
119         XHR.get('<%=luci.dispatcher.build_url("admin", "services", "adblock", "status_update")%>', null,
120         function(x, json_info)
121         {
122                 if (!x || !json_info || !json_info.data)
123                 {
124                         reset_view();
125                         return;
126                 }
127                 status_update(json_info);
128         });
129
130         XHR.poll(-1, '<%=luci.dispatcher.build_url("admin", "services", "adblock", "status_update")%>', null,
131         function(x, json_info)
132         {
133                 if (!x || !json_info || !json_info.data)
134                 {
135                         reset_view();
136                         return;
137                 }
138                 status_update(json_info);
139         });
140 //]]>
141 </script>
142
143 <h3><%:Runtime Information%></h3>
144 <div class="cbi-value" id="status_1">
145         <label class="cbi-value-title" for="status_1"><%:Adblock Status%></label>
146         <div class="cbi-value-field">
147                 <span class="runtime" id="value_1">-</span>
148         </div>
149 </div>
150 <div class="cbi-value" id="status_2">
151         <label class="cbi-value-title" for="status_2"><%:Adblock Version%></label>
152         <div class="cbi-value-field">
153                 <span class="runtime" id="value_2">-</span>
154         </div>
155 </div>
156 <div class="cbi-value" id="status_3">
157         <label class="cbi-value-title" for="status_3"><%:Download Utility (SSL Library)%></label>
158         <div class="cbi-value-field">
159                 <span class="runtime" id="value_3">-</span>
160         </div>
161 </div>
162 <div class="cbi-value" id="status_4">
163         <label class="cbi-value-title" for="status_4"><%:DNS Backend, DNS Directory%></label>
164         <div class="cbi-value-field">
165                 <span class="runtime" id="value_4">-</span>
166         </div>
167 </div>
168 <div class="cbi-value" id="status_5">
169         <label class="cbi-value-title" for="status_5"><%:DNS Variant, DNS File Reset%></label>
170         <div class="cbi-value-field">
171                 <span class="runtime" id="value_5">-</span>
172         </div>
173 </div>
174 <div class="cbi-value" id="status_6">
175         <label class="cbi-value-title" for="status_6"><%:Backup Directory%></label>
176         <div class="cbi-value-field">
177                 <span class="runtime" id="value_6">-</span>
178         </div>
179 </div>
180 <div class="cbi-value" id="status_7">
181         <label class="cbi-value-title" for="status_7"><%:Overall Domains%></label>
182         <div class="cbi-value-field">
183                 <span class="runtime" id="value_7">-</span>
184         </div>
185 </div>
186 <div class="cbi-value" id="status_8">
187         <label class="cbi-value-title" for="status_8"><%:Last Run%></label>
188         <div class="cbi-value-field">
189                 <span class="runtime" id="value_8">-</span>
190         </div>
191 </div>
192 <hr />
193 <div class="cbi-value" id="button_1">
194         <label class="cbi-value-title" for="button_1"><%:Suspend / Resume Adblock%></label>
195         <div class="cbi-value-field">
196                 <input class="cbi-button cbi-button-reset" id="btn1" type="button" value="" onclick="btn_action(this)" />
197                 <span id="btn1_running" class="btn_running"></span>
198         </div>
199 </div>
200 <p />
201 <div class="cbi-value" id="button_2">
202         <label class="cbi-value-title" for="button_2"><%:Refresh Blocklist Sources%></label>
203         <div class="cbi-value-field">
204                 <input class="cbi-button cbi-button-apply" id="btn2" type="button" value="" onclick="btn_action(this)" />
205                 <span id="btn2_running" class="btn_running"></span>
206         </div>
207 </div>