From bba585f063ccc1e483346c9b5625d4dcf84d6586 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Sun, 27 Apr 2008 16:12:24 +0000 Subject: * Added initial version of RPC info API * Fixed client splash --- module/admin-core/src/controller/admin/uci.lua | 2 +- module/admin-core/src/controller/splash/splash.lua | 10 +++++-- .../src/model/cbi/admin_index/contact.lua | 2 +- .../src/model/cbi/admin_index/freifunk.lua | 13 ++++++++ module/admin-core/src/model/menu/00admin.lua | 1 + module/admin-core/src/view/splash/splash.htm | 28 ++++++++++------- .../admin-core/src/view/splash_splash/splash.htm | 5 ++-- .../public-core/src/view/public_status/index.htm | 11 +------ .../public-core/src/view/public_status/routes.htm | 13 ++------ module/rpc-core/Makefile | 35 ++++++++++++++++++++++ module/rpc-core/src/controller/rpc/luciinfo.lua | 35 ++++++++++++++++++++++ 11 files changed, 118 insertions(+), 37 deletions(-) create mode 100644 module/admin-core/src/model/cbi/admin_index/freifunk.lua create mode 100644 module/rpc-core/Makefile create mode 100644 module/rpc-core/src/controller/rpc/luciinfo.lua (limited to 'module') diff --git a/module/admin-core/src/controller/admin/uci.lua b/module/admin-core/src/controller/admin/uci.lua index 2d19db1b29..1a3ae1279f 100644 --- a/module/admin-core/src/controller/admin/uci.lua +++ b/module/admin-core/src/controller/admin/uci.lua @@ -13,7 +13,7 @@ function action_apply() -- Collect files to be applied for i, line in ipairs(ffluci.util.split(changes)) do local r = line:match("^-?([^.]+)") - if r then + if r and not ffluci.util.contains(apply, ffluci.config.uci_oncommit[r]) then table.insert(apply, ffluci.config.uci_oncommit[r]) end end diff --git a/module/admin-core/src/controller/splash/splash.lua b/module/admin-core/src/controller/splash/splash.lua index 7aec62d33c..4e8a79a22f 100644 --- a/module/admin-core/src/controller/splash/splash.lua +++ b/module/admin-core/src/controller/splash/splash.lua @@ -1,9 +1,13 @@ -module("ffluci.controller.public.splash", package.seeall) +module("ffluci.controller.splash.splash", package.seeall) function action_activate() local mac = ffluci.sys.net.ip4mac(ffluci.http.remote_addr()) - os.execute("luci-splash add "..mac) - ffluci.http.request_redirect() + if mac and ffluci.http.formvalue("accept") then + os.execute("luci-splash add "..mac.." >/dev/null 2>&1") + ffluci.http.redirect(ffluci.model.uci.get("freifunk", "community", "homepage")) + else + ffluci.http.request_redirect() + end end function action_accepted() diff --git a/module/admin-core/src/model/cbi/admin_index/contact.lua b/module/admin-core/src/model/cbi/admin_index/contact.lua index ecb4bedd78..66a1ec4bde 100644 --- a/module/admin-core/src/model/cbi/admin_index/contact.lua +++ b/module/admin-core/src/model/cbi/admin_index/contact.lua @@ -5,7 +5,7 @@ Diese Informationen sollten nach der Picopeering Vereinbarung mindestens deine E Damit dein Knoten durch Topographieprogramme erfasst werden kann, gib bitte deine Geokoordinaten oder zumindest deine Straße und Hausnummer unter Standort an.]])) -c = m:section(NamedSection, "contact") +c = m:section(NamedSection, "contact", "public") c:option(Value, "nickname", translate("nickname", "Pseudonym")) c:option(Value, "name", translate("name", "Name")) diff --git a/module/admin-core/src/model/cbi/admin_index/freifunk.lua b/module/admin-core/src/model/cbi/admin_index/freifunk.lua new file mode 100644 index 0000000000..64e916f32b --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_index/freifunk.lua @@ -0,0 +1,13 @@ +-- Todo: Translate +m = Map("freifunk", "Freifunk", [[Informationen über die lokale Freifunkgemeinschaft.]]) + +c = m:section(NamedSection, "community", "public") + +c:option(Value, "name", "Gemeinschaft") +c:option(Value, "homepage", "Webseite") +c:option(Value, "essid", "ESSID") +c:option(Value, "bssid", "BSSID") +c:option(Value, "realm", "Realm") +c:option(Value, "pool", "Adressbereich") + +return m \ No newline at end of file diff --git a/module/admin-core/src/model/menu/00admin.lua b/module/admin-core/src/model/menu/00admin.lua index 3754a5bc8b..7d56b8b545 100644 --- a/module/admin-core/src/model/menu/00admin.lua +++ b/module/admin-core/src/model/menu/00admin.lua @@ -1,6 +1,7 @@ add("admin", "index", "Übersicht", 10) act("contact", "Kontakt") act("luci", "Oberfläche") +act("freifunk", "Freifunk") add("admin", "system", "System", 30) act("packages", "Paketverwaltung") diff --git a/module/admin-core/src/view/splash/splash.htm b/module/admin-core/src/view/splash/splash.htm index 2cae0cdf97..db4bd0f780 100644 --- a/module/admin-core/src/view/splash/splash.htm +++ b/module/admin-core/src/view/splash/splash.htm @@ -1,23 +1,31 @@ +

