From 014b7ff1fd9d8ac370fe337c24609d626ab64022 Mon Sep 17 00:00:00 2001 From: Manuel Munz Date: Wed, 9 Nov 2011 18:47:55 +0000 Subject: applications/luci-olsr-services: Update using javascript/json --- .../luasrc/view/freifunk-services/services.htm | 124 ++++++++++++++++----- 1 file changed, 94 insertions(+), 30 deletions(-) diff --git a/applications/luci-olsr-services/luasrc/view/freifunk-services/services.htm b/applications/luci-olsr-services/luasrc/view/freifunk-services/services.htm index c9385cd57..3b6a523d0 100644 --- a/applications/luci-olsr-services/luasrc/view/freifunk-services/services.htm +++ b/applications/luci-olsr-services/luasrc/view/freifunk-services/services.htm @@ -1,8 +1,20 @@ -<%+header%> +<%# +LuCI - Lua Configuration Interface + +Copyright 2011 Manuel Munz + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +-%> <% local fs = require "luci.fs" local utl = require "luci.util" +local i = 1 -- check if nameservice plugin is enabled and where to find the services file local has_services = false @@ -22,7 +34,6 @@ uci:foreach("olsrd", "LoadPlugin", function(s) end end) - function fetch_services() local rawdata = fs.readfile(services_file) @@ -48,40 +59,93 @@ function fetch_services() return tables end -%> +local table = fetch_services() -<% if has_services then %> -
-

<%:Services%>

-
-
-
- - - - - - - <% table=fetch_services() - local i = 1 +if luci.http.formvalue("status") == "1" then + local rv = {} for k, line in ipairs(table) do - local field = {} - -- split line at # and |, 1=url, 2=proto, 3=description, 4=source local field = utl.split(line, "[#|]", split, true) local url,descr,origin = pcdata(field[1]),pcdata(field[3]),pcdata(field[4]) - %> - - - - - <% if i == 1 then i = 0 elseif i == 0 then i = 1 end %> - <%end%> -
<%:Url%><%:Source%>
<%=descr%><%=origin%>
-
-
-
+ local rs = i + rv[#rv+1] = { + url = url, + origin = origin, + descr = descr, + rs = rs + } + if i == 1 then i = 0 elseif i == 0 then i = 1 end + end + luci.http.prepare_content("application/json") + luci.http.write_json(rv) + return +end + +%> + +<% if has_services then %> + +<%+header%> + + + + + + + +

<%:Services%>

+ +
+ <%:Internal services%> + + + + + + + + <% + for k, line in ipairs(table) do + local field = {} + -- split line at # and |, 1=url, 2=proto, 3=description, 4=source + local field = utl.split(line, "[#|]", split, true) + local url,descr,origin = pcdata(field[1]),pcdata(field[3]),pcdata(field[4]) + %> + + + + + + <% if i == 1 then i = 0 elseif i == 0 then i = 1 end + end %> + +
<%:Url%><%:Source%>
<%=descr%><%=origin%>

<%=last_update%> +
<%else%> <%:No services can be shown, because olsrd is not running or the olsrd-nameservice Plugin is not loaded.%> -- cgit v1.2.3