summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2008-03-22 19:46:14 +0000
committerSteven Barth <steven@midlink.org>2008-03-22 19:46:14 +0000
commit93c55f3c5d7d253423c9d5695b8d71388bd21988 (patch)
treed2d8b9cc73f040cda24836afd2711edb5c8eefb6
parentc8426cfa3cce952dde8cdf2eb058d0c2fae4986d (diff)
* CBI updates
* Made dispatching paths unambiguous
-rw-r--r--src/ffluci/cbi.lua23
-rw-r--r--src/ffluci/dispatcher.lua21
-rw-r--r--src/ffluci/view/cbi/footer.htm2
-rw-r--r--src/ffluci/view/cbi/header.htm2
-rw-r--r--src/ffluci/view/cbi/map.htm8
-rw-r--r--src/ffluci/view/cbi/nsection.htm2
-rw-r--r--src/ffluci/view/cbi/tsection.htm22
-rw-r--r--src/ffluci/view/header.htm3
-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