3 <ul class=
"cbi-tabmenu">
4 <li class=
"cbi-tab-disabled"><a href=
"<%=luci.dispatcher.build_url("admin/status/mwan/overview
")%>"><%:Interface Status%
></a></li>
5 <li class=
"cbi-tab-disabled"><a href=
"<%=luci.dispatcher.build_url("admin/status/mwan/detail
")%>"><%:Detailed Status%
></a></li>
6 <li class=
"cbi-tab"><a href=
"<%=luci.dispatcher.build_url("admin/status/mwan/diagnostics
")%>"><%:Diagnostics%
></a></li>
7 <li class=
"cbi-tab-disabled"><a href=
"<%=luci.dispatcher.build_url("admin/status/mwan/troubleshooting
")%>"><%:Troubleshooting%
></a></li>
11 local uci = require
"luci.model.uci"
14 uci.cursor():foreach(
"mwan3",
"interface",
16 interfaceNames = interfaceNames .. section[
".name"] ..
" "
21 <script type=
"text/javascript" src=
"<%=resource%>/cbi.js"></script>
22 <script type=
"text/javascript">//<![CDATA[
23 var stxhr = new XHR();
25 function update_status(tool, task, task_name)
27 var iface = document.getElementById('mwaniface').value;
28 var output = document.getElementById('diag_output');
30 output.innerHTML = '
<img src=
"<%=resource%>/icons/loading.gif" ' +
31 '
alt=
"<%:Loading%>" ' +
32 '
style=
"padding: 20px; vertical-align: middle;" />' +
33 "<%:Waiting for diagnostic results...%>";
35 output.parentNode.style.display = 'block';
36 output.style.display = 'inline';
38 stxhr.get('<%=luci.dispatcher.build_url(
"admin",
"status",
"mwan")%
>/diagnostics_display' + '/' + iface + '/' + tool + '/' + task, null,
41 if (mArray.diagnostics)
43 output.innerHTML = String.format('
<pre id=
"diag_output_css">%h
</pre>', mArray.diagnostics[
0]);
47 output.innerHTML = '
<pre id=
"diag_output_css"><strong><%:No diagnostic results returned%
></strong></pre>';
54 <div id=
"mwan_diagnostics" class=
"cbi-map">
55 <fieldset id=
"diag_select" class=
"cbi-section">
56 <legend><%:MWAN Interface Diagnostics%
></legend>
57 <select id=
"mwaniface">
58 <% for z in interfaceNames:gmatch(
"[^ ]+") do -%
><option value=
"<%=z%>"><%=z%
></option><%- end %
>
61 <input type=
"button" value=
"<%:Ping default gateway%>" class=
"cbi-button cbi-button-apply" onclick=
"update_status('ping', 'gateway', null)" />
62 <input type=
"button" value=
"<%:Ping tracking IP%>" class=
"cbi-button cbi-button-apply" onclick=
"update_status('ping', 'track_ip', null)" />
63 <input type=
"button" value=
"<%:Check IP rules%>" class=
"cbi-button cbi-button-apply" onclick=
"update_status('rulechk', null, null)" />
64 <input type=
"button" value=
"<%:Check routing table%>" class=
"cbi-button cbi-button-apply" onclick=
"update_status('routechk', null, null)" />
65 <input type=
"button" value=
"<%:Hotplug ifup%>" class=
"cbi-button cbi-button-apply" onclick=
"update_status('hotplug', 'ifup', null)" />
66 <input type=
"button" value=
"<%:Hotplug ifdown%>" class=
"cbi-button cbi-button-apply" onclick=
"update_status('hotplug', 'ifdown', null)" />
69 <fieldset class=
"cbi-section" style=
"display:none">
70 <legend><%:Diagnostic Results%
></legend>
71 <div id=
"diag_output"></div>
75 <style type=
"text/css">
78 margin:
8px
20px
0px
0px;
86 margin:
8px
20px
0px
0px;