summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2009-03-07 11:30:41 +0000
committerSteven Barth <steven@midlink.org>2009-03-07 11:30:41 +0000
commitad57125f4132bef88ff0d2b4e34281ff812dc08b (patch)
treef040d7d24f0b438ad102883ade02b18317b26999
parenteb6f9c6192343285ac4a630c63512f64b63010a6 (diff)
Allow combination of SimpleForms as Forms into pages with Maps
Allow subsequent changes of Table data
-rw-r--r--libs/cbi/luasrc/cbi.lua16
-rw-r--r--libs/cbi/luasrc/view/cbi/simpleform.htm5
2 files changed, 18 insertions, 3 deletions
diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua
index 275c3f3c3..b6ccc5480 100644
--- a/libs/cbi/luasrc/cbi.lua
+++ b/libs/cbi/luasrc/cbi.lua
@@ -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
+
--[[
diff --git a/libs/cbi/luasrc/view/cbi/simpleform.htm b/libs/cbi/luasrc/view/cbi/simpleform.htm
index 66810a071..e167a6e6d 100644
--- a/libs/cbi/luasrc/view/cbi/simpleform.htm
+++ b/libs/cbi/luasrc/view/cbi/simpleform.htm
@@ -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 %>