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