applications/luci-olsr: Use jsoninfo instead of txtinfo as data source.
[project/luci.git] / applications / luci-olsr / luasrc / view / status-olsr / hna.htm
index bde1f00..689bafd 100644 (file)
@@ -10,39 +10,120 @@ You may obtain a copy of the License at
 
        http://www.apache.org/licenses/LICENSE-2.0
 
-$Id$
-
 -%>
+
 <%
 local i = 1
+
+if luci.http.formvalue("status") == "1" then
+       local rv = {}
+       for k, hna in ipairs(hna) do
+               rv[#rv+1] = {
+                       proto = hna["proto"],
+                       destination = hna["destination"],
+                       genmask = hna["genmask"],
+                       gateway = hna["gateway"],
+                       hostname = hna["hostname"],
+                       validityTime = hna["validityTime"]
+                       }
+       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(10, '<%=REQUEST_URI%>', { status: 1 },
+       function(x, info)
+       {
+       var hnadiv = document.getElementById('olsrd_hna');
+       if (hnadiv)
+       {
+               var s = '';
+               for (var idx = 0; idx < info.length; idx++)
+               {
+                       var hna = info[idx];
+                       var linkgw = ''
+                       s += '<tr class="cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-' + hna.proto + '">'
+                       if (hna.proto == '6') {
+                               linkgw = '<a href="http://[' + hna.gateway + ']/cgi-bin-status.html">' + hna.gateway + '</a>'
+                       } else {
+                               linkgw = '<a href="http://' + hna.gateway + '/cgi-bin-status.html">' + hna.gateway + '</a>'
+                       }
+
+                       if (hna.validityTime != undefined) {
+                               validity = hna.validityTime + 's'
+                       } else {
+                               validity = '-'
+                       }
+
+                       if (hna.hostname != undefined) {
+                               hostname = ' / <a href="http://' + hna.hostname + '/cgi-bin-status.html">' + hna.hostname + '</a>'
+                       } else {
+                               hostname = ''
+                       }
+
+                       s += String.format(
+                                '<td class="cbi-section-table-cell">%s</td>' +
+                                '<td class="cbi-section-table-cell">%s</td>' +
+                                '<td class="cbi-section-table-cell">%s</td>', hna.destination + '/' + hna.genmask, linkgw + hostname, validity
+                                )
+                       s += '</tr>'
+               }
+               hnadiv.innerHTML = s;
+       }
+}
+);
+//]]></script>
+
 <h2><a id="content" name="content"><%:Active host net announcements%></a></h2>
 
+<div id="togglebuttons"></div>
 <fieldset class="cbi-section">
+
        <legend><%:Overview of currently active OLSR host net announcements%></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"><%:Validity Time%></th>
                </tr>
 
-               <% for k, route in ipairs(routes) do %>
+               </thead>
+               <tbody id="olsrd_hna">
+               <% for k, route in ipairs(hna) do %>
 
-               <tr class="cbi-section-table-row cbi-rowstyle-<%=i%>">
-                       <td class="cbi-section-table-cell"><%=route.Destination%></td>
+               <tr class="cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=hna[k].proto%>">
+                       <td class="cbi-section-table-cell"><%=hna[k].destination%>/<%=hna[k].genmask%> </td>
                        <td class="cbi-section-table-cell">
-                               <a href="http://<%=route.Gateway%>/cgi-bin-status.html"><%=route.Gateway%></a>
-                               <% if route.Hostname then %>
-                                       / <a href="http://<%=route.Hostname%>/cgi-bin-status.html"><%=route.Hostname%></a>
+                               <% if hna[k].proto == '6' then %>
+                               <a href="http://[<%=hna[k].gateway%>]/cgi-bin-status.html"><%=hna[k].gateway%></a>
+                               <% else %>
+                               <a href="http://<%=hna[k].gateway%>/cgi-bin-status.html"><%=hna[k].gateway%></a>
+                               <% end %>
+                               <% if hna[k].hostname then %>
+                                / <a href="http://<%=hna[k].hostname%>/cgi-bin-status.html"><%=hna[k].hostname%></a>
                                <% end %>
                        </td>
+                       <% if hna[k].validityTime then
+                               validity = hna[k].validityTime .. 's'
+                       else
+                               validity = '-'
+                       end %>
+
+                       <td class="cbi-section-table-cell"><%=validity%></td>
                </tr>
 
                <% i = ((i % 2) + 1)
                end %>
+               </tbody>
        </table>
 </fieldset>
+
+<%+status-olsr/common_js%>
 <%+footer%>