* CBI updates
authorSteven Barth <steven@midlink.org>
Sat, 22 Mar 2008 19:46:14 +0000 (19:46 +0000)
committerSteven Barth <steven@midlink.org>
Sat, 22 Mar 2008 19:46:14 +0000 (19:46 +0000)
* Made dispatching paths unambiguous

src/ffluci/cbi.lua
src/ffluci/dispatcher.lua
src/ffluci/view/cbi/footer.htm [new file with mode: 0644]
src/ffluci/view/cbi/header.htm [new file with mode: 0644]
src/ffluci/view/cbi/map.htm
src/ffluci/view/cbi/nsection.htm
src/ffluci/view/cbi/tsection.htm
src/ffluci/view/header.htm
src/ffluci/view/index/index.htm [deleted file]
src/ffluci/view/public_index/index.htm [new file with mode: 0644]

index 5a20aadc53765dd01a9b5240d50e6802ac2c25ed..85b9f49e9dc56b46f8ce4614c1f883cff0094800 100644 (file)
@@ -86,6 +86,12 @@ function Node.render(self)
        ffluci.template.render(self.template, {self=self})
 end
 
        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 
 
 --[[
 Map - A map describing a configuration file 
@@ -175,6 +181,23 @@ function TypedSection.__init__(self, ...)
        self.valid     = nil
 end
 
        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
 
 --[[
 AbstractValue - An abstract Value Type
index 0f05c3d1730472759040bd30c6fa192c6d690a7e..f3a62bb193f6b1ad6206dbdad9a2703a037a3b6b 100644 (file)
@@ -167,13 +167,15 @@ function cbi(request)
        local tmpl = require("ffluci.template")
        local cbi  = require("ffluci.cbi")
        
        local tmpl = require("ffluci.template")
        local cbi  = require("ffluci.cbi")
        
+       local path = request.category.."_"..request.module.."/"..request.action
+       
        i18n.loadc(request.module)
        
        i18n.loadc(request.module)
        
-       stat, map = pcall(cbi.load, request.module.."/"..request.action)
+       stat, map = pcall(cbi.load, path)
        if stat then
        if stat then
-               tmpl.render("header")
+               tmpl.render("cbi/header")
                map:render()
                map:render()
-               tmpl.render("footer")
+               tmpl.render("cbi/footer")
        else
                disp.error404()
        end
        else
                disp.error404()
        end
@@ -195,15 +197,16 @@ function dynamic(request)
                return
        end
        
                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
        
                return
        end
        
-       stat, map = pcall(cbi.load, request.module.."/"..request.action)
+       stat, map = pcall(cbi.load, path)
        if stat then
        if stat then
-               tmpl.render("header")
+               tmpl.render("cbi/header")
                map:render()
                map:render()
-               tmpl.render("footer")
+               tmpl.render("cbi/footer")
                return
        end     
        
                return
        end     
        
@@ -217,8 +220,10 @@ function simpleview(request)
        local tmpl = require("ffluci.template")
        local disp = require("ffluci.dispatcher")
        
        local tmpl = require("ffluci.template")
        local disp = require("ffluci.dispatcher")
        
+       local path = request.category.."_"..request.module.."/"..request.action
+       
        i18n.loadc(request.module)
        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
                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 (file)
index 0000000..e8ef8fe
--- /dev/null
@@ -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 (file)
index 0000000..bd3607f
--- /dev/null
@@ -0,0 +1,2 @@
+<%+header%>
+               <form method="post" action="<%=os.getenv("REQUEST_URI")%>">
index b724ffccbb4a8ba22271eda65798ddd839806e98..e6884f1045bfeaf5bf78932da9dc532aea99c22a 100644 (file)
@@ -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 />
                                <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" />
                                <br />
                                <input type="submit" /> <input type="reset" />
-                       </form>
-               </div>
+                       </div>
index e002c68b09af8110cfcf0a546ffc74a732533646..84f893d2b81e222c70263f633e233a20ef5ee6d6 100644 (file)
@@ -2,6 +2,6 @@
                                        <h2><%=self.title%></h2>
                                        <div class="cbi-nsection-descr"><%=self.description%></div>
                                        <div class="cbi-nsection-options">
                                        <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>
                                        </div>
                                </div>
index b613f6271f069b588a831a2d306acac05460e1e8..bd19ecf59acd895771211dcecf7e2d14150800aa 100644 (file)
@@ -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>
                                <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>
 <% end %>
                                </div>
index cef95b36c25a07cdf1adb558769933417e4168ac..2af577a078020ffac0d73d40033aa6c389ddf615 100644 (file)
@@ -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" />
 <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>
 <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>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/index/index.htm
deleted file mode 100644 (file)
index a186132..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<%+header%>
-<h1><%:hello Hallo!%></h1>
-<p><%:welcome1 Dies ist der Funknetzknoten %>
-<em><%=require("ffluci.sys").hostname()%></em>!</p>
-<p><em>ToDo: Intelligenter Einleitungstext</em></p>
-<%+footer%>
\ No newline at end of file
diff --git a/src/ffluci/view/public_index/index.htm b/src/ffluci/view/public_index/index.htm
new file mode 100644 (file)
index 0000000..a186132
--- /dev/null
@@ -0,0 +1,6 @@
+<%+header%>
+<h1><%:hello Hallo!%></h1>
+<p><%:welcome1 Dies ist der Funknetzknoten %>
+<em><%=require("ffluci.sys").hostname()%></em>!</p>
+<p><em>ToDo: Intelligenter Einleitungstext</em></p>
+<%+footer%>
\ No newline at end of file