From 1bb4822dca6113f73e3bc89e2acf15935e6f8e92 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 3 Dec 2014 15:17:05 +0100 Subject: Rework LuCI build system * Rename subdirectories to their repective OpenWrt package names * Make each LuCI module its own standalone package * Deploy a shared luci.mk which is used by each module Makefile Signed-off-by: Jo-Philipp Wich --- .../luasrc/view/freifunk-services/services.htm | 201 +++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm (limited to 'applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm') diff --git a/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm b/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm new file mode 100644 index 0000000000..fbb39de884 --- /dev/null +++ b/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm @@ -0,0 +1,201 @@ +<%# +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 last_update +local i = 1 +local rawdata +local rawdata6 +local services_file_empty = true +local has_services = false +local uci = require "luci.model.uci".cursor() +local ip = require "luci.ip" + +uci:foreach("olsrd", "LoadPlugin", function(s) + if s.library == "olsrd_nameservice.so.0.3" then + local services_file=s.services_file + if services_file and fs.access(services_file) then + has_services = true + rawdata = fs.readfile(s.services_file) + else + services_file="/var/run/services_olsr" + if fs.access(services_file) then + has_services = true + rawdata = fs.readfile(services_file) + end + end + services_file=services_file..".ipv6" + if services_file and fs.access(services_file) then + has_services = true + rawdata6 = fs.readfile(services_file) + else + services_file="/var/run/services_olsr.ipv6" + if fs.access(services_file) then + has_services = true + rawdata6 = fs.readfile(services_file) + end + end + if rawdata and #rawdata ~= 0 then + services_file_empty = nil + end + if rawdata6 and #rawdata6 ~= 0 then + services_file_empty = nil + end + end +end) + + +if not has_services or services_file_empty then +%> + <%+header%> +
+ <%:No services can be shown, because olsrd is not running or the olsrd-nameservice Plugin is not loaded.%> + <%+footer%> +<% + return +end + +function fetch_services() + local tables = {} + if rawdata and #rawdata ~= 0 then + tables = utl.split(utl.trim(rawdata), "\n", nil, true) + -- remove first 3 lines + for i = 1,3 do + table.remove(tables,1) + end + end + local tables6 = {} + if rawdata6 and #rawdata6 ~= 0 then + tables6 = utl.split(utl.trim(rawdata6), "\n", nil, true) + -- remove first 3 lines + for i = 1,3 do + table.remove(tables6,1) + end + end + + -- store last line in last_update and remove it, then remove another empty line at the end + last_update=table.remove(tables) + table.remove(tables) + last_update=table.remove(tables6) + table.remove(tables6) + for k, v in ipairs(tables6) do + table.insert(tables, v) + end + return tables +end +local services = fetch_services() + +if luci.http.formvalue("status") == "1" then + local rv = {} + for k, line in ipairs(services) do + local field = utl.split(line, "[#|]", split, true) + local origin_lnk = ip.IPv6(pcdata(field[4])) or "" + local origin_link = "" + if #origin_lnk ~= 0 and origin_lnk:is6() then + origin_link = "["..origin_lnk:string().."]" + else + origin_link = pcdata(field[4]) + end + local url, proto, descr, origin = pcdata(field[1]), pcdata(field[2]), utl.trim(pcdata(field[3])), pcdata(field[4]) + rv[#rv+1] = { + url = url, + proto = proto, + origin = origin, + origin_link = origin_link, + descr = descr, + } + end + luci.http.prepare_content("application/json") + luci.http.write_json(rv) + return +end + +%> + +<%+header%> + + + + + + + +

<%:Services%>

+ +
+ <%:Internal services%> + + + + + + + + + + + <% + for k, line in ipairs(services) do + local field = {} + -- split line at # and |, 1=url, 2=proto, 3=description, 4=source + local field = utl.split(line, "[#|]", split, true) + local origin_lnk = ip.IPv6(pcdata(field[4])) or "" + local origin_link + if #origin_lnk ~= 0 and origin_lnk:is6() then + origin_link = "["..origin_lnk:string().."]" + else + origin_link = pcdata(field[4]) + end + local url, proto, descr, origin = pcdata(field[1]), pcdata(field[2]), utl.trim(pcdata(field[3])), pcdata(field[4]) + %> + + + + + + + <% i = ((i % 2) + 1) + end %> + +
<%:Url%><%:Protocol%><%:Source%>
<%=descr%><%=proto%><%=origin%>
+
+ <%=last_update%> +
+<%+footer%> -- cgit v1.2.3