From 6516d7ba5b943ab741626d1d728893480116b317 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 26 Oct 2011 00:27:00 +0000 Subject: [PATCH] themes/openwrt: cleanup menu construction code, use node_visible() and node_childs() helper --- .../luasrc/view/themes/openwrt.org/header.htm | 113 ++++++++---------- 1 file changed, 47 insertions(+), 66 deletions(-) diff --git a/themes/openwrt/luasrc/view/themes/openwrt.org/header.htm b/themes/openwrt/luasrc/view/themes/openwrt.org/header.htm index 19f061443a..ddd960401c 100644 --- a/themes/openwrt/luasrc/view/themes/openwrt.org/header.htm +++ b/themes/openwrt/luasrc/view/themes/openwrt.org/header.htm @@ -13,87 +13,73 @@ $Id$ -%> <% -require("luci.sys") -local load1, load5, load15 = luci.sys.loadavg() -local request = require("luci.dispatcher").context.path -local category = request[1] -local request2 = require("luci.dispatcher").context.request -local leaf = request2[#request2] -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 c = tree -local i, r -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 sys = require "luci.sys" + local http = require "luci.http" + local disp = require "luci.dispatcher" -local has_categories = 0 -for i,r in pairs(tree.nodes) do - if r.title and not r.hidden then - has_categories = has_categories + 1 - end -end + local hostname = sys.hostname() + local load1, load5, load15 = sys.loadavg() + + local request = disp.context.path + local request2 = disp.context.request + + local category = request[1] + local cattree = category and disp.node(category) + + local leaf = request2[#request2] + + local tree = disp.node() + local node = disp.context.dispatched -require("luci.i18n").loadc("base") -require("luci.http").prepare_content("application/xhtml+xml") + 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 + + http.prepare_content("application/xhtml+xml") local function nodeurl(prefix, name, query) local url = controller .. prefix .. name .. "/" if query then - url = url .. luci.http.build_querystring(query) + url = url .. http.build_querystring(query) end return pcdata(url) end local function subtree(prefix, node, level) - if not node.nodes or node.hidden then - return false - end - if not level then level = 1 end - local index = {} - local count = 0 - for k, n in pairs(node.nodes) do - if n.title and n.target then - table.insert(index, {name=k, order=n.order or 100}) - count = count + 1 - end - end - - table.sort(index, function(a, b) return a.order < b.order end) - - if count > 0 then + local childs = disp.node_childs(node) + if #childs > 0 then %>
@@ -107,8 +93,6 @@ require("luci.http").prepare_content("application/xhtml+xml") <% end end - - -%> @@ -146,15 +130,12 @@ require("luci.http").prepare_content("application/xhtml+xml")
-<% if has_categories > 1 then %> - +<% if #categories > 1 then %> + <% end %> <% -- 2.30.2