diff options
13 files changed, 199 insertions, 70 deletions
diff --git a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/heightwidth.lua b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/heightwidth.lua index b584b61ab..b572187bd 100644 --- a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/heightwidth.lua +++ b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/heightwidth.lua @@ -1,10 +1,26 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Manuel Munz <freifunk at somakoma dot de> + +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 + +]]-- + local map, section = ... local width = wdg:option(Value, "width", translate("Width")) width.rmempty = true +--[[ local height = wdg:option(Value, "height", translate("Height")) height.rmempty = true +height.optional = true +]]-- local pr = wdg:option(Value, "paddingright", translate("Padding right")) pr.rmempty = true diff --git a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/html.lua b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/html.lua index 0fb464f3e..367e8a269 100644 --- a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/html.lua +++ b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/html.lua @@ -1,3 +1,16 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Manuel Munz <freifunk at somakoma dot de> + +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 + +]]-- + local map, section = ... local utl = require "luci.util" local fs = require "nixio.fs" diff --git a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/iframe.lua b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/iframe.lua index 5f1a89471..b9cbcaee5 100644 --- a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/iframe.lua +++ b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/iframe.lua @@ -1,3 +1,16 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Manuel Munz <freifunk at somakoma dot de> + +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 + +]]-- + local map, section = ... local utl = require "luci.util" diff --git a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/rssfeed.lua b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/rssfeed.lua index 778b872bc..5df5a346f 100644 --- a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/rssfeed.lua +++ b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/rssfeed.lua @@ -1,3 +1,16 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Manuel Munz <freifunk at somakoma dot de> + +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 + +]]-- + local map, section = ... local utl = require "luci.util" diff --git a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/search.lua b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/search.lua index 4d861c5a0..735dc7cdf 100644 --- a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/search.lua +++ b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/search.lua @@ -1,3 +1,16 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Manuel Munz <freifunk at somakoma dot de> + +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 + +]]-- + local map, section = ... local utl = require "luci.util" diff --git a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/widget.lua b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/widget.lua index 368e560f4..5adfc8f85 100644 --- a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/widget.lua +++ b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/widget.lua @@ -36,12 +36,6 @@ en.rmempty = false local title = wdg:option(Value, "title", translate("Title")) title.rmempty = true -local order = wdg:option(Value, "order", translate("Order")) -order.default = "100" -order.placeholder = "100" -order.datatype = "integer" - - local form = loadfile( utl.libpath() .. "/model/cbi/freifunk/widgets/%s.lua" % widget ) @@ -49,5 +43,6 @@ local form = loadfile( if form then setfenv(form, getfenv(1))(m, wdg) end + return m diff --git a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/widgets_overview.lua b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/widgets_overview.lua index e0faef2ff..50771d7e0 100644 --- a/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/widgets_overview.lua +++ b/applications/luci-freifunk-widgets/luasrc/model/cbi/freifunk/widgets/widgets_overview.lua @@ -44,25 +44,19 @@ for k, v in ipairs(fs.dir('/usr/lib/lua/luci/view/freifunk/widgets/')) do end local title = wdg:option(Value, "title", translate("Title")) ---title.rmempty = true - - -local order = wdg:option(Value, "order", translate("Order")) -order.default = "100" -order.placeholder = "100" -order.datatype = "integer" +title.rmempty = true local width = wdg:option(Value, "width", translate("Width")) ---width.rmempty = true +width.rmempty = true local height = wdg:option(Value, "height", translate("Height")) ---height.rmempty = true +height.rmempty = true local pr = wdg:option(Value, "paddingright", translate("Padding right")) pr.rmempty = true function m.on_commit(self) - -- clean custom text files for elements which may have been deleted + -- clean custom text files whose config has been deleted local dir = "/usr/share/customtext/" local active = {} uci:foreach("freifunk-widgets", "widget", function(s) @@ -79,4 +73,3 @@ function m.on_commit(self) end return m - diff --git a/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/clear/main.htm b/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/clear/main.htm index 7669a58f4..df01839f4 100644 --- a/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/clear/main.htm +++ b/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/clear/main.htm @@ -1 +1,15 @@ +<% +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Manuel Munz <freifunk at somakoma dot de> + +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 + +]]-- +%> <div style="clear:both"></div> diff --git a/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/html/main.htm b/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/html/main.htm index f59a9302d..87ad5b629 100644 --- a/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/html/main.htm +++ b/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/html/main.htm @@ -1,7 +1,21 @@ <% +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Manuel Munz <freifunk at somakoma dot de> + +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 + +]]-- + --local utl = require "luci.util" local fs = require "luci.fs" local title = data.title +local name = data['.name'] local file = "/usr/share/customtext/" .. name .. ".html" local text = fs.readfile(file) local width = data.width or "100%" diff --git a/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/iframe/main.htm b/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/iframe/main.htm index 7d8f087e4..f0d89d742 100644 --- a/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/iframe/main.htm +++ b/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/iframe/main.htm @@ -1,5 +1,19 @@ <% +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Manuel Munz <freifunk at somakoma dot de> + +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 + +]]-- + local url = data['url'] +local name = data['.name'] local title = data['title'] or "No title set" local height = data['height'] or "400px" if type(height) == "number" then diff --git a/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/rssfeed/main.htm b/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/rssfeed/main.htm index ad64da567..08fc550ec 100644 --- a/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/rssfeed/main.htm +++ b/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/rssfeed/main.htm @@ -1,4 +1,17 @@ <% +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Manuel Munz <freifunk at somakoma dot de> + +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 + +]]-- + local sys = require "luci.sys" local utl = require "luci.util" local fs = require "luci.fs" @@ -13,58 +26,59 @@ local width = data.width or "100%" if type(width) == "number" then width = width .. "px" end +local name = data['.name'] local cachetime = tonumber(data.cache) or 3600 cachefile = "/tmp/" .. name .. ".cache" %> <div id="<%=name%>" style="width:<%=width%>;float:left"> -<div style="padding-right: <%=pr%>"> -<h2><%=title%></h2> + <div style="padding-right: <%=pr%>"> + <h2><%=title%></h2> -<% if not url then %> - <%:No url found in config%> -<% else - local mtime = luci.fs.mtime(cachefile) or 0 - local now = os.time() - expire = mtime + cachetime + <% if not url then %> + <%:No url found in config%> + <% else + local mtime = luci.fs.mtime(cachefile) or 0 + local now = os.time() + expire = mtime + cachetime - if not fs.access(cachefile) or expire < now then - rss = sys.httpget(url) - if #rss == 0 then - %> - <%:Could not get rss data from%> <a href="<%=url%>"><%=url%></a> - <% - else - local count = 0 - for item in string.gmatch(rss, "<item>(.-)</item>") do - if count < max then - local title = item:match("<title>(.-)</title>") - local link = item:match("<link>(.-)</link>") - local desc = item:match("<description>(.-)</description>") or "" - if title and link then - table.insert(output, { title = utl.pcdata(title), link = utl.pcdata(link) }) + if not fs.access(cachefile) or expire < now then + rss = sys.httpget(url) + if #rss == 0 then + %> + <%:Could not get rss data from%> <a href="<%=url%>"><%=url%></a> + <% + else + local count = 0 + for item in string.gmatch(rss, "<item>(.-)</item>") do + if count < max then + local title = item:match("<title>(.-)</title>") + local link = item:match("<link>(.-)</link>") + local desc = item:match("<description>(.-)</description>") or "" + if title and link then + table.insert(output, { title = utl.pcdata(title), link = utl.pcdata(link) }) + end + count = count + 1 end - count = count + 1 + end + if count > 0 then + local file = io.open(cachefile, "w") + file:write(utl.serialize_data(output)) + file:close() end end - local file = io.open(cachefile, "w") - file:write(utl.serialize_data(output)) - file:close() + else + local file = assert(io.open(cachefile)) + output = utl.restore_data(file:read'*a') end - else - local file = assert(io.open(cachefile)) - output = utl.restore_data(file:read'*a') end -end -if #output > 0 then -%> -<ul> -<% - for k, v in ipairs(output) do -%> - <li><a href="<%=v.link%>"><%=v.title%></a></li> -<% end %> -</ul> -</div> + if #output > 0 then + %> + <ul> + <% for k, v in ipairs(output) do %> + <li><a href="<%=v.link%>"><%=v.title%></a></li> + <% end %> + </ul> + <%end%> + </div> </div> -<%end%> diff --git a/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/search/main.htm b/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/search/main.htm index 97215aa3e..e319f15fb 100644 --- a/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/search/main.htm +++ b/applications/luci-freifunk-widgets/luasrc/view/freifunk/widgets/search/main.htm @@ -1,11 +1,33 @@ <% +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Manuel Munz <freifunk at somakoma dot de> + +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 + +]]-- local utl = require "luci.util" local title = luci.i18n.translate(data.title or "Search") +local name = data['.name'] local width = data.width or "100%" if type(width) == "number" then width = width .. "px" end + +local engines = {} +if type(data.engine) == "table" then + engines = data.engine +else + for k, v in ipairs(string.split(data.engine, " ")) do + table.insert(engines, v) + end +end %> <div id="<%=name%>" style="width:<%=width%>;float:left"> @@ -15,7 +37,7 @@ end <input type="text" name="searchterms" style="margin-bottom:15px; width: 90%"><br /> <% local checked = " checked" - for k, v in ipairs(data.engine) do + for k, v in ipairs(engines) do local e = utl.split(v, "|") local name = e[1] local url = e[2] diff --git a/applications/luci-freifunk-widgets/root/etc/config/freifunk-widgets b/applications/luci-freifunk-widgets/root/etc/config/freifunk-widgets index 2c4d74386..e5a20e7e5 100644 --- a/applications/luci-freifunk-widgets/root/etc/config/freifunk-widgets +++ b/applications/luci-freifunk-widgets/root/etc/config/freifunk-widgets @@ -1,38 +1,33 @@ -config widget 'iframe_freifunk' +config widget 'example_iframe' option template 'iframe' - option order '10' option url 'http://www.freifunk.net' option title 'Freifunk Homepage' option height '500px' option width '100%' option enabled '0' -config widget 'rss_freifunk' +config widget 'example_rss' option template 'rssfeed' - option order '20' option url 'http://global.freifunk.net/rss/all/rss.xml' option max '10' option cache '3600' option enabled '0' option title 'Globaler Freifunk RSS Feed' -config widget 'search' +config widget 'example_search' option template 'search' option enabled '0' - option order '30' option title 'Search' list engine 'Google|http://www.google.de/search?q=' list engine 'Freifunk Wiki|http://wiki.freifunk.net/index.php?search=' option width '50%' option paddingright '8%' -config widget 'customtext' +config widget 'example_customtext' option template 'html' option width '50%' - option order '40' option enabled '0' -config widget 'clear' +config widget 'example_clear' option enabled '0' option template 'clear' - option order '50' |