From 613de9b48f0aa8bf7fb170080d4ceb103702425d Mon Sep 17 00:00:00 2001 From: Manuel Munz Date: Mon, 17 Sep 2012 14:22:14 +0000 Subject: [PATCH] modules/freifunk: include widgets in indexpage when available --- .../freifunk/luasrc/view/freifunk/index.htm | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/modules/freifunk/luasrc/view/freifunk/index.htm b/modules/freifunk/luasrc/view/freifunk/index.htm index e13d7f9c2..d1862bd3a 100644 --- a/modules/freifunk/luasrc/view/freifunk/index.htm +++ b/modules/freifunk/luasrc/view/freifunk/index.htm @@ -15,6 +15,8 @@ $Id$ <%+header%> <% local uci = require "luci.model.uci".cursor() +local tpl = require "luci.template" +local fs = require "luci.fs" local ff = {} local ff = uci:get_all("freifunk") @@ -33,8 +35,7 @@ local co = "profile_" .. community local url = uci:get_first(co, "community", "homepage") or "http://www.freifunk.net" -require("luci.fs") -local usertext = luci.fs.readfile("/www/luci-static/index_user.html") +local usertext = fs.readfile("/www/luci-static/index_user.html") if DefaultText ~= "disabled" then @@ -69,4 +70,28 @@ end <%=defaulttext%> <%=usertext%> +<% +-- add custom widgets from view/freifunk/widgets +local widgets = {} +local dir = "/usr/lib/lua/luci/view/freifunk/widgets" + +uci:foreach("freifunk-widgets", "widget", + function(s) + if s.enabled == "1" then + local name = s[".name"] + widgets[name] = s + end + end) + +local function cmp(a, b) + return (widgets[a].order or 100) > (widgets[b].order or 100) +end + +for k, v in luci.util.spairs(widgets, function(a,b) return (tonumber(widgets[a].order) < tonumber(widgets[b].order)) end) do + if v['template'] and fs.access(dir .. "/" .. v['template'] .. "/main.htm") then + tpl.render("freifunk/widgets/" .. v['template'] .. "/main", { name = k, data = v }) + end +end + +%> <%+footer%> -- 2.25.1