From d35a620e9f5665a94967f4bd02c93581a1dd7e00 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Tue, 27 May 2008 12:23:39 +0000 Subject: commit 4f6198094cf4134179d1f9c9fa8f79759a27c87e Author: Felix Fietkau Date: Tue May 27 13:56:12 2008 +0200 rename src/ to luasrc/ --- .../luasrc/controller/freifunk/freifunk.lua | 68 +++++++++ .../luasrc/controller/freifunk/luciinfo.lua | 45 ++++++ .../freifunk/luasrc/controller/freifunk/olsr.lua | 164 +++++++++++++++++++++ .../freifunk/luasrc/i18n/admin_index_contact.en | 11 ++ .../freifunk/luasrc/model/cbi/freifunk/contact.lua | 18 +++ .../luasrc/model/cbi/freifunk/freifunk.lua | 19 +++ .../luasrc/view/freifunk-olsr/error_olsr.htm | 6 + modules/freifunk/luasrc/view/freifunk-olsr/hna.htm | 17 +++ .../freifunk/luasrc/view/freifunk-olsr/index.htm | 43 ++++++ modules/freifunk/luasrc/view/freifunk-olsr/mid.htm | 17 +++ .../freifunk/luasrc/view/freifunk-olsr/routes.htm | 36 +++++ .../luasrc/view/freifunk-olsr/topology.htm | 23 +++ modules/freifunk/luasrc/view/freifunk/contact.htm | 13 ++ modules/freifunk/luasrc/view/freifunk/index.htm | 11 ++ .../freifunk/luasrc/view/public_status/index.htm | 77 ++++++++++ .../freifunk/luasrc/view/public_status/iwscan.htm | 38 +++++ .../freifunk/luasrc/view/public_status/routes.htm | 28 ++++ 17 files changed, 634 insertions(+) create mode 100644 modules/freifunk/luasrc/controller/freifunk/freifunk.lua create mode 100644 modules/freifunk/luasrc/controller/freifunk/luciinfo.lua create mode 100644 modules/freifunk/luasrc/controller/freifunk/olsr.lua create mode 100644 modules/freifunk/luasrc/i18n/admin_index_contact.en create mode 100644 modules/freifunk/luasrc/model/cbi/freifunk/contact.lua create mode 100644 modules/freifunk/luasrc/model/cbi/freifunk/freifunk.lua create mode 100644 modules/freifunk/luasrc/view/freifunk-olsr/error_olsr.htm create mode 100644 modules/freifunk/luasrc/view/freifunk-olsr/hna.htm create mode 100644 modules/freifunk/luasrc/view/freifunk-olsr/index.htm create mode 100644 modules/freifunk/luasrc/view/freifunk-olsr/mid.htm create mode 100644 modules/freifunk/luasrc/view/freifunk-olsr/routes.htm create mode 100644 modules/freifunk/luasrc/view/freifunk-olsr/topology.htm create mode 100644 modules/freifunk/luasrc/view/freifunk/contact.htm create mode 100644 modules/freifunk/luasrc/view/freifunk/index.htm create mode 100644 modules/freifunk/luasrc/view/public_status/index.htm create mode 100644 modules/freifunk/luasrc/view/public_status/iwscan.htm create mode 100644 modules/freifunk/luasrc/view/public_status/routes.htm (limited to 'modules/freifunk/luasrc') diff --git a/modules/freifunk/luasrc/controller/freifunk/freifunk.lua b/modules/freifunk/luasrc/controller/freifunk/freifunk.lua new file mode 100644 index 0000000000..104f6cdfc3 --- /dev/null +++ b/modules/freifunk/luasrc/controller/freifunk/freifunk.lua @@ -0,0 +1,68 @@ +module("luci.controller.freifunk.freifunk", package.seeall) + +function index() + local page = node() + page.target = alias("freifunk") + + local page = node("freifunk") + page.title = "Freifunk" + page.target = alias("freifunk", "index") + page.order = 5 + page.setuser = "nobody" + page.setgroup = "nogroup" + + local page = node("freifunk", "index") + page.target = template("freifunk/index") + page.title = "Übersicht" + page.order = 10 + + local page = node("freifunk", "index", "contact") + page.target = template("freifunk/contact") + page.title = "Kontakt" + + + local page = node("freifunk", "status") + page.target = action_status + page.title = "Status" + page.order = 20 + page.setuser = false + page.setgroup = false + + local page = node("freifunk", "status", "routes") + page.target = template("public_status/routes") + page.title = "Routingtabelle" + page.order = 10 + + local page = node("freifunk", "status", "iwscan") + page.target = template("public_status/iwscan") + page.title = "WLAN-Scan" + page.order = 20 + + local page = node("admin", "index", "freifunk") + page.target = cbi("freifunk/freifunk") + page.title = "Freifunk" + page.order = 30 + + local page = node("admin", "index", "contact") + page.target = cbi("freifunk/contact") + page.title = "Kontakt" + page.order = 40 +end + +function action_status() + local data = {} + + data.s, data.m, data.r = luci.sys.sysinfo() + + data.wifi = luci.sys.wifi.getiwconfig() + + data.routes = {} + for i, r in pairs(luci.sys.net.routes()) do + if r.Destination == "00000000" then + table.insert(data.routes, r) + end + end + + + luci.template.render("public_status/index", data) +end \ No newline at end of file diff --git a/modules/freifunk/luasrc/controller/freifunk/luciinfo.lua b/modules/freifunk/luasrc/controller/freifunk/luciinfo.lua new file mode 100644 index 0000000000..aabab19a12 --- /dev/null +++ b/modules/freifunk/luasrc/controller/freifunk/luciinfo.lua @@ -0,0 +1,45 @@ +module("luci.controller.freifunk.luciinfo", package.seeall) + +function index() + node("freifunk", "luciinfo").target = action_index +end + +function action_index() + local uci = luci.model.uci.StateSession() + + luci.http.prepare_content("text/plain") + + -- General + print("luciinfo.api=1") + print("luciinfo.version=" .. tostring(require("luci").__version__)) + + -- Sysinfo + local s, m, r = luci.sys.sysinfo() + local dr = luci.sys.net.defaultroute() + dr = dr and luci.sys.net.hexip4(dr.Gateway) or "" + local l1, l5, l15 = luci.sys.loadavg() + + print("sysinfo.system=" .. sanitize(s)) + print("sysinfo.cpu=" .. sanitize(m)) + print("sysinfo.ram=" .. sanitize(r)) + print("sysinfo.hostname=" .. sanitize(luci.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:sections("freifunk") or {} + for k, v in pairs(ff) do + for i, j in pairs(v) do + if i:sub(1, 1) ~= "." then + print("freifunk." .. k .. "." .. i .. "=" .. j) + end + end + end +end + +function sanitize(val) + return val:gsub("\n", "\t") +end \ No newline at end of file diff --git a/modules/freifunk/luasrc/controller/freifunk/olsr.lua b/modules/freifunk/luasrc/controller/freifunk/olsr.lua new file mode 100644 index 0000000000..29858fc0e0 --- /dev/null +++ b/modules/freifunk/luasrc/controller/freifunk/olsr.lua @@ -0,0 +1,164 @@ +module("luci.controller.freifunk.olsr", package.seeall) +require("luci.sys") + +function index() + local page = node("freifunk", "olsr") + page.target = action_index + page.title = "OLSR" + page.order = 30 + + local page = node("freifunk", "olsr", "routes") + page.target = action_routes + page.title = "Routen" + page.order = 10 + + local page = node("freifunk", "olsr", "topology") + page.target = action_topology + page.title = "Topologie" + page.order = 20 + + local page = node("freifunk", "olsr", "hna") + page.target = action_hna + page.title = "HNA" + page.order = 30 + + local page = node("freifunk", "olsr", "mid") + page.target = action_mid + page.title = "MID" + page.order = 50 +end + +function action_index() + local data = fetch_txtinfo("links") + + if not data or not data.Links then + luci.template.render("freifunk-olsr/error_olsr") + return nil + end + + local function compare(a, b) + if tonumber(a.ETX) == 0 then + return false + end + + if tonumber(b.ETX) == 0 then + return true + end + + return tonumber(a.ETX) < tonumber(b.ETX) + end + + table.sort(data.Links, compare) + + luci.template.render("freifunk-olsr/index", {links=data.Links}) +end + +function action_routes() + local data = fetch_txtinfo("routes") + + if not data or not data.Routes then + luci.template.render("freifunk-olsr/error_olsr") + return nil + end + + local function compare(a, b) + if tonumber(a.ETX) == 0 then + return false + end + + if tonumber(b.ETX) == 0 then + return true + end + + return tonumber(a.ETX) < tonumber(b.ETX) + end + + table.sort(data.Routes, compare) + + luci.template.render("freifunk-olsr/routes", {routes=data.Routes}) +end + +function action_topology() + local data = fetch_txtinfo("topology") + + if not data or not data.Topology then + luci.template.render("freifunk-olsr/error_olsr") + return nil + end + + local function compare(a, b) + return a["Destination IP"] < b["Destination IP"] + end + + table.sort(data.Topology, compare) + + luci.template.render("freifunk-olsr/topology", {routes=data.Topology}) +end + +function action_hna() + local data = fetch_txtinfo("hna") + + if not data or not data.HNA then + luci.template.render("freifunk-olsr/error_olsr") + return nil + end + + local function compare(a, b) + return a.Network < b.Network + end + + table.sort(data.HNA, compare) + + luci.template.render("freifunk-olsr/hna", {routes=data.HNA}) +end + +function action_mid() + local data = fetch_txtinfo("mid") + + if not data or not data.MID then + luci.template.render("freifunk-olsr/error_olsr") + return nil + end + + local function compare(a, b) + return a.IP < b.IP + end + + table.sort(data.MID, compare) + + luci.template.render("freifunk-olsr/mid", {mids=data.MID}) +end + + +-- Internal +function fetch_txtinfo(otable) + otable = otable or "" + local rawdata = luci.sys.httpget("http://127.0.0.1:2006/"..otable) + + if #rawdata == 0 then + return nil + end + + local data = {} + + local tables = luci.util.split(luci.util.trim(rawdata), "\n\n") + + + for i, tbl in ipairs(tables) do + local lines = luci.util.split(tbl, "\n") + local name = table.remove(lines, 1):sub(8) + local keys = luci.util.split(table.remove(lines, 1), "\t") + + data[name] = {} + + for j, line in ipairs(lines) do + local fields = luci.util.split(line, "\t") + data[name][j] = {} + for k, key in pairs(keys) do + data[name][j][key] = fields[k] + end + end + end + + return data +end \ No newline at end of file diff --git a/modules/freifunk/luasrc/i18n/admin_index_contact.en b/modules/freifunk/luasrc/i18n/admin_index_contact.en new file mode 100644 index 0000000000..e2402e91fc --- /dev/null +++ b/modules/freifunk/luasrc/i18n/admin_index_contact.en @@ -0,0 +1,11 @@ +contact1 = [[This information will be available on the public contact page. +As stated in the Picopeering Agreement you should at least enter your e-mail address. +To display your router on any topography map, please enter your geographical coordinates or at least +your street and house number in the location field.]] +nickname = "Nickname" +mail1 = "This field is essential!" +phone = "Phone" +location = "Location" +coord = "Coordinates" +coord1 = "Latitude;Longitude (e.g. 51.5;12.9)" +note = "Note" \ No newline at end of file diff --git a/modules/freifunk/luasrc/model/cbi/freifunk/contact.lua b/modules/freifunk/luasrc/model/cbi/freifunk/contact.lua new file mode 100644 index 0000000000..66a1ec4bde --- /dev/null +++ b/modules/freifunk/luasrc/model/cbi/freifunk/contact.lua @@ -0,0 +1,18 @@ +-- Todo: Translate +m = Map("freifunk", translate("contact", "Kontakt"), translate("contact1", [[Diese Daten sind +auf der öffentlichen Kontaktseite sichtbar. Bitte gib an, wie man dich am besten kontaktieren kann. +Diese Informationen sollten nach der Picopeering Vereinbarung mindestens deine E-Mail-Adresse enthalten. +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", "public") + +c:option(Value, "nickname", translate("nickname", "Pseudonym")) +c:option(Value, "name", translate("name", "Name")) +c:option(Value, "mail", translate("mail", "E-Mail"), translate("mail1", "Bitte unbedingt angeben!")) +c:option(Value, "phone", translate("phone", "Telefon")) +c:option(Value, "location", translate("location", "Standort")) +c:option(Value, "geo", translate("coord", "Koordinaten"), translate("coord1", "Bitte als Breite;Länge (z.B: 51.5;12.9) angeben")) +c:option(Value, "note", translate("note", "Notiz")) + +return m \ No newline at end of file diff --git a/modules/freifunk/luasrc/model/cbi/freifunk/freifunk.lua b/modules/freifunk/luasrc/model/cbi/freifunk/freifunk.lua new file mode 100644 index 0000000000..fe9e285b49 --- /dev/null +++ b/modules/freifunk/luasrc/model/cbi/freifunk/freifunk.lua @@ -0,0 +1,19 @@ +-- Todo: Translate +m = Map("freifunk", "Freifunk") + +c = m:section(NamedSection, "community", "public", "Gemeinschaft", [[Dies sind die Grundeinstellungen +für die lokale Freifunkgemeinschaft. Diese Werte wirken sich NICHT auf die Konfiguration +des Routers aus, sondern definieren nur die Vorgaben für den Freifunkassistenten.]]) +c:option(Value, "name", "Gemeinschaft") +c:option(Value, "homepage", "Webseite") +c:option(Value, "essid", "ESSID") +c:option(Value, "bssid", "BSSID") +c:option(Value, "channel", "Funkkanal") +c:option(Value, "realm", "Realm") +c:option(Value, "net", "Adressbereich") +c:option(Value, "mask", "Netzmaske") +c:option(Value, "dns", "DNS-Server") +c:option(Value, "dhcp", "DHCP-Bereich") +c:option(Value, "dhcpmask", "DHCP-Maske") + +return m \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/freifunk-olsr/error_olsr.htm b/modules/freifunk/luasrc/view/freifunk-olsr/error_olsr.htm new file mode 100644 index 0000000000..25426f50d7 --- /dev/null +++ b/modules/freifunk/luasrc/view/freifunk-olsr/error_olsr.htm @@ -0,0 +1,6 @@ +<%+header%> +

<%:olsr OLSR%>

+

<%:olsrerror1 Es konnte keine Verbindung zum OLSR-Daemon hergestellt werden!%>

+

<%:olsrerror2 Um die Statusinformationen abfragen zu können muss der OLSR-Daemon gestartet +und das Plugin "txtinfo" geladen sein.%>

+<%+footer%> \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/freifunk-olsr/hna.htm b/modules/freifunk/luasrc/view/freifunk-olsr/hna.htm new file mode 100644 index 0000000000..c13369f426 --- /dev/null +++ b/modules/freifunk/luasrc/view/freifunk-olsr/hna.htm @@ -0,0 +1,17 @@ +<%+header%> +

<%:olsrhna OLSR-HNA%>

+
+ + + + + +<% for k, route in ipairs(routes) do %> + + + + +<% end %> +
<%:destination Ziel%><%:gateway Gateway%>
<%=route.Network%>/<%=route.Netmask%><%=route.Gateway%>
+
+<%+footer%> \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/freifunk-olsr/index.htm b/modules/freifunk/luasrc/view/freifunk-olsr/index.htm new file mode 100644 index 0000000000..0633d1f456 --- /dev/null +++ b/modules/freifunk/luasrc/view/freifunk-olsr/index.htm @@ -0,0 +1,43 @@ +<%+header%> +

<%:olsrlinks OLSR-Verbindungen%>

+

<%:olsrlinks1 Übersicht über aktuell bestehende OLSR-Verbindungen%>

+
+ + + + + + + + +<% for k, link in ipairs(links) do + local color = "#bb3333" + + link.ETX = tonumber(link.ETX) + if link.ETX == 0 then + color = "#bb3333" + elseif link.ETX < 4 then + color = "#00cc00" + elseif link.ETX < 10 then + color = "#ffcb05" + elseif link.ETX < 100 then + color = "#ff6600" + end +%> + + + + + + + +<% end %> +
<%:destination Ziel%><%:local Lokal%>LQNLQETX
"><%=link["remote IP"]%><%=link["Local IP"]%><%=link.LinkQuality%><%=link.NLQ%><%=link.ETX%>
+
+

<%:legend Legende%>:

+ +<%+footer%> \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/freifunk-olsr/mid.htm b/modules/freifunk/luasrc/view/freifunk-olsr/mid.htm new file mode 100644 index 0000000000..6553237ea5 --- /dev/null +++ b/modules/freifunk/luasrc/view/freifunk-olsr/mid.htm @@ -0,0 +1,17 @@ +<%+header%> +

<%:olsrmid OLSR-MID%>

+
+ + + + + +<% for k, mid in ipairs(mids) do %> + + + + +<% end %> +
<%:node Knoten%><%:aliases Aliasse%>
<%=mid.IP%><%=mid.Aliases%>
+
+<%+footer%> \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/freifunk-olsr/routes.htm b/modules/freifunk/luasrc/view/freifunk-olsr/routes.htm new file mode 100644 index 0000000000..f3a0fd3366 --- /dev/null +++ b/modules/freifunk/luasrc/view/freifunk-olsr/routes.htm @@ -0,0 +1,36 @@ +<%+header%> +

<%:olsrlinks OLSR-Routen%>

+
+ + + + + + + + +<% for k, route in ipairs(routes) do + local color = "#bb3333" + + route.ETX = tonumber(route.ETX) + if route.ETX == 0 then + color = "#bb3333" + elseif route.ETX < 4 then + color = "#00cc00" + elseif route.ETX < 10 then + color = "#ffcb05" + elseif route.ETX < 100 then + color = "#ff6600" + end +%> + + + + + + + +<% end %> +
<%:destination Ziel%><%:gateway Gateway%><%:interface Schnittstelle%><%:metric Metrik%>ETX
<%=route.Destination%><%=route.Gateway%><%=route.Interface%><%=route.Metric%><%=route.ETX%>
+
+<%+footer%> \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/freifunk-olsr/topology.htm b/modules/freifunk/luasrc/view/freifunk-olsr/topology.htm new file mode 100644 index 0000000000..c622026d48 --- /dev/null +++ b/modules/freifunk/luasrc/view/freifunk-olsr/topology.htm @@ -0,0 +1,23 @@ +<%+header%> +

<%:olsrtopo OLSR-Topologie%>

+
+ + + + + + + + +<% for k, route in ipairs(routes) do %> + + + + + + + +<% end %> +
<%:destination Ziel%><%:lasthop Letzter Router%>LQILQETX
"><%=route["Destination IP"]%>"><%=route["Last hop IP"]%><%=route.LQ%><%=route.ILQ%><%=route.ETX%>
+
+<%+footer%> \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/freifunk/contact.htm b/modules/freifunk/luasrc/view/freifunk/contact.htm new file mode 100644 index 0000000000..c240916db8 --- /dev/null +++ b/modules/freifunk/luasrc/view/freifunk/contact.htm @@ -0,0 +1,13 @@ +<%+header%> +<% local contact = luci.model.uci.sections("freifunk").contact %> +

<%:contact Kontakt%>

+ + + + + + + + +
<%:nickname Pseudonym%>:<%=contact.nickname%>
<%:name Name%>:<%=contact.name%>
<%:mail E-Mail%>:<%=contact.mail%>
<%:phone Telefon%>:<%=contact.phone%>
<%:location Standort%>:<%=contact.location%>
<%:geocoord Geokoordinaten%>:<%=contact.geo%>
<%:note Notiz%>:<%=contact.note%>
+<%+footer%> \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/freifunk/index.htm b/modules/freifunk/luasrc/view/freifunk/index.htm new file mode 100644 index 0000000000..c5ee17b106 --- /dev/null +++ b/modules/freifunk/luasrc/view/freifunk/index.htm @@ -0,0 +1,11 @@ +<%+header%> +<% local ff = luci.model.uci.sections("freifunk") %> +

<%:hellonet Hallo und willkommen im Netz von%> <%=ff.community.name%>!

+

<%:public1 Wir sind eine Initiative zur Schaffung eines freien, offenen und unabhängigen Funknetzwerks auf WLAN-Basis.%>
+<%:public2 Dies ist der Zugangspunkt %><%=luci.sys.hostname()%>. <%:public3 Er wird betrieben von %> +<%=ff.contact.nickname%>.

+

<%:public4 Weitere Informationen zur globalen Freifunkinitiative findest du unter%> Freifunk.net.
+<%:public5 Hast du Interesse an diesem Projekt, dann wende dich an deine lokale Gemeinschaft%> <%=ff.community.name%>.

+

<%:note Hinweis%>: <%:public6 Der Internetzugang über das experimentelle Freifunknetz ist an technische und organisatorische Bedingungen geknüpft und deshalb möglicherweise +nicht (immer) gewährleistet.%>

+<%+footer%> \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/public_status/index.htm b/modules/freifunk/luasrc/view/public_status/index.htm new file mode 100644 index 0000000000..653baf9843 --- /dev/null +++ b/modules/freifunk/luasrc/view/public_status/index.htm @@ -0,0 +1,77 @@ +<%+header%> +

<%:status Status%>

+

<%:system System%>

+ +
+ + + + + + + + + + + + + +
<%:system_type Systemtyp%>:<%=s%>
<%:cpu Prozessor%>:<%=m%>
<%:ram Hauptspeicher%>:<%=r%>
+

+ +

<%:wifi Drahtlos%>

+
+ + + + + + + + + + + + + +<%for k, v in pairs(luci.sys.wifi.getiwconfig()) do +%> + + + + + + + + + + + + + + + + +<%end%> +
<%:name Name%><%:protocol Protokoll%><%:frequency Frequenz%><%:power Leistung%><%:bitrate Bitrate%><%:rts RTS%><%:frag Frag.%><%:link Verb.%><%:signal Signal%><%:noise Rausch%>
<%=k%><%=v[1]%><%=v.Frequency%><%=v["Tx-Power"]%><%=v["Bit Rate"]%><%=v["RTS thr"]%><%=v["Fragment thr"]%><%=v["Link Quality"]%><%=v["Signal level"]%><%=v["Noise level"]%>
ESSID: <%=v.ESSID%>BSSID: <%=(v.Cell or v["Access Point"])%>
+
+
+

<%:defroutes Standardrouten%>

+
+ + + + + + +<% +for i, rt in pairs(routes) do +%> + + +<% end %> +
<%:gateway Gateway%><%:metric Metrik%><%:iface Schnittstelle%>
<%=luci.sys.net.hexip4(rt.Gateway)%> +<%=rt.Metric%> +<%=rt.Iface%> +
+<%+footer%> \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/public_status/iwscan.htm b/modules/freifunk/luasrc/view/public_status/iwscan.htm new file mode 100644 index 0000000000..adba2d23e7 --- /dev/null +++ b/modules/freifunk/luasrc/view/public_status/iwscan.htm @@ -0,0 +1,38 @@ +<%+header%> +

<%:iwscan WLAN-Scan%>

+

<%:iwscan1 Drahtlosnetzwerke in der lokalen Umgebung des Routers:%>

+ +
+ + + + + + + + + + + + +<%for iface, cells in pairs(luci.sys.wifi.iwscan()) do + for i, cell in ipairs(cells) do +%> + + + + + + + + + + + +<% + end +end +%> +
<%:interface Schnittstelle%><%:essid ESSID%><%:bssid BSSID%><%:mode Modus%><%:channel Kanal%><%:encr Vers.%><%:link Verb.%><%:signal Signal%><%:noise Rausch%>
<%=iface%><%=cell.ESSID%><%=cell.Address%><%=cell.Mode%><%=(cell.Channel or cell.Frequency or "")%><%=cell["Encryption key"]%><%=cell.Quality%><%=cell["Signal level"]%><%=cell["Noise level"]%>
+
+<%+footer%> \ No newline at end of file diff --git a/modules/freifunk/luasrc/view/public_status/routes.htm b/modules/freifunk/luasrc/view/public_status/routes.htm new file mode 100644 index 0000000000..382b8290f2 --- /dev/null +++ b/modules/freifunk/luasrc/view/public_status/routes.htm @@ -0,0 +1,28 @@ +<%+header%> +

<%:routes Routen%>

+ +
+ + + + + + + + +<% +local routes = luci.sys.net.routes() + +for i, r in pairs(routes) do +%> + + + + + + + +<% end %> +
<%:target Ziel%><%:netmask Netzmaske%><%:gateway Gateway%><%:metric Metrik%><%:iface Schnittstelle%>
<%=luci.sys.net.hexip4(r.Destination)%><%=luci.sys.net.hexip4(r.Mask)%><%=luci.sys.net.hexip4(r.Gateway)%><%=r.Metric%><%=r.Iface%>
+
+<%+footer%> \ No newline at end of file -- cgit v1.2.3