Merge pull request #1251 from dibdot/luci-app-travelmate
[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)
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)
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')" />
74                         <input type="button" value="<%:Ping tracking IP%>" class="cbi-button cbi-button-apply" onclick="update_status('ping', 'track_ip')" />
75                         <input type="button" value="<%:Check IP rules%>" class="cbi-button cbi-button-apply" onclick="update_status('rulechk', null)" />
76                         <input type="button" value="<%:Check routing table%>" class="cbi-button cbi-button-apply" onclick="update_status('routechk', null)" />
77                         <input type="button" value="<%:Hotplug ifup%>" class="cbi-button cbi-button-apply" onclick="update_status('hotplug', 'ifup')" />
78                         <input type="button" value="<%:Hotplug ifdown%>" class="cbi-button cbi-button-apply" onclick="update_status('hotplug', 'ifdown')" />
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')" />
85                         <input type="button" value="<%:Stop MWAN%>" class="cbi-button cbi-button-apply" onclick="update_status('service', 'stop')" />
86                         <input type="button" value="<%:Start MWAN%>" class="cbi-button cbi-button-apply" onclick="update_status('service', '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%>