-require("luci.sys")
-local uci = require "luci.model.uci".cursor()
-local fs = require "luci.fs"
-
-local load1, load5, load15 = luci.sys.loadavg()
-local request = require("luci.dispatcher").context.path
-local category = request[1]
-local tree = luci.dispatcher.node()
-local cattree = category and luci.dispatcher.node(category)
-local node = luci.dispatcher.context.dispatched
-local hostname = luci.sys.hostname()
-local ff = uci:get("freifunk", "community", "name") or ""
-local co = "profile_" .. ff
-local community = uci:get_first(co, "community", "name") or "Freifunk"
-local hp = uci:get_first(co, "community", "homepage") or "http://www.freifunk.net"
-local logo = "/luci-static/freifunk-generic/logo.jpg"
-local banner = false
-local show_comm = true
-
-local lo = fs.glob("/www/luci-static/resources/custom_logo.*")
-if lo[1] then
- logo = string.gsub(lo[1], "/www", "")
-end
-
-local lon = fs.glob("/www/luci-static/resources/custom_logo_only.*")
-if lon[1] then
- logo = string.gsub(lon[1], "/www", "")
- show_comm = false
-end
-
-local hea = fs.glob("/www/luci-static/resources/custom_header.*")
-if hea[1] then
- logo = string.gsub(hea[1], "/www", "")
- show_comm = false
- banner = true
-end
-
-local c = tree
-for i,r in ipairs(request) do
- if c.nodes and c.nodes[r] then
- c = c.nodes[r]
- c._menu_selected = true
+ local fs = require "luci.fs"
+ local sys = require "luci.sys"
+ local http = require "luci.http"
+ local disp = require "luci.dispatcher"
+
+ local hostname = sys.hostname()
+ local load1, load5, load15 = sys.loadavg()
+
+ local request = disp.context.path
+ local category = request[1]
+ local cattree = category and disp.node(category)
+
+ local tree = disp.node()
+ local node = disp.context.dispatched
+
+ local categories = disp.node_childs(tree)
+
+ local c = tree
+ local i, r
+
+ -- tag all nodes leading to this page
+ for i, r in ipairs(request) do
+ if c.nodes and c.nodes[r] then
+ c = c.nodes[r]
+ c._menu_selected = true
+ end
+ end
+
+ local uci = require "luci.model.uci".cursor()
+ local ff = uci:get("freifunk", "community", "name") or ""
+ local co = "profile_" .. ff
+ local community = uci:get_first(co, "community", "name") or "Freifunk"
+ local hp = uci:get_first(co, "community", "homepage") or "http://www.freifunk.net"
+ local logo = "/luci-static/freifunk-generic/logo.jpg"
+ local banner = false
+ local show_comm = true
+
+ local lo = fs.glob("/www/luci-static/resources/custom_logo.*")
+ if lo[1] then
+ logo = string.gsub(lo[1], "/www", "")