diff options
Diffstat (limited to 'applications/luci-app-mwan3/luasrc/view/mwan')
5 files changed, 263 insertions, 0 deletions
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/overview_status_interface.htm b/applications/luci-app-mwan3/luasrc/view/mwan/overview_status_interface.htm new file mode 100644 index 0000000000..49d120c1ae --- /dev/null +++ b/applications/luci-app-mwan3/luasrc/view/mwan/overview_status_interface.htm @@ -0,0 +1,75 @@ +<%# + Copyright 2014 Aedan Renner <chipdankly@gmail.com> + Copyright 2018 Florian Eckert <fe@dev.tdt.de> + Licensed to the public under the GNU General Public License v2. +-%> + +<script type="text/javascript">//<![CDATA[ +XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "status", "mwan", "interface_status")%>', null, + function(x, status) + { + var statusDiv = document.getElementById('mwan_status_text'); + if (status.interfaces) + { + var statusview = ''; + for ( var iface in status.interfaces) + { + var state = ''; + var css = '' + switch (status.interfaces[iface].status) + { + case 'online': + state = '<%:Online%>'; + css = 'success'; + break; + case 'offline': + state = '<%:Offline%>'; + css = 'danger'; + break; + default: + state = '<%:Disabled%>'; + css = 'warning'; + break; + } + statusview += String.format( + '<div class="alert-message %s">', + css + ); + statusview += String.format( + '<div><strong>Interface: </strong>%s</div>', + iface + ); + statusview += String.format( + '<div><strong>Status: </strong>%s</div>', + state + ); + statusview += '</div>' + } + statusDiv.innerHTML = statusview; + } + else + { + statusDiv.innerHTML = '<strong><%:No MWAN interfaces found%></strong>'; + } + } + ); +//]]></script> + +<style type="text/css"> + #mwan_status_text > div { + display: inline-block; + margin: 1rem; + padding: 1rem; + width: 10rem; + float: left; + line-height: 125%; + } +</style> + +<fieldset id="interface_field" class="cbi-section"> + <legend><%:MWAN Interfaces%></legend> + <div id="mwan_status_text"> + <img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> + <%:Collecting data...%> + </div> +</fieldset> diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/status_detail.htm b/applications/luci-app-mwan3/luasrc/view/mwan/status_detail.htm new file mode 100644 index 0000000000..12700c4a36 --- /dev/null +++ b/applications/luci-app-mwan3/luasrc/view/mwan/status_detail.htm @@ -0,0 +1,39 @@ +<%# + Copyright 2014 Aedan Renner <chipdankly@gmail.com> + Copyright 2018 Florian Eckert <fe@dev.tdt.de> + Licensed to the public under the GNU General Public License v2. +-%> + +<%+header%> + +<ul class="cbi-tabmenu"> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/overview")%>"><%:Interface%></a></li> + <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/detail")%>"><%:Detail%></a></li> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/diagnostics")%>"><%:Diagnostics%></a></li> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/troubleshooting")%>"><%:Troubleshooting%></a></li> +</ul> + +<script type="text/javascript">//<![CDATA[ + XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "status", "mwan", "detailed_status")%>', null, + function(x) + { + var output = document.getElementById('diag-rc-output'); + output.innerHTML = String.format('<pre>%h</pre>', x.responseText); + } + ); +//]]></script> + +<div class="cbi-map"> + <h2 name="content"><%:MWAN Status - Detail%></h2> + <%if not require("luci.sys").init.enabled("mwan3") then%> + <div><strong><%:INFO: MWAN not running%></strong></div> + <%end%> + <fieldset class="cbi-section"> + <span id="diag-rc-output"> + <img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align: middle;" /> + <%:Collecting data...%> + </span> + </fieldset> +</div> + +<%+footer%> diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/status_diagnostics.htm b/applications/luci-app-mwan3/luasrc/view/mwan/status_diagnostics.htm new file mode 100644 index 0000000000..454adcc1cd --- /dev/null +++ b/applications/luci-app-mwan3/luasrc/view/mwan/status_diagnostics.htm @@ -0,0 +1,90 @@ +<%# + Copyright 2014 Aedan Renner <chipdankly@gmail.com> + Copyright 2018 Florian Eckert <fe@dev.tdt.de> + Licensed to the public under the GNU General Public License v2. +-%> + +<%+header%> + +<ul class="cbi-tabmenu"> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/overview")%>"><%:Interface%></a></li> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/detail")%>"><%:Detail%></a></li> + <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/diagnostics")%>"><%:Diagnostics%></a></li> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/troubleshooting")%>"><%:Troubleshooting%></a></li> +</ul> + +<% + local uci = require "luci.model.uci" + + local iface = {} + + uci.cursor():foreach("mwan3", "interface", + function (section) + table.insert(iface, section[".name"]) + end + ) +%> + +<script type="text/javascript">//<![CDATA[ + var stxhr = new XHR(); + + function update_status(iface, task) + { + var output = document.getElementById('diag-rc-output'); + + output.innerHTML = + '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align: middle;" />' + + "<%:Waiting for command to complete...%>" + ; + + output.parentNode.style.display = 'block'; + output.style.display = 'inline'; + + stxhr.post('<%=url('admin/status/mwan')%>/diagnostics_display' + '/' + iface + '/' + task, { token: '<%=token%>' }, + function(x) + { + output.innerHTML = String.format('<pre>%h</pre>', x.responseText); + } + ); + } +//]]></script> + +<form method="post" action="<%=url('admin/network/diagnostics')%>"> + <div class="cbi-map"> + <h2 name="content"><%:MWAN Status - Diagnostics%></h2> + <%if not require("luci.sys").init.enabled("mwan3") then%> + <div><strong><%:INFO: MWAN not running%></strong></div> + <%end%> + <fieldset class="cbi-section"> + <br /> + + <div style="width:30%; float:left"> + <label class="cbi-value-title"><%:Interface%></label> + <select name="iface" style="width:auto"> + <% for _, z in ipairs(iface) do -%><option value="<%=z%>"><%=z%></option><%- end %> + </select> + </div> + + <div style="width:30%; float:left"> + <label class="cbi-value-title"><%:Task%></label> + <select name="task" style="width:auto"> + <option value="ping_gateway"><%:Ping default gateway%></option> + <option value="ping_trackips"><%:Ping tracking IP%></option> + <option value="check_rules"><%:Check IP rules%></option> + <option value="check_routes"><%:Check routing table%></option> + <option value="hotplug_ifup"><%:Hotplug ifup%></option> + <option value="hotplug_ifdown"><%:Hotplug ifdown%></option> + </select> + </div> + + <div style="width:30%; float:left"> + <input type="button" value="<%:Execute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.iface.value, this.form.task.value)"/> + </div> + </fieldset> + </div> + <fieldset class="cbi-section" style="display:none"> + <span id="diag-rc-output"></span> + </fieldset> +</form> + +<%+footer%> diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/status_interface.htm b/applications/luci-app-mwan3/luasrc/view/mwan/status_interface.htm new file mode 100644 index 0000000000..962cde521d --- /dev/null +++ b/applications/luci-app-mwan3/luasrc/view/mwan/status_interface.htm @@ -0,0 +1,20 @@ +<%# + Copyright 2014 Aedan Renner <chipdankly@gmail.com> + Copyright 2018 Florian Eckert <fe@dev.tdt.de> + Licensed to the public under the GNU General Public License v2. +-%> + +<%+header%> + +<ul class="cbi-tabmenu"> + <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/overview")%>"><%:Interface%></a></li> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/detail")%>"><%:Detail%></a></li> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/diagnostics")%>"><%:Diagnostics%></a></li> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/troubleshooting")%>"><%:Troubleshooting%></a></li> +</ul> + + +<div class="cbi-map"> + <%+mwan/overview_status_interface%> +</div> +<%+footer%> diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/status_troubleshooting.htm b/applications/luci-app-mwan3/luasrc/view/mwan/status_troubleshooting.htm new file mode 100644 index 0000000000..a20516bd2a --- /dev/null +++ b/applications/luci-app-mwan3/luasrc/view/mwan/status_troubleshooting.htm @@ -0,0 +1,39 @@ +<%# + Copyright 2014 Aedan Renner <chipdankly@gmail.com> + Copyright 2018 Florian Eckert <fe@dev.tdt.de> + Licensed to the public under the GNU General Public License v2. +-%> + +<%+header%> + +<ul class="cbi-tabmenu"> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/overview")%>"><%:Interface%></a></li> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/detail")%>"><%:Detail%></a></li> + <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/diagnostics")%>"><%:Diagnostics%></a></li> + <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/troubleshooting")%>"><%:Troubleshooting%></a></li> +</ul> + +<script type="text/javascript">//<![CDATA[ + XHR.poll(15, '<%=luci.dispatcher.build_url("admin", "status", "mwan", "troubleshooting_display")%>', null, + function(x) + { + var output = document.getElementById('diag-rc-output'); + output.innerHTML = String.format('<pre>%h</pre>', x.responseText); + } + ); +//]]></script> + +<div class="cbi-map"> + <h2 name="content"><%:MWAN Status - Troubleshooting%></h2> + <%if not require("luci.sys").init.enabled("mwan3") then%> + <div><strong><%:INFO: MWAN not running%></strong></div> + <%end%> + <fieldset class="cbi-section"> + <span id="diag-rc-output"> + <img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align: middle;" /> + <%:Collecting data...%> + </span> + </fieldset> +</div> + +<%+footer%> |