Do not render standard widgets like checkboxes, select boxes, text input fields etc. on the server side anymore but utilize the ui.js primitives instead. This avoids logic duplication between server side cbi templates and JS widgets in the future. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
35 lines
932 B
HTML
35 lines
932 B
HTML
<%+cbi/valueheader%>
|
|
|
|
<% local choices = self:choices()
|
|
if choices then %>
|
|
<div<%=attr("data-ui-widget", luci.util.serialize_json({
|
|
"Combobox", self:cfgvalue(section) or self.default, choices, {
|
|
id = cbid,
|
|
name = cbid,
|
|
size = self.size,
|
|
sort = self.keylist,
|
|
datatype = self.datatype,
|
|
optional = self.optional or self.rmempty,
|
|
readonly = self.readonly,
|
|
maxlength = self.maxlength,
|
|
placeholder = self.placeholder,
|
|
custom_placeholder = self.combobox_manual
|
|
}
|
|
}))%>></div>
|
|
<% else %>
|
|
<div<%=attr("data-ui-widget", luci.util.serialize_json({
|
|
"Textfield", self:cfgvalue(section) or self.default, {
|
|
id = cbid,
|
|
name = cbid,
|
|
size = self.size,
|
|
datatype = self.datatype,
|
|
optional = self.optional or self.rmempty,
|
|
password = self.password,
|
|
readonly = self.readonly,
|
|
maxlength = self.maxlength,
|
|
placeholder = self.placeholder
|
|
}
|
|
}))%>></div>
|
|
<% end %>
|
|
|
|
<%+cbi/valuefooter%>
|