<%#
 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.olsr"
local i = 1

if luci.http.formvalue("status") == "1" then
	local rv = {}
	for k, route in ipairs(routes) do
		local ETX = string.format("%.3f", tonumber(route.etx) or 0)
		rv[#rv+1] = {
			hostname = route.hostname,
	                dest = route.destination,
			genmask = route.genmask,
			gw = route.gateway,
			interface = route.networkInterface,
			metric = route.metric,
			etx = ETX,
			color = olsrtools.etx_color(tonumber(ETX))
		}
	end
	luci.http.prepare_content("application/json")
	luci.http.write_json(rv)
	return
end

%>

<%+header%>

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

XHR.poll(20, '<%=REQUEST_URI%>', { status: 1 },
		function(x, info)
		{

		var rt = document.getElementById('olsrd_routes');
			if (rt)
			{
				var s = '<div class="tr cbi-section-table-cell">' +
				'<div class="th cbi-section-table-cell"><%:Announced network%></div>' +
				'<div class="th cbi-section-table-cell"><%:OLSR gateway%></div>' +
				'<div class="th cbi-section-table-cell"><%:Interface%></div>' +
				'<div class="th cbi-section-table-cell"><%:Metric%></div>' +
				'<div class="th cbi-section-table-cell">ETX</div>' +
				'</div>';

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

					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">%s/%s</div>' +
							'<div class="td cbi-section-table-cell left">' +
			                	                '<a href="http://%s/cgi-bin-status.html">%s</a>',
								route.proto, route.dest, route.genmask, route.gw, route.gw
						)

					if (route.hostname) {
						if (route.proto == '6') {
							s += String.format(
			                                        ' / <a href="http://[%s]/cgi-bin-status.html">%s</a>',
								route.hostname, route.hostname || '?'
								);
						} else {
							s += String.format(
			                                        ' / <a href="http://%s/cgi-bin-status.html">%s</a>',
								route.hostname, route.hostname || '?'
								);
						}

					}
					s += String.format(
				                        '</div>' +
							'<div class="td cbi-section-table-cell left">%s</div>' +
							'<div class="td cbi-section-table-cell left">%s</div>' +
							'<div class="td cbi-section-table-cell left" style="background-color:%s">%s</div>' +
						'</div>',
						route.interface, route.metric, route.color, route.etx || '?'
					);
				}
                        }
			 rt.innerHTML = s;

		}
	);
//]]></script>



<h2 name="content"><%:Known OLSR routes%></h2>

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

<fieldset class="cbi-section">
<legend><%:Overview of currently known routes to other OLSR nodes%></legend>

<div class="table cbi-section-table" id="olsrd_routes">
		<div class="tr cbi-section-table-cell">
			<div class="th cbi-section-table-cell"><%:Announced network%></div>
			<div class="th cbi-section-table-cell"><%:OLSR gateway%></div>
			<div class="th cbi-section-table-cell"><%:Interface%></div>
			<div class="th cbi-section-table-cell"><%:Metric%></div>
			<div class="th cbi-section-table-cell">ETX</div>
		</div>

	<% for k, route in ipairs(routes) do
		ETX = tonumber(route.etx) or '0'
		color = olsrtools.etx_color(ETX)
	%>

		<div class="tr cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=route.proto%>">
			<div class="td cbi-section-table-cell left"><%=route.destination%>/<%=route.genmask%></div>
			<div class="td cbi-section-table-cell left">
				<% if route.proto == '6' then %>
				<a href="http://[<%=route.gateway%>]/cgi-bin-status.html"><%=route.gateway%></a>
				<% else  %>
				<a href="http://<%=route.gateway%>/cgi-bin-status.html"><%=route.gateway%></a>
				<% end %>
				<% if route.hostname then %>
					/ <a href="http://<%=route.Hostname%>/cgi-bin-status.html"><%=route.hostname%></a>  
				<% end %>
			</div>
			<div class="td cbi-section-table-cell left"><%=route.networkInterface%></div>
			<div class="td cbi-section-table-cell left"><%=route.metric%></div>
			<div class="td cbi-section-table-cell left" style="background-color:<%=color%>"><%=string.format("%.3f", ETX)%></div>
		</div>
	<% 
		i = ((i % 2) + 1)
	end %>
</div>

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