Two new arguments url, defpath were added to cbi_dynlist_init() for
initializing the brower button.
An example of usage
identity = section:taboption("general", DynamicList, "identity",
translate("List of SSH key files for auth"))
identity.datatype = "file"
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
cbi_bind(btn, 'click', cbi_browser_btnclick);
}
cbi_bind(btn, 'click', cbi_browser_btnclick);
}
-function cbi_dynlist_init(name, respath, datatype, optional, choices)
+function cbi_dynlist_init(name, respath, datatype, optional, url, defpath, choices)
{
var input0 = document.getElementsByName(name)[0];
var prefix = input0.name;
{
var input0 = document.getElementsByName(name)[0];
var prefix = input0.name;
parent.appendChild(t);
parent.appendChild(b);
parent.appendChild(t);
parent.appendChild(b);
+ if (datatype == 'file')
+ {
+ cbi_browser_init(t.id, respath, url, defpath);
+ }
+
parent.appendChild(document.createElement('br'));
if (datatype)
parent.appendChild(document.createElement('br'));
if (datatype)
if (choices)
{
cbi_combobox_init(t.id, choices[0], '', choices[1]);
if (choices)
{
cbi_combobox_init(t.id, choices[0], '', choices[1]);
- t.nextSibling.index = i;
- cbi_bind(t.nextSibling, 'keydown', cbi_dynlist_keydown);
- cbi_bind(t.nextSibling, 'keypress', cbi_dynlist_keypress);
+ cbi_bind(b, 'keydown', cbi_dynlist_keydown);
+ cbi_bind(b, 'keypress', cbi_dynlist_keypress);
if (i == focus || -i == focus)
if (i == focus || -i == focus)
ev = ev ? ev : window.event;
var se = ev.target ? ev.target : ev.srcElement;
ev = ev ? ev : window.event;
var se = ev.target ? ev.target : ev.srcElement;
+ var input = se.previousSibling;
+ while (input && input.name != name) {
+ input = input.previousSibling;
+ }
if (se.src.indexOf('remove') > -1)
{
if (se.src.indexOf('remove') > -1)
{
- se.previousSibling.value = '';
- target: se.previousSibling,
keyCode: 8
});
}
else
{
cbi_dynlist_keydown({
keyCode: 8
});
}
else
{
cbi_dynlist_keydown({
- target: se.previousSibling,
<script type="text/javascript">
cbi_dynlist_init(
'<%=cbid%>', '<%=resource%>', '<%=self.datatype%>',
<script type="text/javascript">
cbi_dynlist_init(
'<%=cbid%>', '<%=resource%>', '<%=self.datatype%>',
- <%=tostring(self.optional or self.rmempty)%>
+ <%=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 #self.keylist > 0 then -%>, [{
<%- for i, k in ipairs(self.keylist) do -%>
<%-=string.format("%q", k) .. ":" .. string.format("%q", self.vallist[i])-%>