<% 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 i == self.size then write('<br />') end %> <% end %> </div> <% end %> <%+cbi/valuefooter%>