summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/luasrc/view/cbi/dropdown.htm
blob: bdf7248375b748eb182ec711b41bd7f7c4f55ba1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<%+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("value", key) ..
				ifattr(selected[key], "selected", "selected")
			%>>
				<%=pcdata(self.vallist[i])%>
			</li>
		<% end %>
	</ul>
</div>

<%+cbi/valuefooter%>