<% local i, key local br = self.orientation == "horizontal" and ' ' or '<br />' %> <%+cbi/valueheader%> <% if self.widget == "select" then %> <select class="cbi-input-select" data-update="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(tostring(self:cfgvalue(section) or self.default) == key, "selected", "selected") %>><%=pcdata(self.vallist[i])%></option> <%- end %> </select> <% elseif self.widget == "radio" 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-radio" data-update="click change" type="radio"<%= attr("id", cbid.."-"..key) .. attr("name", cbid) .. attr("value", key) .. ifattr((self:cfgvalue(section) or self.default) == 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%>