<%-
	if type(self.hidden) == "table" then
		for k, v in pairs(self.hidden) do
-%>
	<input type="hidden" id="<%=k%>" name="<%=k%>" value="<%=pcdata(v)%>" />
<%-
		end
	end
%>

<% if self.tabs then %>
	<%+cbi/tabcontainer%>
<% else %>
	<% self:render_children(section, scope or {}) %>
<% end %>

<% if self.error and self.error[section] then -%>
	<div class="cbi-section-error" data-index="<%=#self.children + 1%>">
		<ul><% for _, e in ipairs(self.error[section]) do -%>
			<li>
				<%- if e == "invalid" then -%>
					<%:One or more fields contain invalid values!%>
				<%- elseif e == "missing" then -%>
					<%:One or more required fields have no value!%>
				<%- else -%>
					<%=pcdata(e)%>
				<%- end -%>
			</li>
		<%- end %></ul>
	</div>
<%- end %>

<% if self.optionals[section] and #self.optionals[section] > 0 or self.dynamic then %>
	<div class="cbi-optionals" data-index="<%=#self.children + 1%>">
		<%-
		if self.dynamic then
			local keys, vals, name, opt = { }, { }
			for name, opt in pairs(self.optionals[section]) do
				keys[#keys+1] = name
				vals[#vals+1] = opt.title
			end
		-%>
			<input type="text" id="cbi.opt.<%=self.config%>.<%=section%>" name="cbi.opt.<%=self.config%>.<%=section%>" data-type="uciname" data-optional="true"<%=
				ifattr(#keys > 0, "data-choices", luci.util.json_encode({keys, vals}))
			%> />
		<%- else -%>
			<select id="cbi.opt.<%=self.config%>.<%=section%>" name="cbi.opt.<%=self.config%>.<%=section%>" data-optionals="true">
				<option><%: -- Additional Field -- %></option>
				<% for key, val in pairs(self.optionals[section]) do -%>
					<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>
				<%- end %>
			</select>
		<%- end -%>
		<input type="submit" class="cbi-button cbi-button-fieldadd" value="<%:Add%>" />
	</div>
<% end %>
