mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-13 19:11:51 +00:00
149 lines
5.4 KiB
HTML
149 lines
5.4 KiB
HTML
<%#
|
|
Copyright 2010 Jo-Philipp Wich <jow@openwrt.org>
|
|
Licensed to the public under the Apache License 2.0.
|
|
-%>
|
|
|
|
<%+header%>
|
|
|
|
<%
|
|
local fs = require "nixio.fs"
|
|
local has_ping6 = fs.access("/bin/ping6") or fs.access("/usr/bin/ping6")
|
|
local has_traceroute6 = fs.access("/usr/bin/traceroute6")
|
|
local has_speedtest = fs.access("/usr/sbin/speedtestc")
|
|
local has_iperf3 = fs.access("/usr/bin/iperf3")
|
|
local has_curl = fs.access("/usr/bin/curl")
|
|
local has_netstat = fs.access("/bin/netstat")
|
|
|
|
local dns_host = luci.config.diag and luci.config.diag.dns or "dev.openwrt.org"
|
|
local ping_host = luci.config.diag and luci.config.diag.ping or "dev.openwrt.org"
|
|
local route_host = luci.config.diag and luci.config.diag.route or "dev.openwrt.org"
|
|
local iperf3_host = luci.config.diag and luci.config.diag.iperf3 or "ping-ams1.online.net"
|
|
local getip_host = luci.config.diag and luci.config.diag.getip or "ifconfig.co"
|
|
%>
|
|
|
|
<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
|
|
<script type="text/javascript">//<![CDATA[
|
|
var stxhr = new XHR();
|
|
|
|
function update_status(field, proto)
|
|
{
|
|
var tool = field.name;
|
|
var addr = field.value;
|
|
var protocol = proto ? "6" : "";
|
|
|
|
var legend = document.getElementById('diag-rc-legend');
|
|
var output = document.getElementById('diag-rc-output');
|
|
|
|
if (legend && output)
|
|
{
|
|
output.innerHTML =
|
|
'<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> ' +
|
|
'<%:Waiting for command to complete...%>'
|
|
;
|
|
|
|
legend.parentNode.style.display = 'block';
|
|
legend.style.display = 'inline';
|
|
|
|
stxhr.post('<%=url('admin/network')%>/diag_' + tool + protocol + '/' + addr, { token: '<%=token%>' },
|
|
function(x)
|
|
{
|
|
if (x.responseText)
|
|
{
|
|
legend.style.display = 'none';
|
|
output.innerHTML = String.format('<pre>%h</pre>', x.responseText);
|
|
}
|
|
else
|
|
{
|
|
legend.style.display = 'none';
|
|
output.innerHTML = '<span class="error"><%:Bad address specified!%></span>';
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}
|
|
//]]></script>
|
|
|
|
<form method="post" action="<%=url('admin/network/diagnostics')%>">
|
|
<div class="cbi-map">
|
|
<h2 name="content"><%:Diagnostics%></h2>
|
|
|
|
<fieldset class="cbi-section">
|
|
<legend><%:Network Utilities%></legend>
|
|
|
|
<br />
|
|
|
|
<div style="width:23%; float:left">
|
|
<input style="margin: 5px 0" type="text" value="<%=ping_host%>" name="ping" /><br />
|
|
<% if has_ping6 then %>
|
|
<select name="ping_proto" style="width:auto">
|
|
<option value="" selected="selected"><%:IPv4%></option>
|
|
<option value="6"><%:IPv6%></option>
|
|
</select>
|
|
<input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping, this.form.ping_proto.selectedIndex)" />
|
|
<% else %>
|
|
<input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping)" />
|
|
<% end %>
|
|
</div>
|
|
|
|
<div style="width:23%; float:left">
|
|
<input style="margin: 5px 0" type="text" value="<%=route_host%>" name="traceroute" /><br />
|
|
<% if has_traceroute6 then %>
|
|
<select name="traceroute_proto" style="width:auto">
|
|
<option value="" selected="selected"><%:IPv4%></option>
|
|
<option value="6"><%:IPv6%></option>
|
|
</select>
|
|
<input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute, this.form.traceroute_proto.selectedIndex)" />
|
|
<% else %>
|
|
<input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute)" />
|
|
<% end %>
|
|
<% if not has_traceroute6 then %>
|
|
<p> </p>
|
|
<p><%:Install iputils-traceroute6 for IPv6 traceroute%></p>
|
|
<% end %>
|
|
</div>
|
|
|
|
<div style="width:23%; float:left;">
|
|
<input style="margin: 5px 0" type="text" value="<%=dns_host%>" name="nslookup" /><br />
|
|
<input type="button" value="<%:Nslookup%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.nslookup)" />
|
|
</div>
|
|
|
|
<% if has_speedtest and false then %>
|
|
<div style="width:23%; float:left;">
|
|
<input style="margin: 5px 0" type="text" value="" name="speedtest" placeholder="alternate server" /><br />
|
|
<input type="button" value="<%:Speedtest%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.speedtest)" />
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if has_iperf3 then %>
|
|
<div style="width:23%; float:left;">
|
|
<input style="margin: 5px 0" type="text" value="<%=iperf3_host%>" name="iperf3" /><br />
|
|
<input type="button" value="<%:Iperf3%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.iperf3)" />
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if has_curl then %>
|
|
<div style="width:23%; float:left;">
|
|
<input style="margin: 5px 0" type="hidden" value="<%=getip_host%>" name="getip" /><br />
|
|
<input type="button" value="<%:Get public IP%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.getip)" />
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if has_netstat then %>
|
|
<div style="width:23%; float:left;">
|
|
<input style="margin: 5px 0" type="hidden" value="" name="netstat" /><br />
|
|
<input type="button" value="<%:Netstat%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.netstat)" />
|
|
</div>
|
|
<% end %>
|
|
|
|
<br style="clear:both" /><br />
|
|
|
|
</fieldset>
|
|
</div>
|
|
|
|
<fieldset class="cbi-section" style="display:none">
|
|
<legend id="diag-rc-legend"><%:Collecting data...%></legend>
|
|
<span id="diag-rc-output"></span>
|
|
</fieldset>
|
|
</form>
|
|
|
|
<%+footer%>
|