<%:welcome Willkommen%>!

+

Du bist jetzt mit dem freien Funknetz -<%~freifunk.community.name%> -verbunden. Wir sind ein experimentelles Gemeinschaftsnetzwerk, aber kein Internetanbieter. - -
+<%~freifunk.community.name%> verbunden.
+Wir sind ein experimentelles Gemeinschaftsnetzwerk, aber kein Internetanbieter. +

+

Ein Zugang ins Internet ist trotzdem möglich, da einige Freifunker ihre privaten Internetzugänge zur Verfügung stellen. Diese Zugänge müssen sich hier alle teilen. Bitte sei Dir dessen bewusst und verhalte Dich dementsprechend:

+

-Wenn Du unsere Idee gut findest, kannst Du mitmachen bzw. uns unterstützen: +Wenn Du unsere Idee gut findest, kannst Du uns unterstützen:

+

+ +

+Mit einem Klick auf <%:accept Annehmen%> kannst du für <%~luci_splash.general.leasetime%> Stunden +über unser Netz das Internet verwenden. Dann wirst du erneut aufgefordet, diese Bedingungen zu akzeptieren.

\ No newline at end of file diff --git a/module/admin-core/src/view/splash_splash/splash.htm b/module/admin-core/src/view/splash_splash/splash.htm index fee61e0278..9c165802fb 100644 --- a/module/admin-core/src/view/splash_splash/splash.htm +++ b/module/admin-core/src/view/splash_splash/splash.htm @@ -1,6 +1,7 @@ <%+header%> <%+splash/splash%> -
- + + +
<%+footer%> \ No newline at end of file diff --git a/module/public-core/src/view/public_status/index.htm b/module/public-core/src/view/public_status/index.htm index 44c4ea7a76..be0b96888b 100644 --- a/module/public-core/src/view/public_status/index.htm +++ b/module/public-core/src/view/public_status/index.htm @@ -47,19 +47,10 @@ <%:iface Schnittstelle%> <% - --- UGLY hack is UGLY -if routes[1] and routes[1].Gateway:sub(-2) == "00" then - local be = true -else - local be = false -end - - for i, rt in pairs(routes) do %> -<%=ffluci.sys.net.hexip4(rt.Gateway, be)%> +<%=ffluci.sys.net.hexip4(rt.Gateway)%> <%=rt.Metric%> <%=rt.Iface%> diff --git a/module/public-core/src/view/public_status/routes.htm b/module/public-core/src/view/public_status/routes.htm index cd694d3246..85b02212d7 100644 --- a/module/public-core/src/view/public_status/routes.htm +++ b/module/public-core/src/view/public_status/routes.htm @@ -13,19 +13,12 @@ <% local routes = ffluci.sys.net.routes() --- UGLY hack is UGLY -if routes[1] and routes[1].Gateway:sub(-2) == "00" then - local be = true -else - local be = false -end - for i, r in pairs(routes) do %> -<%=ffluci.sys.net.hexip4(r.Destination, be)%> -<%=ffluci.sys.net.hexip4(r.Mask, be)%> -<%=ffluci.sys.net.hexip4(r.Gateway, be)%> +<%=ffluci.sys.net.hexip4(r.Destination)%> +<%=ffluci.sys.net.hexip4(r.Mask)%> +<%=ffluci.sys.net.hexip4(r.Gateway)%> <%=r.Metric%> <%=r.Iface%> diff --git a/module/rpc-core/Makefile b/module/rpc-core/Makefile new file mode 100644 index 0000000000..113799af6c --- /dev/null +++ b/module/rpc-core/Makefile @@ -0,0 +1,35 @@ +LUAC = luac +LUAC_OPTIONS = -s + +FILES = i18n/* view/*/*.htm + +CFILES = controller/*/*.lua model/cbi/*/*.lua model/menu/*.lua + +DIRECTORIES = model/cbi model/menu controller i18n view + + +INFILES = $(CFILES:%=src/%) +OUTDIRS = $(DIRECTORIES:%=dist/%) +CPFILES = $(FILES:%=src/%) + +.PHONY: all compile source clean depends + +all: compile + + +depends: + mkdir -p $(OUTDIRS) + for i in $(CPFILES); do if [ -f "$$i" ]; then i=$$(echo $$i | cut -d/ -f2-); \ + mkdir -p dist/$$(dirname $$i); cp src/$$i dist/$$i; fi; done + +compile: depends + for i in $(INFILES); do if [ -f "$$i" ]; then i=$$(echo $$i | cut -d/ -f2-); \ + mkdir -p dist/$$(dirname $$i); $(LUAC) $(LUAC_OPTIONS) -o dist/$$i src/$$i; fi; done + +source: depends + for i in $(INFILES); do if [ -f "$$i" ]; then i=$$(echo $$i | cut -d/ -f2-); \ + mkdir -p dist/$$(dirname $$i); cp src/$$i dist/$$i; fi; done + + +clean: + rm dist -rf diff --git a/module/rpc-core/src/controller/rpc/luciinfo.lua b/module/rpc-core/src/controller/rpc/luciinfo.lua new file mode 100644 index 0000000000..8d10fa8850 --- /dev/null +++ b/module/rpc-core/src/controller/rpc/luciinfo.lua @@ -0,0 +1,35 @@ +module("ffluci.controller.rpc.luciinfo", package.seeall) + +function action_index() + local uci = ffluci.model.uci.StateSession() + + ffluci.http.textheader() + + -- General + print("luciinfo.api=1") + print("luciinfo.version=" .. tostring(ffluci.__version__)) + + -- Sysinfo + local s, m, r = ffluci.sys.sysinfo() + local dr = ffluci.sys.net.defaultroute() + dr = dr and ffluci.sys.net.hexip4(dr.Gateway) or "" + local l1, l5, l15 = ffluci.sys.loadavg() + + print("sysinfo.system=" .. sanitize(s)) + print("sysinfo.cpu=" .. sanitize(m)) + print("sysinfo.ram=" .. sanitize(r)) + print("sysinfo.hostname=" .. sanitize(ffluci.sys.hostname())) + print("sysinfo.load1=" .. tostring(l1)) + print("sysinfo.load5=" .. tostring(l5)) + print("sysinfo.load15=" .. tostring(l15)) + print("sysinfo.defaultgw=" .. dr) + + + -- Freifunk + local ff = uci:show("freifunk", true) or "" + print(ff) +end + +function sanitize(val) + return val:gsub("\n", "\t") +end \ No newline at end of file -- cgit v1.2.3