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