luci-0.11: merge r9571 - r9622
[project/luci.git] / modules / admin-full / luasrc / view / admin_network / diagnostics.htm
index 953b988397ccb908b3913226c5e9d2c18f1276ae..d1bef2a8b7936d12b747921b1d97b6c5c73402b2 100644 (file)
@@ -14,14 +14,21 @@ $Id$
 
 <%+header%>
 
 
 <%+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")
+%>
+
 <script type="text/javascript" src="<%=resource%>/cbi.js"></script>
 <script type="text/javascript">//<![CDATA[
        var stxhr = new XHR();
 
 <script type="text/javascript" src="<%=resource%>/cbi.js"></script>
 <script type="text/javascript">//<![CDATA[
        var stxhr = new XHR();
 
-       function update_status(field)
+       function update_status(field, proto)
        {
                var tool = field.name;
                var addr = field.value;
        {
                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');
 
                var legend = document.getElementById('diag-rc-legend');
                var output = document.getElementById('diag-rc-output');
@@ -36,7 +43,7 @@ $Id$
                        legend.parentNode.style.display = 'block';
                        legend.style.display = 'inline';
 
                        legend.parentNode.style.display = 'block';
                        legend.style.display = 'inline';
 
-                       stxhr.get('<%=luci.dispatcher.build_url("admin", "network")%>/diag_' + tool + '/' + addr, null,
+                       stxhr.get('<%=luci.dispatcher.build_url("admin", "network")%>/diag_' + tool + protocol + '/' + addr, null,
                                function(x)
                                {
                                        if (x.responseText)
                                function(x)
                                {
                                        if (x.responseText)
@@ -64,19 +71,39 @@ $Id$
 
                        <br />
 
 
                        <br />
 
-                       <div style="width:30%; float:left; text-align:center">
-                               <input style="width: 50%" type="text" value="openwrt.org" name="ping" />
-                               <input type="button" value="Ping" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping)" />
+                       <div style="width:30%; float:left">
+                               <input style="margin: 5px 0" type="text" value="openwrt.org" 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>
 
-                       <div style="width:30%; float:left; text-align:center">
-                               <input style="width: 50%" type="text" value="openwrt.org" name="traceroute" />
-                               <input type="button" value="Traceroute" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute)" />
+                       <div style="width:33%; float:left">
+                               <input style="margin: 5px 0" type="text" value="openwrt.org" 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>&#160;</p>
+                                       <p><%:Install iputils-traceroute6 for IPv6 traceroute%></p>
+                               <% end %>
                        </div>
 
                        </div>
 
-                       <div style="width:30%; float:left; text-align:center">
-                               <input style="width: 50%" type="text" value="openwrt.org" name="nslookup" />
-                               <input type="button" value="Nslookup" class="cbi-button cbi-button-apply" onclick="update_status(this.form.nslookup)" />
+                       <div style="width:33%; float:left;">
+                               <input style="margin: 5px 0" type="text" value="openwrt.org" name="nslookup" /><br />
+                               <input type="button" value="<%:Nslookup%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.nslookup)" />
                        </div>
 
                        <br style="clear:both" /><br />
                        </div>
 
                        <br style="clear:both" /><br />