summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-03-05 06:35:26 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-03-05 06:35:26 +0000
commit1db9f295fa3e98a1f1472d2a8eda881333db5a43 (patch)
treee6688cff377c1dcf4cd9a38127347f6319d874da
parent32aec7a4f3f1aaabd8cff223346db560ddacb387 (diff)
libs/web: repair and modernize FileBrowser widget, patches by Kevin Locke <klocke@digitalenginesoftware.com> (#207)
-rw-r--r--libs/web/htdocs/luci-static/resources/cbi.js18
-rw-r--r--libs/web/htdocs/luci-static/resources/cbi/file.gifbin0 -> 371 bytes
-rw-r--r--libs/web/htdocs/luci-static/resources/cbi/folder.gifbin0 -> 698 bytes
-rw-r--r--libs/web/luasrc/view/cbi/browser.htm5
-rw-r--r--libs/web/luasrc/view/cbi/filebrowser.htm8
5 files changed, 25 insertions, 6 deletions
diff --git a/libs/web/htdocs/luci-static/resources/cbi.js b/libs/web/htdocs/luci-static/resources/cbi.js
index 2bcfb8c3d..be0a5a8d7 100644
--- a/libs/web/htdocs/luci-static/resources/cbi.js
+++ b/libs/web/htdocs/luci-static/resources/cbi.js
@@ -402,6 +402,23 @@ function cbi_filebrowser(id, url, defpath) {
browser.focus();
}
+function cbi_browser_init(id, respath, url, defpath)
+{
+ function cbi_browser_btnclick(e) {
+ cbi_filebrowser(id, url, defpath);
+ return false;
+ }
+
+ var field = document.getElementById(id);
+
+ var btn = document.createElement('img');
+ btn.className = 'cbi-image-button';
+ btn.src = respath + '/cbi/folder.gif';
+ field.parentNode.insertBefore(btn, field.nextSibling);
+
+ cbi_bind(btn, 'click', cbi_browser_btnclick);
+}
+
function cbi_dynlist_init(name, respath)
{
function cbi_dynlist_renumber(e)
@@ -587,6 +604,7 @@ function cbi_dynlist_init(name, respath)
for( var i = 0; i < inputs.length; i++ )
{
var btn = document.createElement('img');
+ btn.className = 'cbi-image-button';
btn.src = respath + (
(i+1) < inputs.length ? '/cbi/remove.gif' : '/cbi/add.gif'
);
diff --git a/libs/web/htdocs/luci-static/resources/cbi/file.gif b/libs/web/htdocs/luci-static/resources/cbi/file.gif
new file mode 100644
index 000000000..3b1217dd6
--- /dev/null
+++ b/libs/web/htdocs/luci-static/resources/cbi/file.gif
Binary files differ
diff --git a/libs/web/htdocs/luci-static/resources/cbi/folder.gif b/libs/web/htdocs/luci-static/resources/cbi/folder.gif
new file mode 100644
index 000000000..22b583bb5
--- /dev/null
+++ b/libs/web/htdocs/luci-static/resources/cbi/folder.gif
Binary files differ
diff --git a/libs/web/luasrc/view/cbi/browser.htm b/libs/web/luasrc/view/cbi/browser.htm
index 3b7b23f5d..08df483b5 100644
--- a/libs/web/luasrc/view/cbi/browser.htm
+++ b/libs/web/luasrc/view/cbi/browser.htm
@@ -14,10 +14,11 @@ $Id$
-%>
<%
- local t = require("luci.tools.webadmin")
local v = self:cfgvalue(section)
-%>
<%+cbi/valueheader%>
<input class="cbi-input-text" type="text"<%= attr("value", v) .. attr("name", cbid) .. attr("id", cbid) %> />
- <input class="cbi-input-image" type="image" value="<%:Search file...%>" onclick="cbi_filebrowser('<%=cbid%>','<%=luci.dispatcher.build_url("admin", "filebrowser")%>'<%=self.default_path and ", '"..self.default_path.."'"%>);return false" alt="<%:Search file...%>" title="<%:Search file...%>" src="<%=resource%>/cbi/folder.png" style="vertical-align:bottom" />
+ <script type="text/javascript">
+cbi_browser_init('<%=cbid%>', '<%=resource%>', '<%=luci.dispatcher.build_url("admin", "filebrowser")%>'<%=self.default_path and ", '"..self.default_path.."'"%>);
+ </script>
<%+cbi/valuefooter%>
diff --git a/libs/web/luasrc/view/cbi/filebrowser.htm b/libs/web/luasrc/view/cbi/filebrowser.htm
index f82957221..40480ec9d 100644
--- a/libs/web/luasrc/view/cbi/filebrowser.htm
+++ b/libs/web/luasrc/view/cbi/filebrowser.htm
@@ -54,10 +54,10 @@ $Id$
require("luci.dispatcher")
local field = luci.http.formvalue('field')
- local request = luci.dispatcher.context.path
+ local request = luci.dispatcher.context.args
local path = { '' }
- for i = 3, #request do
+ for i = 1, #request do
if request[i] ~= '..' and #request[i] > 0 then
path[#path+1] = request[i]
end
@@ -103,7 +103,7 @@ $Id$
if stat and stat.type == 'dir' then
-%>
<li class="dir">
- <img src="/luci-static/resources/cbi/folder.png" alt="Directory" />
+ <img src="<%=resource%>/cbi/folder.gif" alt="<%:Directory%>" />
<a href="<%=baseurl%>/<%=e%>?field=<%=field%>"><%=e%>/</a>
</li>
<% end end -%>
@@ -113,7 +113,7 @@ $Id$
if stat and stat.type ~= 'dir' then
-%>
<li class="file">
- <img src="/luci-static/resources/cbi/file.png" alt="File" />
+ <img src="<%=resource%>/cbi/file.gif" alt="<%:File%>" />
<a href="#" onclick="callback('<%=filepath..e%>')"><%=e%></a>
</li>
<% end end -%>