<%
	local i, key
	local v = self:valuelist(section) or {}
-%>

<%+cbi/valueheader%>
<% if self.widget == "select" then %>
	<select class="cbi-input-select" multiple="multiple" data-update="click change"<%=
		attr("id", cbid) ..
		attr("name", cbid) ..
		ifattr(self.size, "size")
	%>>
		<% for i, key in pairs(self.keylist) do -%>
			<option<%=
				attr("id", cbid.."-"..key) ..
				attr("value", key) ..
				attr("data-index", i) ..
				attr("data-depends", self:deplist2json(section, self.deplist[i])) ..
				ifattr(luci.util.contains(v, key), "selected", "selected")
			%>><%=pcdata(self.vallist[i])%></option>
		<%- end %>
	</select>
<% elseif self.widget == "checkbox" then %>
	<div>
		<% for i, key in pairs(self.keylist) do %>
			<label<%=
				attr("data-index", i) ..
				attr("data-depends", self:deplist2json(section, self.deplist[i]))
			%>>
				<input class="cbi-input-checkbox" type="checkbox" data-update="click change"<%=
					attr("id", cbid.."-"..key) ..
					attr("name", cbid) ..
					attr("value", key) ..
					ifattr(luci.util.contains(v, key), "checked", "checked")
				%> />
				<label<%= attr("for", cbid.."-"..key)%>></label>
				<%=pcdata(self.vallist[i])%>
			</label>
			<% if self.size and (i % self.size) == 0 then write('<br />') end %>
		<% end %>
	</div>
<% end %>
<%+cbi/valuefooter%>
