modules/freifunk: include widgets in indexpage when available
[project/luci.git] / modules / freifunk / luasrc / view / freifunk / index.htm
index c5ee17b106cde5ad772279e1dcf40ad3887a532d..d1862bd3a6d725c2b52e4c53baff8e205ca0eadd 100644 (file)
@@ -1,11 +1,97 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+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
+
+$Id$
+
+-%>
 <%+header%>
-<% local ff = luci.model.uci.sections("freifunk") %>
-<h1><%:hellonet Hallo und willkommen im Netz von%> <%=ff.community.name%>!</h1>
-<p><%:public1 Wir sind eine Initiative zur Schaffung eines freien, offenen und unabhängigen Funknetzwerks auf WLAN-Basis.%><br />
-<%:public2 Dies ist der Zugangspunkt %><%=luci.sys.hostname()%>. <%:public3 Er wird betrieben von %>
-<a href="<%=controller%>/public/index/contact"><%=ff.contact.nickname%></a>.</p>
-<p><%:public4 Weitere Informationen zur globalen Freifunkinitiative findest du unter%> <a href="http://freifunk.net">Freifunk.net</a>.<br />
-<%:public5 Hast du Interesse an diesem Projekt, dann wende dich an deine lokale Gemeinschaft%> <a href="<%=ff.community.homepage%>"><%=ff.community.name%></a>.</p>
-<p><strong><%:note Hinweis%></strong>: <%:public6 Der Internetzugang über das experimentelle Freifunknetz ist an technische und organisatorische Bedingungen geknüpft und deshalb möglicherweise
-nicht (immer) gewährleistet.%></p>
-<%+footer%>
\ No newline at end of file
+<% 
+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%>