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