modules/freifunk: include widgets in indexpage when available
[project/luci.git] / modules / freifunk / luasrc / view / freifunk / index.htm
index d4af849ebc51561a90f12e3b9246f27f261f576c..d1862bd3a6d725c2b52e4c53baff8e205ca0eadd 100644 (file)
@@ -13,12 +13,85 @@ $Id$
 
 -%>
 <%+header%>
-<% local ff = luci.model.uci.cursor():get_all("freifunk") %>
-<h1><%:ff_hellonet%> <%=ff.community.name or 'Freifunk Deutschland'%>!</h1>
-<p><%:ff_public1%><br />
-<%:ff_public2%><%=luci.sys.hostname()%>. <%:ff_public3%>
-<a href="<%=controller%>/public/index/contact"><%=ff.contact.nickname or 'anonym'%></a>.</p>
-<p><%:ff_public4%> <a href="http://freifunk.net">Freifunk.net</a>.<br />
-<%:ff_public5%> <a href="<%=ff.community.homepage or 'http//freifunk.net'%>"><%=ff.community.name or 'Freifunk'%></a>.</p>
-<p><strong><%:note%></strong>: <%:ff_public6%></p>
+<% 
+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")
+
+if not ff or not ff.community.name then
+       community = "Freifunk"
+       DefaultText = ""
+       nickname = "No Nickname set"
+else
+       community = ff.community.name
+       DefaultText = ff.community.DefaultText
+       nickname = ff.contact.nickname
+end
+
+local co = "profile_" .. community
+--local community = uci:get_first(co, "community", "name") or "Freifunk"
+local url = uci:get_first(co, "community", "homepage") or "http://www.freifunk.net"
+
+
+local usertext = fs.readfile("/www/luci-static/index_user.html")
+
+if DefaultText ~= "disabled" then
+
+       defaulttext = '<h2><a id="content" name="content">'..
+       (translate("Hello and welcome in the network of"))..
+       ' '..
+       (community or "Freifunk Deutschland")..
+       '!</a></h2><p>'..
+       translate("We are an initiative to establish a free, independent and open wireless mesh network.")..
+       '<br />'..
+       translate("This is the access point")..
+       ' '..
+       luci.sys.hostname()..
+       '. '..
+       translate("It is operated by")..
+       ' <a href="'..
+       luci.dispatcher.build_url("freifunk", "contact")..
+       '">'..
+       (nickname or translate("Please set your contact information"))..
+       '</a>.</p><p>'..
+       translate("You can find further information about the global Freifunk initiative at")..
+       ' <a href="http://freifunk.net">Freifunk.net</a>.<br />'..
+       translate("If you are interested in our project then contact the local community")..
+       ' <a href="'..url..'">'..community..'</a>.</p><p><strong>'..
+       translate("Notice")..
+       '</strong>: '..
+       translate("Internet access depends on technical and organisational conditions and may or may not work for you.")..
+       '</p>'
+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%>