Merge pull request #980 from NvrBst/pull-request-upnp_description
[project/luci.git] / applications / luci-app-mwan3 / luasrc / view / mwan / advanced_diagnostics.htm
1 <%+header%>
2
3 <ul class="cbi-tabmenu">
4 <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/hotplugscript")%>"><%:Hotplug Script%></a></li>
5 <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/mwanconfig")%>"><%:MWAN Config%></a></li>
6 <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/networkconfig")%>"><%:Network Config%></a></li>
7 <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/wirelessconfig")%>"><%:Wireless Config%></a></li>
8 <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/diagnostics")%>"><%:Diagnostics%></a></li>
9 <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/troubleshooting")%>"><%:Troubleshooting%></a></li>
10 </ul>
11
12 <%
13 local uci = require "luci.model.uci"
14
15 interfaceNames = ""
16 uci.cursor():foreach("mwan3", "interface",
17 function (section)
18 interfaceNames = interfaceNames .. section[".name"] .. " "
19 end
20 )
21 %>
22
23 <script type="text/javascript" src="<%=resource%>/cbi.js"></script>
24 <script type="text/javascript">//<![CDATA[
25 var stxhr = new XHR();
26
27 function update_status(tool, task, task_name)
28 {
29 var iface = document.getElementById('mwaniface').value;
30 var output = document.getElementById('diag_output');
31
32 if (tool == "service")
33 {
34 output.innerHTML =
35 '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="padding: 20px; vertical-align: middle;" /> ' +
36 String.format("<%:Waiting for MWAN to %s...%>", task_name)
37 ;
38 }
39 else
40 {
41 output.innerHTML =
42 '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="padding: 20px; vertical-align: middle;" /> ' +
43 "<%:Waiting for diagnostic results...%>"
44 ;
45 }
46
47 output.parentNode.style.display = 'block';
48 output.style.display = 'inline';
49
50 stxhr.get('<%=luci.dispatcher.build_url("admin", "network", "mwan", "advanced")%>/diagnostics_display' + '/' + iface + '/' + tool + '/' + task, null,
51 function(x, mArray)
52 {
53 if (mArray.diagnostics)
54 {
55 output.innerHTML = String.format('<pre id="diag_output_css">%h</pre>', mArray.diagnostics[0]);
56 }
57 else
58 {
59 output.innerHTML = '<pre id="diag_output_css"><strong><%:No diagnostic results returned%></strong></pre>';
60 }
61 }
62 );
63 }
64 //]]></script>
65
66 <div id="mwan_diagnostics" class="cbi-map">
67 <fieldset id="diag_select" class="cbi-section">
68 <legend><%:MWAN Interface Diagnostics%></legend>
69 <select id="mwaniface">
70 <% for z in interfaceNames:gmatch("[^ ]+") do -%><option value="<%=z%>"><%=z%></option><%- end %>
71 </select>
72 <div id="buttoncss">
73 <input type="button" value="<%:Ping default gateway%>" class="cbi-button cbi-button-apply" onclick="update_status('ping', 'gateway', null)" />
74 <input type="button" value="<%:Ping tracking IP%>" class="cbi-button cbi-button-apply" onclick="update_status('ping', 'track_ip', null)" />
75 <input type="button" value="<%:Check IP rules%>" class="cbi-button cbi-button-apply" onclick="update_status('rulechk', null, null)" />
76 <input type="button" value="<%:Check routing table%>" class="cbi-button cbi-button-apply" onclick="update_status('routechk', null, null)" />
77 <input type="button" value="<%:Hotplug ifup%>" class="cbi-button cbi-button-apply" onclick="update_status('hotplug', 'ifup', null)" />
78 <input type="button" value="<%:Hotplug ifdown%>" class="cbi-button cbi-button-apply" onclick="update_status('hotplug', 'ifdown', null)" />
79 </div>
80 </fieldset>
81 <fieldset id="diag_select" class="cbi-section">
82 <legend><%:MWAN Service Control%></legend>
83 <div id="buttoncss">
84 <input type="button" value="<%:Restart MWAN%>" class="cbi-button cbi-button-apply" onclick="update_status('service', 'restart', '<%:restart%>')" />
85 <input type="button" value="<%:Stop MWAN%>" class="cbi-button cbi-button-apply" onclick="update_status('service', 'stop', '<%:stop%>')" />
86 <input type="button" value="<%:Start MWAN%>" class="cbi-button cbi-button-apply" onclick="update_status('service', 'start', '<%:start%>')" />
87 </div>
88 </fieldset>
89 <fieldset class="cbi-section" style="display:none">
90 <legend><%:Diagnostic Results%></legend>
91 <div id="diag_output"></div>
92 </fieldset>
93 </div>
94
95 <style type="text/css">
96 #mwaniface {
97 float: left;
98 margin: 8px 20px 0px 0px;
99 }
100 #buttoncss {
101 display: table;
102 float: left;
103 text-align: left;
104 }
105 .cbi-button {
106 margin: 8px 20px 0px 0px;
107 min-width: 153px;
108 }
109 #diag_output_css {
110 padding: 20px;
111 text-align: left;
112 }
113 </style>
114
115 <%+footer%>