diff options
author | Steven Barth <steven@midlink.org> | 2008-03-22 19:46:14 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-03-22 19:46:14 +0000 |
commit | 93c55f3c5d7d253423c9d5695b8d71388bd21988 (patch) | |
tree | d2d8b9cc73f040cda24836afd2711edb5c8eefb6 | |
parent | c8426cfa3cce952dde8cdf2eb058d0c2fae4986d (diff) |
* CBI updates
* Made dispatching paths unambiguous
-rw-r--r-- | src/ffluci/cbi.lua | 23 | ||||
-rw-r--r-- | src/ffluci/dispatcher.lua | 21 | ||||
-rw-r--r-- | src/ffluci/view/cbi/footer.htm | 2 | ||||
-rw-r--r-- | src/ffluci/view/cbi/header.htm | 2 | ||||
-rw-r--r-- | src/ffluci/view/cbi/map.htm | 8 | ||||
-rw-r--r-- | src/ffluci/view/cbi/nsection.htm | 2 | ||||
-rw-r--r-- | src/ffluci/view/cbi/tsection.htm | 22 | ||||
-rw-r--r-- | src/ffluci/view/header.htm | 3 | ||||
-rw-r--r-- | src/ffluci/view/public_index/index.htm (renamed from src/ffluci/view/index/index.htm) | 0 |
9 files changed, 52 insertions, 31 deletions
diff --git a/src/ffluci/cbi.lua b/src/ffluci/cbi.lua index 5a20aadc53..85b9f49e9d 100644 --- a/src/ffluci/cbi.lua +++ b/src/ffluci/cbi.lua @@ -86,6 +86,12 @@ function Node.render(self) ffluci.template.render(self.template, {self=self}) end +function Node.render_children(self) + for k, node in ipairs(self.children) do + node:render() + end +end + --[[ Map - A map describing a configuration file @@ -175,6 +181,23 @@ function TypedSection.__init__(self, ...) self.valid = nil end +function TypedSection.render_children(self, section) + for k, node in ipairs(self.children) do + node.section = section + node:render() + end +end + +function TypedSection.ucisections(self) + local sections = {} + for k, v in pairs(self.map:read()) do + if v[".type"] == self.sectiontype then + sections[k] = v + end + end + return sections +end + --[[ AbstractValue - An abstract Value Type diff --git a/src/ffluci/dispatcher.lua b/src/ffluci/dispatcher.lua index 0f05c3d173..f3a62bb193 100644 --- a/src/ffluci/dispatcher.lua +++ b/src/ffluci/dispatcher.lua @@ -167,13 +167,15 @@ function cbi(request) local tmpl = require("ffluci.template") local cbi = require("ffluci.cbi") + local path = request.category.."_"..request.module.."/"..request.action + i18n.loadc(request.module) - stat, map = pcall(cbi.load, request.module.."/"..request.action) + stat, map = pcall(cbi.load, path) if stat then - tmpl.render("header") + tmpl.render("cbi/header") map:render() - tmpl.render("footer") + tmpl.render("cbi/footer") else disp.error404() end @@ -195,15 +197,16 @@ function dynamic(request) return end - if pcall(tmpl.render, request.module .. "/" .. request.action) then + local path = request.category.."_"..request.module.."/"..request.action + if pcall(tmpl.render, path) then return end - stat, map = pcall(cbi.load, request.module.."/"..request.action) + stat, map = pcall(cbi.load, path) if stat then - tmpl.render("header") + tmpl.render("cbi/header") map:render() - tmpl.render("footer") + tmpl.render("cbi/footer") return end @@ -217,8 +220,10 @@ function simpleview(request) local tmpl = require("ffluci.template") local disp = require("ffluci.dispatcher") + local path = request.category.."_"..request.module.."/"..request.action + i18n.loadc(request.module) - if not pcall(tmpl.render, request.module .. "/" .. request.action) then + if not pcall(tmpl.render, path) then disp.error404() end end
\ No newline at end of file diff --git a/src/ffluci/view/cbi/footer.htm b/src/ffluci/view/cbi/footer.htm new file mode 100644 index 0000000000..e8ef8fef5e --- /dev/null +++ b/src/ffluci/view/cbi/footer.htm @@ -0,0 +1,2 @@ + </form> +<%+footer%>
\ No newline at end of file diff --git a/src/ffluci/view/cbi/header.htm b/src/ffluci/view/cbi/header.htm new file mode 100644 index 0000000000..bd3607f11e --- /dev/null +++ b/src/ffluci/view/cbi/header.htm @@ -0,0 +1,2 @@ +<%+header%> + <form method="post" action="<%=os.getenv("REQUEST_URI")%>"> diff --git a/src/ffluci/view/cbi/map.htm b/src/ffluci/view/cbi/map.htm index b724ffccbb..e6884f1045 100644 --- a/src/ffluci/view/cbi/map.htm +++ b/src/ffluci/view/cbi/map.htm @@ -1,10 +1,8 @@ - <div class="cbi-map" id="cbi-<%=self.config%>"> - <form method="post" action="<%=os.getenv("REQUEST_URI")%>"> + <div class="cbi-map" id="cbi-<%=self.config%>"> <h1><%=self.title%></h1> <div class="cbi-map-descr"><%=self.description%></div> <br /> -<% for k, node in ipairs(self.children) do node:render() end %> +<% self:render_children() %> <br /> <input type="submit" /> <input type="reset" /> - </form> - </div> + </div> diff --git a/src/ffluci/view/cbi/nsection.htm b/src/ffluci/view/cbi/nsection.htm index e002c68b09..84f893d2b8 100644 --- a/src/ffluci/view/cbi/nsection.htm +++ b/src/ffluci/view/cbi/nsection.htm @@ -2,6 +2,6 @@ <h2><%=self.title%></h2> <div class="cbi-nsection-descr"><%=self.description%></div> <div class="cbi-nsection-options"> -<% for k, node in ipairs(self.children) do node:render() end %> +<% self:render_children() %> </div> </div> diff --git a/src/ffluci/view/cbi/tsection.htm b/src/ffluci/view/cbi/tsection.htm index b613f6271f..bd19ecf59a 100644 --- a/src/ffluci/view/cbi/tsection.htm +++ b/src/ffluci/view/cbi/tsection.htm @@ -1,21 +1,11 @@ -<% -local allsections = self.map:read() -local sections = {} -for k, v in pairs(allsections) do - if v[".type"] == self.sectiontype then - sections[k] = v - end -end -%> <div class="cbi-tsection" id="cbi-<%=self.config%>-<%=self.sectiontype%>"> <h2><%=self.title%></h2> <div class="cbi-tsection-descr"><%=self.description%></div> -<% for k, v in pairs(sections) do %> - <div class="cbi-tsection-node" id="cbi-<%=self.config%>-<%=k%>"> -<% for i, node in ipairs(self.children) do - node.section = k - node:render() -end %> - </div> +<% for k, v in pairs(self:ucisections()) do%> + <fieldset class="cbi-tsection-node" id="cbi-<%=self.config%>-<%=k%>"> + <% if not self.anonymous then %><legend><%=k%></legend><% end %> +<% self:render_children(k) %> + </fieldset> + <br /> <% end %> </div> diff --git a/src/ffluci/view/header.htm b/src/ffluci/view/header.htm index cef95b36c2..2af577a078 100644 --- a/src/ffluci/view/header.htm +++ b/src/ffluci/view/header.htm @@ -10,6 +10,7 @@ require("ffluci.http").htmlheader() <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" /> <title>FFLuCI</title> <% if addheaders then write(addheaders) end %> </head> @@ -56,4 +57,4 @@ require("ffluci.http").htmlheader() <div>Konfiguration<ul><li>x Änderungen</li><li>Anwenden</li><li>Zurücksetzen</li></ul></div> <% end %> </div> - <div id="content"> + <div id="content">
\ No newline at end of file diff --git a/src/ffluci/view/index/index.htm b/src/ffluci/view/public_index/index.htm index a186132861..a186132861 100644 --- a/src/ffluci/view/index/index.htm +++ b/src/ffluci/view/public_index/index.htm |