<%#
 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.
-%>

<%
local olsrtools = require "luci.tools.olsr2"
local i = 1

if luci.http.formvalue("status") == "1" then
	local rv = {}
	for k, link in ipairs(links) do
		local snr_color = olsrtools.snr_color(link["snr"])
		defaultgw_color = ""
		if link.defaultgw == 1 then
			defaultgw_color = "#ffff99"
		end

		rv[#rv+1] = {
			rip = link["neighbor_originator"],
			hn = link["hostname"],
			lip = link["link_bindto"],
			ifn = link["if"],
			link_status = link["link_status"],
			metric_in = link["domain_metric_in"],
			metric_out = link["domain_metric_out"],
			snr = link["snr"],
			signal = link["signal"],
			noise = link["noise"],
			snr_color = snr_color,
			dfgcolor = defaultgw_color,
			proto = link["proto"]
			}
	end
	luci.http.prepare_content("application/json")
	luci.http.write_json(rv)
	return
end
%>

<%+header%>

<script type="text/javascript">//<![CDATA[

	XHR.poll(10 , '<%=REQUEST_URI%>', { status: 1 }, 
		function(x, info)
		{
		var nt = document.getElementById('olsr_neigh_table');
			if (nt)
			{
				var s = '<div class="tr cbi-section-table-cell">' +
				'<div class="th cbi-section-table-cell"><%:Neighbour IP%></div>' +
				'<div class="th cbi-section-table-cell"><%:Hostname%></div>' +
				'<div class="th cbi-section-table-cell"><%:Interface%></div>' +
				'<div class="th cbi-section-table-cell"><%:Local bind IP%></div>' +
				'<div class="th cbi-section-table-cell"><%:Link Status%></div>' +
				'<div class="th cbi-section-table-cell">Metric In</div>' +
				'<div class="th cbi-section-table-cell">Metric Out</div>' +
				'<div class="th cbi-section-table-cell">SNR</div>' +
				'</div>';

				for (var idx = 0; idx < info.length; idx++)
				{
					var neigh = info[idx];

					if (neigh.proto == '6') {
						s += String.format(
							'<div class="tr cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-%s">' +
							'<div class="td cbi-section-table-cell left" style="background-color:%s"><a href="http://[%s]/">%s</a></div>',
							neigh.proto, neigh.dfgcolor, neigh.rip, neigh.rip
						);
					} else {
						s += String.format(
							'<div class="tr cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-%s">' +
							'<div class="td cbi-section-table-cell left" style="background-color:%s"><a href="http://%s/">%s</a></div>',
							neigh.proto, neigh.dfgcolor, neigh.rip, neigh.rip
						);
					}
					if (neigh.hn) {
						s += String.format(
							'<div class="td cbi-section-table-cell left" style="background-color:%s"><a href="http://%s/">%s</a></div>',
							neigh.dfgcolor, neigh.hn, neigh.hn
						);
					} else {
						s += String.format(
							'<div class="td cbi-section-table-cell left" style="background-color:%s">?</div>',
							neigh.dfgcolor
						);
					}
					s += String.format(
						'<div class="td cbi-section-table-cell left" style="background-color:%s">%s</div>' +
						'<div class="td cbi-section-table-cell left" style="background-color:%s">%s</div>' +
						'<div class="td cbi-section-table-cell left" style="background-color:%s">%s</div>' +
						'<div class="td cbi-section-table-cell left" style="background-color:%s">%s</div>' +
						'<div class="td cbi-section-table-cell left" style="background-color:%s">%s</div>' +
						'<div class="td cbi-section-table-cell left" style="background-color:%s" title="Signal: %s Noise: %s">%s</div>' +
						'</div>',
						neigh.dfgcolor, neigh.ifn, neigh.dfgcolor, neigh.lip, neigh.dfgcolor, neigh.link_status, neigh.dfgcolor, neigh.metric_in, neigh.dfgcolor, neigh.metric_out, neigh.snr_color, neigh.signal, neigh.noise, neigh.snr || '?'
					);
				}

				nt.innerHTML = s;
			}
		}
	);
//]]></script>


<h2 name="content"><%:OLSRv2 connections%></h2>

<div id="togglebuttons"></div>

<fieldset class="cbi-section">
	<legend><%:Overview of currently established OLSRv2 connections%></legend>

	<div class="table cbi-section-table" id="olsr_neigh_table">
			<div class="tr cbi-section-table-cell">
				<div class="th cbi-section-table-cell"><%:Neighbour IP%></div>
				<div class="th cbi-section-table-cell"><%:Hostname%></div>
				<div class="th cbi-section-table-cell"><%:Interface%></div>
				<div class="th cbi-section-table-cell"><%:Local bind IP%></div>
				<div class="th cbi-section-table-cell"><%:Link Status%></div>
				<div class="th cbi-section-table-cell">Metric In</div>
				<div class="th cbi-section-table-cell">Metric Out</div>
				<div class="th cbi-section-table-cell">SNR</div>
			</div>
	
		<% 	local i = 1
			for k, link in ipairs(links) do
			snr_color = olsrtools.snr_color(link["snr"])

			if link["snr"] == 0 then
				link["snr"] = '?'
			end

			defaultgw_color = ""
			if link["defaultgw"] == 1 then
				defaultgw_color = "#ffff99"
			end
		%>

		<div class="tr cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=link.proto%>">
			<% if link.proto == "6" then %>
			<div class="td cbi-section-table-cell left" style="background-color:<%=defaultgw_color%>"><a href="http://[<%=link.remoteIP%>]/"><%=link["neighbor_originator"]%></a></div>
			<% else %>
			<div class="td cbi-section-table-cell left" style="background-color:<%=defaultgw_color%>"><a href="http://<%=link.remoteIP%>/"><%=link["neighbor_originator"]%></a></div>
			<% end %>
			<div class="td cbi-section-table-cell left" style="background-color:<%=defaultgw_color%>"><a href="http://<%=link.hostname%>/"><%=link["hostname"]%></a></div>
			<div class="td cbi-section-table-cell left" style="background-color:<%=defaultgw_color%>"><%=link["if"]%></div>
			<div class="td cbi-section-table-cell left" style="background-color:<%=defaultgw_color%>"><%=link["link_bindto"]%></div>
			<div class="td cbi-section-table-cell left" style="background-color:<%=defaultgw_color%>"><%=link["link_status"]%></div>
			<div class="td cbi-section-table-cell left" style="background-color:<%=defaultgw_color%>"><%=link["domain_metric_in"]%></div>
			<div class="td cbi-section-table-cell left" style="background-color:<%=defaultgw_color%>"><%=link["domain_metric_out"]%></div>
			<div class="td cbi-section-table-cell left" style="background-color:<%=snr_color%>" title="Signal: <%=link["signal"]%> Noise: <%=link["noise"]%>"><%=link["snr"]%></div>
		</div>
		<% 
			i = ((i % 2) + 1)
		end %>
	</div>
<br />

<%+status-olsr2/legend%>
</fieldset>
<%+status-olsr2/common_js%>
<%+footer%>
