- <% if self.dynamic then %>
- <input type="text" id="cbi.opt.<%=self.config%>.<%=section%>" name="cbi.opt.<%=self.config%>.<%=section%>" />
- <% if self.optionals[section] and #self.optionals[section] > 0 then %>
- <script type="text/javascript">
- cbi_combobox_init('cbi.opt.<%=self.config%>.<%=section%>', {
- <%-
- for i, val in pairs(self.optionals[section]) do
- -%>
- <%-=string.format("%q", val.option) .. ":" .. string.format("%q", striptags(val.title))-%>
- <%-if next(self.optionals[section], i) then-%>,<%-end-%>
- <%-
- end
- -%>
- }, '', '<%-: -- custom -- -%>');
- </script>
- <% end %>
+ <%
+ if self.dynamic then
+ local keys, vals, name, opt = { }, { }
+ for name, opt in pairs(self.optionals[section]) do
+ keys[#keys+1] = name
+ vals[#vals+1] = opt.title
+ end
+ %>
+ <input type="text" id="cbi.opt.<%=self.config%>.<%=section%>" name="cbi.opt.<%=self.config%>.<%=section%>" data-type="uciname" data-optional="true"<%=
+ ifattr(#keys > 0, "data-choices", luci.util.json_encode({keys, vals}))
+ %> />