themes/freifunk-generic: port to updated dispatcher api

This commit is contained in:
Jo-Philipp Wich 2011-10-26 02:51:55 +00:00
parent 7918c83586
commit a31debe8a3

View file

@ -1,7 +1,7 @@
<%# <%#
LuCI - Lua Configuration Interface LuCI - Lua Configuration Interface
Copyright 2008 Steven Barth <steven@midlink.org> Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> Copyright 2008-2011 Jo-Philipp Wich <xm@subsignal.org>
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -11,17 +11,35 @@ You may obtain a copy of the License at
-%> -%>
<% <%
require("luci.sys")
local uci = require "luci.model.uci".cursor()
local fs = require "luci.fs" local fs = require "luci.fs"
local sys = require "luci.sys"
local http = require "luci.http"
local disp = require "luci.dispatcher"
local load1, load5, load15 = luci.sys.loadavg() local hostname = sys.hostname()
local request = require("luci.dispatcher").context.path local load1, load5, load15 = sys.loadavg()
local request = disp.context.path
local category = request[1] local category = request[1]
local tree = luci.dispatcher.node() local cattree = category and disp.node(category)
local cattree = category and luci.dispatcher.node(category)
local node = luci.dispatcher.context.dispatched local tree = disp.node()
local hostname = luci.sys.hostname() 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 ff = uci:get("freifunk", "community", "name") or ""
local co = "profile_" .. ff local co = "profile_" .. ff
local community = uci:get_first(co, "community", "name") or "Freifunk" local community = uci:get_first(co, "community", "name") or "Freifunk"
@ -47,18 +65,6 @@ if hea[1] then
show_comm = false show_comm = false
banner = true banner = true
end 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
end
end
require("luci.i18n").loadc("default")
require("luci.http").prepare_content("application/xhtml+xml")
-%> -%>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
@ -127,78 +133,63 @@ require("luci.http").prepare_content("application/xhtml+xml")
<%end%> <%end%>
</div> </div>
<div id="menubar">
<h2 class="navigation"><a id="navigation" name="navigation"><%:navigation Navigation%></a></h2>
<ul id="mainmenu" class="dropdowns">
<%- <%-
local function submenu(prefix, node) local function submenu(prefix, node)
if not node.nodes or node.hidden then local childs = disp.node_childs(node)
return false if #childs > 0 then
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
%> %>
<ul id="submenu_<%=string.gsub(string.gsub(prefix, "/", "_"), "^_(.-)_$", "%1")%>"> <ul id="submenu_<%=string.gsub(string.gsub(prefix, "/", "_"), "^_(.-)_$", "%1")%>">
<%- <%-
for j, v in pairs(index) do for i, r in ipairs(childs) do
if #v.name > 0 then local nnode = node.nodes[r]
local nnode = node.nodes[v.name] local href = controller .. prefix .. r .. "/" ..
local href = controller .. prefix .. v.name .. "/" (nnode.query and http.build_querystring(nnode.query) or "")
href = (nnode.query) and href .. luci.http.build_querystring(nnode.query) or href
%> %>
<li><a<% if nnode._menu_selected then %> class="active"<%end%> href="<%=luci.util.pcdata(href)%>"><%=translate(nnode.title)%></a><%- <li>
submenu(prefix .. v.name .. "/", nnode) <a<%=ifattr(nnode._menu_selected, "class", "active")%> href="<%=luci.util.pcdata(href)%>"><%=translate(nnode.title)%></a>
%></li> <%- submenu(prefix .. r .. "/", nnode) %>
</li>
<%- <%-
end end
end
%> %>
</ul> </ul>
<% <%
end end
end end
if cattree and cattree.nodes then
local index = {}
for k, node in pairs(cattree.nodes) do
table.insert(index, {name=k, order=node.order or 100})
end
table.sort(index, function(a, b) return a.order < b.order end)
for i, k in ipairs(index) do
node = cattree.nodes[k.name]
if node.title and node.target and not node.hidden then
local href = controller.."/"..category.."/"..k.name.."/"
href = (k.query) and href .. luci.http.build_querystring(k.query) or href
%> %>
<li><a<% if node._menu_selected then %> class="preactive"<%end%> href="<%=href%>"><%=translate(node.title)%></a><%
submenu("/" .. category .. "/" .. k.name .. "/", node) <div id="menubar">
%></li><% end <h2 class="navigation"><a id="navigation" name="navigation"><%:navigation Navigation%></a></h2>
end <ul id="mainmenu" class="dropdowns">
end <%
%> local childs = disp.node_childs(cattree)
<li></li></ul> if #childs > 0 then
for i, r in ipairs(childs) do
<ul id="modemenu"><% local nnode = cattree.nodes[r]
for k,node in pairs(tree.nodes) do local href = controller .. "/" .. category .. "/" .. r ..
if node.title and not node.hidden then %> (nnode.query and http.build_querystring(k.query) or "")
<li><a<% if request[1] == k then %> class="active"<%end%> href="<%=controller%>/<%=k%>/"><%=translate(node.title)%></a></li><% %>
<li>
<a<%=ifattr(nnode._menu_selected, "class", "preactive")%> href="<%=href%>"><%=translate(nnode.title)%></a>
<%- submenu("/" .. category .. "/" .. r .. "/", nnode) %>
</li>
<%
end end
end end
%> %>
<li></li>
</ul> </ul>
<% if #categories > 1 then %>
<div class="modemenu">
<ul>
<% for i, r in ipairs(categories) do %>
<li><a<%=ifattr(request[1] == r, "class", "active")%> href="<%=controller%>/<%=r%>/"><%=striptags(translate(tree.nodes[r].title))%></a></li>
<% end %>
</ul>
</div>
<% end %>
<% <%
if tree.nodes[category] and tree.nodes[category].ucidata then if tree.nodes[category] and tree.nodes[category].ucidata then
local ucic = 0 local ucic = 0
@ -210,12 +201,12 @@ if tree.nodes[category] and tree.nodes[category].ucidata then
end end
end end
-%> -%>
<div id="savemenu"> <div id="savemenu">
<% if ucic > 0 then %> <% if ucic > 0 then %>
<a class="warning" href="<%=controller%>/<%=category%>/uci/changes/?redir=<%=luci.http.urlencode(luci.http.formvalue("redir") or REQUEST_URI)%>"><%:Unsaved Changes%>: <%=ucic%></a> <a class="warning" href="<%=controller%>/<%=category%>/uci/changes/?redir=<%=http.urlencode(http.formvalue("redir") or REQUEST_URI)%>"><%:Unsaved Changes%>: <%=ucic%></a>
<% end -%> <% end -%>
</div><% end %> </div>
<% end %>
<div class="clear"></div> <div class="clear"></div>
</div> </div>