* 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) local function tag_fields(e)
if e.option and node.fields[e.option] then 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 elseif e.childs then
for _, c in ipairs(e.childs) do tag_fields(c) end for _, c in ipairs(e.childs) do tag_fields(c) end
end end
@ -104,7 +108,13 @@ local function _uvl_validate_section(node, name)
table.insert( s, c:string() ) table.insert( s, c:string() )
end end
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 end
local stat, err = node.map.validator:validate_section(node.config, name, co) 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 -%> <%- if self.title and #self.title > 0 then -%>
<label class="cbi-value-title"<%= attr("for", cbid) %>> <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 -%> <%- 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 %> <% if self.error then %>
<div class="cbi-section-error"> <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> </div>
<% end %> <% end %>

View file

@ -15,9 +15,9 @@ $Id$
<% self:render_children(section, scope or {}) %> <% self:render_children(section, scope or {}) %>
<% if self.error then -%> <% if self.error and self.error[section] then -%>
<div class="cbi-section-error"> <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> </div>
<%- end %> <%- end %>