<%#
 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.rtpMetricCost)/1024 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" src="<%=resource%>/cbi.js"></script>
<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 = '';
				for (var idx = 0; idx < info.length; idx++)
				{
					var route = info[idx];

					s += String.format(
						'<tr class="cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-%s">' +
							'<td class="cbi-section-table-cell">%s/%s</td>' +
							'<td class="cbi-section-table-cell">' +
			                	                '<a href="http://%s/cgi-bin-status.html">%s</a>',
								route.proto, route.dest, route.genmask, route.gw, route.gw
						)

					if (route.hostname) {
						if (hna.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(
				                        '</td>' +
							'<td class="cbi-section-table-cell">%s</td>' +
							'<td class="cbi-section-table-cell">%s</td>' +
							'<td class="cbi-section-table-cell" style="background-color:%s">%s</td>' +
						'</tr>',
						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>

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

	<tbody id="olsrd_routes">

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

		<tr class="cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=route.proto%>">
			<td class="cbi-section-table-cell"><%=route.destination%>/<%=route.genmask%></td>
			<td class="cbi-section-table-cell">
				<% 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 %>
			</td>
			<td class="cbi-section-table-cell"><%=route.networkInterface%></td>
			<td class="cbi-section-table-cell"><%=route.metric%></td>
			<td class="cbi-section-table-cell" style="background-color:<%=color%>"><%=string.format("%.3f", ETX)%></td>
		</tr>
	<% 
		i = ((i % 2) + 1)
	end %>
	</tbody>
</table>

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