summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/luasrc/view/cbi/dropdown.htm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/luci-base/luasrc/view/cbi/dropdown.htm')
-rw-r--r--modules/luci-base/luasrc/view/cbi/dropdown.htm69
1 files changed, 17 insertions, 52 deletions
diff --git a/modules/luci-base/luasrc/view/cbi/dropdown.htm b/modules/luci-base/luasrc/view/cbi/dropdown.htm
index 6f4b89905b..40bd8e9536 100644
--- a/modules/luci-base/luasrc/view/cbi/dropdown.htm
+++ b/modules/luci-base/luasrc/view/cbi/dropdown.htm
@@ -1,54 +1,19 @@
<%+cbi/valueheader%>
-
-<%-
- local selected = { }
-
- if self.multiple then
- local val
- for val in luci.util.imatch(self:cfgvalue(section)) do
- selected[val] = true
- end
- else
- selected[self:cfgvalue(section)] = true
- end
-
- if not next(selected) and self.default then
- selected[self.default] = true
- end
--%>
-
-<div class="cbi-dropdown"<%=
- attr("name", cbid) ..
- attr("display-items", self.display or self.size or 3) ..
- attr("dropdown-items", self.dropdown or self.display or self.size or 5) ..
- attr("placeholder", self.placeholder or translate("-- please select --")) ..
- ifattr(self.multiple, "multiple", "multiple") ..
- ifattr(self.optional or self.rmempty, "optional", "optional")
-%>>
- <ul>
- <% local i, key; for i, key in pairs(self.keylist) do %>
- <li<%=
- attr("data-index", i) ..
- attr("data-depends", self:deplist2json(section, self.deplist[i])) ..
- attr("data-value", key) ..
- ifattr(selected[key], "selected", "selected")
- %>>
- <%=pcdata(self.vallist[i])%>
- </li>
- <% end %>
- <% if self.custom then %>
- <li>
- <input type="password" style="display:none" />
- <input class="create-item-input" type="text"<%=
- attr("placeholder", self.custom ~= true and
- self.custom or
- (self.multiple and
- translate("Enter custom values") or
- translate("Enter custom value")))
- %> />
- </li>
- <% end %>
- </ul>
-</div>
-
+<div<%=attr("data-ui-widget", luci.util.serialize_json({
+ "Dropdown", self:cfgvalue(section), self:choices(), {
+ id = cbid,
+ name = cbid,
+ sort = self.keylist,
+ multi = self.multiple,
+ datatype = self.datatype,
+ optional = self.optional or self.rmempty,
+ readonly = self.readonly,
+ maxlength = self.maxlength,
+ placeholder = self.placeholder,
+ display_items = self.display or self.size or 3,
+ dropdown_items = self.dropdown or self.display or self.size or 5,
+ custom_placeholder = self.custom or
+ (self.multiple and translate("Enter custom values") or translate("Enter custom value"))
+ }
+}))%>></div>
<%+cbi/valuefooter%>