2 if type(self.hidden) ==
"table" then
3 for k, v in pairs(self.hidden) do
5 <input type=
"hidden" id=
"<%=k%>" name=
"<%=k%>" value=
"<%=pcdata(v)%>" />
11 <% if self.tabs then %
>
14 <% self:render_children(section, scope or {}) %
>
17 <% if self.error and self.error[section] then -%
>
18 <div class=
"cbi-section-error" data-index=
"<%=#self.children + 1%>">
19 <ul><% for _, e in ipairs(self.error[section]) do -%
>
21 <%- if e ==
"invalid" then -%
>
22 <%:One or more fields contain invalid values!%
>
23 <%- elseif e ==
"missing" then -%
>
24 <%:One or more required fields have no value!%
>
33 <% if self.optionals[section] and #self.optionals[section]
> 0 or self.dynamic then %
>
34 <div class=
"cbi-optionals" data-index=
"<%=#self.children + 1%>">
37 local keys, vals, name, opt = { }, { }
38 for name, opt in pairs(self.optionals[section]) do
40 vals[#vals+
1] = opt.title
43 <input type=
"text" id=
"cbi.opt.<%=self.config%>.<%=section%>" name=
"cbi.opt.<%=self.config%>.<%=section%>" data-type=
"uciname" data-optional=
"true"<%=
44 ifattr(#keys
> 0,
"data-choices", luci.util.json_encode({keys, vals}))
47 <select id=
"cbi.opt.<%=self.config%>.<%=section%>" name=
"cbi.opt.<%=self.config%>.<%=section%>" data-optionals=
"true">
48 <option><%: -- Additional Field -- %
></option>
49 <% for key, val in pairs(self.optionals[section]) do -%
>
50 <option id=
"cbi-<%=self.config.."-
"..section.."-
"..val.option%>" value=
"<%=val.option%>" data-index=
"<%=val.index%>" data-depends=
"<%=pcdata(val:deplist2json(section))%>"><%=striptags(val.title)%
></option>
54 <input type=
"submit" class=
"btn cbi-button cbi-button-fieldadd" value=
"<%:Add%>" />