summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2008-09-06 22:37:56 +0000
committerJo-Philipp Wich <jow@openwrt.org>2008-09-06 22:37:56 +0000
commitc5278e17dc329be547c33a46e56fd655c77476c2 (patch)
tree99530b66e4fb1dc416b9eba77752ff4cf21d7cd7
parenta9875adb29da9f42da5e6e8839917a0b76d5c19d (diff)
* luci/libs/cbi: fix error assignment in cbi sections
-rw-r--r--libs/cbi/luasrc/cbi.lua14
-rw-r--r--libs/cbi/luasrc/view/cbi/cell_valueheader.htm2
-rw-r--r--libs/cbi/luasrc/view/cbi/full_valueheader.htm2
-rw-r--r--libs/cbi/luasrc/view/cbi/tblsection.htm4
-rw-r--r--libs/cbi/luasrc/view/cbi/ucisection.htm4
5 files changed, 19 insertions, 7 deletions
diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua
index 09ba553ec..c1eefca5d 100644
--- a/libs/cbi/luasrc/cbi.lua
+++ b/libs/cbi/luasrc/cbi.lua
@@ -89,7 +89,11 @@ local function _uvl_validate_section(node, name)
local function tag_fields(e)
if e.option and node.fields[e.option] then
- node.fields[e.option].error = e
+ if node.fields[e.option].error then
+ node.fields[e.option].error[name] = e
+ else
+ node.fields[e.option].error = { [name] = e }
+ end
elseif e.childs then
for _, c in ipairs(e.childs) do tag_fields(c) end
end
@@ -104,7 +108,13 @@ local function _uvl_validate_section(node, name)
table.insert( s, c:string() )
end
end
- if #s > 0 then node.error = s end
+ if #s > 0 then
+ if node.error then
+ node.error[name] = s
+ else
+ node.error = { [name] = s }
+ end
+ end
end
local stat, err = node.map.validator:validate_section(node.config, name, co)
diff --git a/libs/cbi/luasrc/view/cbi/cell_valueheader.htm b/libs/cbi/luasrc/view/cbi/cell_valueheader.htm
index 9a065a3da..dda17463c 100644
--- a/libs/cbi/luasrc/view/cbi/cell_valueheader.htm
+++ b/libs/cbi/luasrc/view/cbi/cell_valueheader.htm
@@ -13,4 +13,4 @@ $Id$
-%>
-<td class="cbi-value-field<% if self.error then %> cbi-value-error<% end %>" id="cbi-<%=self.config.."-"..section.."-"..self.option%>">
+<td class="cbi-value-field<% if self.error and self.error[section] then %> cbi-value-error<% end %>" id="cbi-<%=self.config.."-"..section.."-"..self.option%>">
diff --git a/libs/cbi/luasrc/view/cbi/full_valueheader.htm b/libs/cbi/luasrc/view/cbi/full_valueheader.htm
index fed2412f0..cbeda755b 100644
--- a/libs/cbi/luasrc/view/cbi/full_valueheader.htm
+++ b/libs/cbi/luasrc/view/cbi/full_valueheader.htm
@@ -13,7 +13,7 @@ $Id$
-%>
-<div class="cbi-value<% if self.error then %> cbi-value-error<% end %>" id="cbi-<%=self.config.."-"..section.."-"..self.option%>">
+<div class="cbi-value<% if self.error and self.error[section] then %> cbi-value-error<% end %>" id="cbi-<%=self.config.."-"..section.."-"..self.option%>">
<%- if self.title and #self.title > 0 then -%>
<label class="cbi-value-title"<%= attr("for", cbid) %>>
<%- if self.titleref then -%><a title="<%=self.titledesc or translate('cbi_gorel')%>" class="cbi-title-ref" href="<%=self.titleref%>"><%- end -%>
diff --git a/libs/cbi/luasrc/view/cbi/tblsection.htm b/libs/cbi/luasrc/view/cbi/tblsection.htm
index 5a2b24734..49930f848 100644
--- a/libs/cbi/luasrc/view/cbi/tblsection.htm
+++ b/libs/cbi/luasrc/view/cbi/tblsection.htm
@@ -100,7 +100,9 @@ end
<% if self.error then %>
<div class="cbi-section-error">
- <ul><% for _, e in ipairs(self.error) do %><li><%=luci.util.pcdata(e):gsub("\n","<br />")%></li><% end %></ul>
+ <ul><% for _, c in pairs(self.error) do for _, e in ipairs(c) do -%>
+ <li><%=luci.util.pcdata(e):gsub("\n","<br />")%></li>
+ <%- end end %></ul>
</div>
<% end %>
diff --git a/libs/cbi/luasrc/view/cbi/ucisection.htm b/libs/cbi/luasrc/view/cbi/ucisection.htm
index feab18e62..92343bba2 100644
--- a/libs/cbi/luasrc/view/cbi/ucisection.htm
+++ b/libs/cbi/luasrc/view/cbi/ucisection.htm
@@ -15,9 +15,9 @@ $Id$
<% self:render_children(section, scope or {}) %>
-<% if self.error then -%>
+<% if self.error and self.error[section] then -%>
<div class="cbi-section-error">
- <ul><% for _, e in ipairs(self.error) do %><li><%=luci.util.pcdata(e):gsub("\n","<br />")%></li><% end %></ul>
+ <ul><% for _, e in ipairs(self.error[section]) do %><li><%=luci.util.pcdata(e):gsub("\n","<br />")%></li><% end %></ul>
</div>
<%- end %>