Allow combination of SimpleForms as Forms into pages with Maps
authorSteven Barth <steven@midlink.org>
Sat, 7 Mar 2009 11:30:41 +0000 (11:30 +0000)
committerSteven Barth <steven@midlink.org>
Sat, 7 Mar 2009 11:30:41 +0000 (11:30 +0000)
Allow subsequent changes of Table data

libs/cbi/luasrc/cbi.lua
libs/cbi/luasrc/view/cbi/simpleform.htm

index 275c3f3c361b8d7d19c2ee1c31f6fc5db28914e1..b6ccc548065bfdf4731021027af78766022cfeb1 100644 (file)
@@ -644,6 +644,13 @@ function SimpleForm.get_scheme()
 end
 
 
+Form = class(SimpleForm)
+
+function Form.__init__(self, ...)
+       SimpleForm.__init__(self, ...)
+       self.embedded = true
+end
+
 
 --[[
 AbstractSection
@@ -814,15 +821,16 @@ Table = class(AbstractSection)
 
 function Table.__init__(self, form, data, ...)
        local datasource = {}
+       local tself = self
        datasource.config = "table"
-       self.data = data
+       self.data = data or {}
 
        datasource.formvalue = Map.formvalue
        datasource.formvaluetable = Map.formvaluetable
        datasource.readinput = true
 
        function datasource.get(self, section, option)
-               return data[section] and data[section][option]
+               return tself.data[section] and tself.data[section][option]
        end
 
        function datasource.submitstate(self)
@@ -862,6 +870,10 @@ function Table.cfgsections(self)
        return sections
 end
 
+function Table.update(self, data)
+       self.data = data
+end
+
 
 
 --[[
index 66810a07185ccdcb096f8f5444a7484213c1a0c9..e167a6e6d9e47a749d56cdacf59aa82ef3ce9eff 100644 (file)
@@ -12,12 +12,13 @@ You may obtain a copy of the License at
 $Id$
 
 -%>
-
+<% if not self.embedded then %>
 <form method="post" action="<%=REQUEST_URI%>">
        <div>
                <script type="text/javascript" src="<%=resource%>/cbi.js"></script>
                <input type="hidden" name="cbi.submit" value="1" />
        </div>
+<% end %>
        <div class="cbi-map" id="cbi-<%=self.config%>">
                <h2><a id="content" name="content"><%=self.title%></a></h2>
                <div class="cbi-map-descr"><%=self.description%></div>
@@ -30,6 +31,7 @@ $Id$
 <%- if self.errmessage then %>
        <div class="error"><%=self.errmessage%></div>
 <%- end %>     
+<% if not self.embedded then %>
        <div>
 <%- if self.submit ~= false then %>
                <input class="cbi-button-save" type="submit" value="
@@ -44,3 +46,4 @@ $Id$
                <script type="text/javascript">cbi_d_update();</script>
        </div>
 </form>
+<% end %>