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