diff options
author | Steven Barth <steven@midlink.org> | 2008-05-22 14:04:03 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-05-22 14:04:03 +0000 |
commit | 6604399aa8f35d33c53a5e5a1fea765f401aef5e (patch) | |
tree | ed818d630634a98a8996a1ba6d10e63bbea17c39 /core/src/view | |
parent | f738eb786e3d30028310c7bcc447e7e7b63767e0 (diff) |
Merge branch 'menu'
Diffstat (limited to 'core/src/view')
-rw-r--r-- | core/src/view/footer.htm | 2 | ||||
-rw-r--r-- | core/src/view/header.htm | 101 |
2 files changed, 80 insertions, 23 deletions
diff --git a/core/src/view/footer.htm b/core/src/view/footer.htm index 67856771b4..f324408a1c 100644 --- a/core/src/view/footer.htm +++ b/core/src/view/footer.htm @@ -2,6 +2,6 @@ <div class="clear"></div> </div></div> -<div class="separator magenta bold"><a href="http://luci.freifunk-halle.net">FFLuCI 0.3 - Freifunk Lua Configuration Interface</a></div> +<div class="separator magenta bold"><a href="http://luci.freifunk-halle.net"><%=require("ffluci").__appname__ .. " " .. ffluci.__version__%> - Freifunk Lua Configuration Interface</a></div> </body> </html>
\ No newline at end of file diff --git a/core/src/view/header.htm b/core/src/view/header.htm index 9bb8b8be99..99b43805d3 100644 --- a/core/src/view/header.htm +++ b/core/src/view/header.htm @@ -1,21 +1,33 @@ <% require("ffluci.sys") local load1, load5, load15 = ffluci.sys.loadavg() -local req = require("ffluci.dispatcher").request -local menu = require("ffluci.menu").get()[req.category] -menu = menu or {} + +local request = require("ffluci.dispatcher").request +local category = request[1] +local tree = ffluci.dispatcher.node() +local cattree = category and ffluci.dispatcher.node(category) +local node = ffluci.dispatcher.dispatched + +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("ffluci.i18n").loadc("default") + require("ffluci.http").prepare_content("text/html") %><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" type="text/css" href="<%=media%>/cascade.css" /> - <link rel="stylesheet" type="text/css" href="<%=media%>/css/<%=req.category%>_<%=req.module%>.css" /> - <link rel="stylesheet" type="text/css" href="<%=media%>/css/<%=req.category%>_<%=req.module%>_<%=req.action%>.css" /> + <% if node and node.css then %><link rel="stylesheet" type="text/css" href="<%=resource%>/<%=node.css%>" /><% end %> <meta http-equiv="content-type" content="text/xhtml+xml; charset=utf-8" /> <meta http-equiv="content-script-type" content="text/javascript" /> - <title>FFLuCI</title> + <title>FFLuCI - Freifunk Lua Configuration Interface</title> </head> <body> <div id="header"> @@ -27,37 +39,82 @@ require("ffluci.http").prepare_content("text/html") <%:hostname Hostname%>: <%=ffluci.sys.hostname()%> </div> <div> - <span class="headertitle">Freifunk Kamikaze</span><br /> - <span class="whitetext bold"><%:batmanedition Fledermausedition%></span> + <span class="headertitle"><%~luci.main.title%></span><br /> + <span class="whitetext bold"><%~luci.main.subtitle%></span> </div> </div> <div class="separator yellow bold"> -<%:path Pfad%>: <a href="<%=controller .. "/" .. req.category%>"><%=translate(req.category, req.category)%></a> -» <a href="<%=controller .. "/" .. req.category .. "/" .. req.module %>"><%=translate(req.module, req.module)%></a> -» <a href="<%=controller .. "/" .. req.category .. "/" .. req.module .. "/" .. req.action %>"><%=translate(req.action, req.action)%></a> +<%:path Pfad%>: <% +local c = tree +local url = controller +for k,v in pairs(request) do + if c.nodes and c.nodes[v] then + c = c.nodes[v] + url = url .. "/" .. v + %><a href="<%=url%>"><%=c.title or v%></a> <% if k ~= #request then %>» <% end + end +end +%> </div> <div id="columns"><div id="columnswrapper"> <div class="sidebar left"> - <% for k,v in pairs(menu) do %> - <div<% if v[".contr"] == req.module then %> class="yellowtext"<% end %>><a href="<%=controller.."/"..req.category.."/"..v[".contr"]%>"><%=translate(v[".contr"], v[".descr"])%></a><% - if v[".contr"] == req.module then %> - <ul><% for key,val in ipairs(v) do %> - <li<% if val.action == req.action then %> class="yellowtext"<% end %>><a href="<%=controller.."/"..req.category.."/"..req.module.."/"..val.action%>"><%=translate(val.action, val.descr)%></a></li> - <% end %></ul> - <% end %></div> +<% +local function submenu(prefix, node) + if not node._menu_selected or not node.nodes then + return false + end + local index = {} + for k, n in pairs(node.nodes) do + table.insert(index, {name=k, order=n.order or 100}) + end + + table.sort(index, function(a, b) return a.order < b.order end) +%> + <ul> + <% for j, v in pairs(index) do + local nnode = node.nodes[v.name]%> + <li> + <span<% if nnode._menu_selected then %> class="yellowtext"<%end%>><a href="<%=controller .. prefix .. v.name%>"><%=nnode.title%></a></span> + <% submenu(prefix .. v.name .. "/", nnode) %> + </li> <% end %> + </ul> +<% +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 then %> + <div<% if node._menu_selected then %> class="yellowtext"<%end%>><a href="<%=controller%>/<%=category%>/<%=k.name%>"><%=node.title%></a> + <%submenu("/" .. category .. "/" .. k.name .. "/", node)%> + </div> +<% end + end +end +%> </div> <div class="sidebar right"> <div><%:webif Weboberfläche%> - <ul> - <li<% if "public" == req.category then %> class="yellowtext"<% end %>><a href="<%=controller%>/public"><%:public Ă–ffentlich%></a></li> - <li<% if "admin" == req.category then %> class="yellowtext"<% end %>><a href="<%=controller%>/admin"><%:admin Verwaltung%></a></li> + <ul><% + for k,node in pairs(tree.nodes) do + if node.title then %> + <li<% if request[1] == k then %> class="yellowtext"<%end%>><a href="<%=controller%>/<%=k%>"><%=node.title%></a></li> +<% end + end%> </ul> </div> <% - if "admin" == req.category then + if "admin" == request[1] then require("ffluci.model.uci") local ucic = ffluci.model.uci.changes() if ucic then |