luci-base: cbi: further refactoring
[project/luci.git] / modules / luci-base / luasrc / view / cbi / dynlist.htm
index 80cbee8..4d0b509 100644 (file)
@@ -1,5 +1,15 @@
 <%+cbi/valueheader%>
-<div>
+<div<%=
+       attr("data-prefix", cbid) ..
+       attr("data-browser-path", self.default_path) ..
+       attr("data-dynlist", luci.util.serialize_json({
+               self.keylist, self.vallist,
+               self.datatype, self.optional or self.rmempty
+       })) ..
+
+       ifattr(self.size, "data-size", self.size) ..
+       ifattr(self.placeholder, "data-placeholder", self.placeholder)
+%>>
 <%
        local vals = self:cfgvalue(section) or {}
        for i=1, #vals + 1 do
                if (val and #val > 0) or (i == 1) then
 %>
        <input class="cbi-input-text" value="<%=pcdata(val)%>" data-update="change" type="text"<%=
-               attr("id", cbid .. "." .. i) .. attr("name", cbid) .. ifattr(self.size, "size") ..
+               attr("id", cbid .. "." .. i) ..
+               attr("name", cbid) ..
+               ifattr(self.size, "size") ..
                ifattr(i == 1 and self.placeholder, "placeholder", self.placeholder)
        %> /><br />
 <% end end %>
 </div>
-<script type="text/javascript">
-cbi_dynlist_init(
-       '<%=cbid%>', '<%=resource%>', '<%=self.datatype%>',
-       <%=tostring(self.optional or self.rmempty)%>,
-       '<%=url('admin/filebrowser')%>',
-       '<%=self.default_path and self.default_path%>'
-       <%- if #self.keylist > 0 then -%>, [{
-               <%- for i, k in ipairs(self.keylist) do -%>
-                       <%-=string.format("%q", k) .. ":" .. string.format("%q", self.vallist[i])-%>
-                       <%-if i<#self.keylist then-%>,<%-end-%>
-               <%-     end     -%>
-       }, '<%: -- custom -- %>']<% end -%>);
-</script>
 <%+cbi/valuefooter%>