SmartAudio/package/luci/luci-app-olsr/luasrc/view/status-olsr/overview.htm

222 lines
5.5 KiB
HTML
Raw Normal View History

2018-07-13 01:31:50 +00:00
<%#
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
Copyright 2011 Manuel Munz <freifunk at somakoma dot de>
Licensed to the public under the Apache License 2.0.
-%>
<%
has_ipv4_conf = luci.model.uci.cursor():get_first("olsrd", "olsrd", "IpVersion")
has_ipv6_conf = luci.model.uci.cursor():get_first("olsrd6", "olsrd", "IpVersion")
function write_conf(conf, file)
local fs = require "nixio.fs"
if fs.access(conf) then
luci.http.header("Content-Disposition", "attachment; filename="..file)
luci.http.prepare_content("text/plain")
luci.http.write(fs.readfile(conf))
end
end
conf = luci.http.formvalue()
if conf.openwrt_v4 then
write_conf("/etc/config/olsrd", "olsrd")
return false
end
if conf.openwrt_v6 then
write_conf("/etc/config/olsrd6", "olsrd6")
return false
end
if conf.conf_v4 then
write_conf("/var/etc/olsrd.conf", "olsrd.conf")
return false
end
if conf.conf_v6 then
write_conf("/var/etc/olsrd6.conf", "olsrd6.conf")
return false
end
%>
<%+header%>
<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(10, '<%=REQUEST_URI%>/json', { },
function(x, info)
{
var e;
if (! info) {
document.getElementById('error').innerHTML = '<%:Could not get any data. Make sure the jsoninfo plugin is installed and allows connections from localhost.%>';
return
}
document.getElementById('error').innerHTML = '';
if (e = document.getElementById('version'))
var version;
var date;
if (info.v4.config.olsrdVersion != undefined) {
version = info.v4.config.olsrdVersion
date = info.v4.config.olsrdBuildDate
} else if (info.v6.config.olsrdVersion != undefined) {
version = info.v6.config.olsrdVersion
date = info.v6.config.olsrdBuildDate
} else {
version = 'unknown'
date = 'unknown'
}
e.innerHTML = version + '<br />' + date;
if (e = document.getElementById('nr_neigh'))
var neigh = 0;
if (info.v4.links != undefined) {
neigh = neigh + info.v4.links.length
}
if (info.v6.links != undefined) {
neigh = neigh + info.v6.links.length
}
e.innerHTML = neigh;
if (e = document.getElementById('nr_hna'))
var hna = 0;
if (info.v4.hna != undefined) {
hna = hna + info.v4.hna.length
}
if (info.v6.hna != undefined) {
hna = hna + info.v6.hna.length
}
e.innerHTML = hna;
if (e = document.getElementById('nr_ifaces'))
var nrint = 0
if (info.v4.interfaces != undefined) {
nrint = nrint + info.v4.interfaces.length
}
if (info.v6.interfaces != undefined) {
nrint = nrint + info.v6.interfaces.length
}
e.innerHTML = nrint
if (e = document.getElementById('nr_topo'))
var topo = 0;
var nodes = [];
Array.prototype.contains = function (element) {
for (var i = 0; i < this.length; i++) {
if (this[i] == element) {
return true;
}
}
return false;
}
if (info.v4.topology != undefined) {
topo = topo + info.v4.topology.length;
for (var i = 0; i < info.v4.topology.length; i++) {
var destip = info.v4.topology[i].destinationIP
if (! nodes.contains(destip) ) {
nodes.push(destip)
}
}
}
if (info.v6.topology != undefined) {
topo = topo + info.v6.topology.length
for (var i = 0; i < info.v6.topology.length; i++) {
var destip = info.v6.topology[i].destinationIP
if (! nodes.contains(destip) ) {
nodes.push(destip)
}
}
}
e.innerHTML = topo;
if (e = document.getElementById('nr_nodes'))
e.innerHTML = nodes.length;
if (e = document.getElementById('meshfactor'))
var meshfactor = topo / nodes.length
e.innerHTML = meshfactor.toFixed(2)
}
);
//]]></script>
<div id="error" class="error"></div>
<h2 name="content">OLSR <%:Overview%></h2>
<fieldset class="cbi-section">
<legend><%:Network%></legend>
<table width="100%" cellspacing="10">
<tr><td width="33%"><%:Interfaces%></td><td>
<a href="<%=REQUEST_URI%>/interfaces">
<span id="nr_ifaces">-<span>
</a>
</td></tr>
<tr><td width="33%"><%:Neighbors%></td><td>
<a href="<%=REQUEST_URI%>/neighbors">
<span id="nr_neigh">-</span>
</a>
</td></tr>
<tr><td width="33%"><%:Nodes%></td><td>
<a href="<%=REQUEST_URI%>/topology">
<span id="nr_nodes">-</span>
</a>
</td></tr>
<tr><td width="33%"><%:HNA%></td><td>
<a href="<%=REQUEST_URI%>/hna">
<span id="nr_hna">-</span>
</a>
</td></tr>
<tr><td width="33%"><%:Links total%></td><td>
<a href="<%=REQUEST_URI%>/topology">
<span id="nr_topo">-</span>
</a>
</td></tr>
<tr><td width="33%"><%:Links per node (average)%></td><td>
<span id="meshfactor">-</span>
</td></tr>
</table>
</fieldset>
<fieldset class="cbi-section">
<legend>OLSR <%:Configuration%></legend>
<table width="100%" cellspacing="10">
<tr><td width="33%"><%:Version%></td><td>
<span id="version">-<span>
</td></tr>
<tr><td width="33%"><%:Download Config%></td><td>
<% if has_ipv4_conf then %>
<a href="<%=REQUEST_URI%>?openwrt_v4">OpenWrt (IPv4)</a>,
<% end %>
<% if has_ipv6_conf then %>
<a href="<%=REQUEST_URI%>?openwrt_v6">OpenWrt (IPv6)</a>,
<% end %>
<% if has_ipv4_conf then %>
<a href="<%=REQUEST_URI%>?conf_v4">OLSRD (IPv4)</a>,
<% end %>
<% if has_ipv6_conf then %>
<a href="<%=REQUEST_URI%>?conf_v6">OLSRD (IPv6)</a>
<% end %>
</td></tr>
</table>
</fieldset>
<%+footer%>