* luci/libs/cbi: fix error assignment in cbi sections

This commit is contained in:
Jo-Philipp Wich 2008-09-06 22:37:56 +00:00
parent a9875adb29
commit c5278e17dc
5 changed files with 19 additions and 7 deletions

View file

@ -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)

View file

@ -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%>">

View file

@ -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 -%>

View file

@ -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 %>

View file

@ -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 %>