flm01/openwrt/packages/luci/libs/cbi/luasrc/view/cbi/filebrowser.htm

123 lines
3.0 KiB
HTML

<%#
LuCI - Lua Configuration Interface
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
$Id: filebrowser.htm 3555 2008-10-10 21:52:22Z jow $
-%>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Filebrowser - LuCI</title>
<style type="text/css">
#path, #listing {
font-size: 85%;
}
ul {
padding-left: 0;
list-style-type: none;
}
li img {
vertical-align: bottom;
margin-right: 0.2em;
}
</style>
<script type="text/javascript">
function callback(path) {
if( window.opener ) {
var input = window.opener.document.getElementById('<%=luci.http.formvalue('field')%>');
if( input ) {
input.value = path;
window.close();
}
}
}
</script>
</head>
<body>
<%
require("luci.fs")
require("luci.http")
require("luci.dispatcher")
local field = luci.http.formvalue('field')
local request = luci.dispatcher.context.path
local path = { '' }
for i = 3, #request do
if request[i] ~= '..' and #request[i] > 0 then
path[#path+1] = request[i]
end
end
local filepath = table.concat( path, '/' )
local filestat = luci.fs.stat( filepath )
local baseurl = luci.dispatcher.build_url('admin', 'filebrowser')
if filestat and filestat.type == "regular" then
table.remove( path, #path )
filepath = table.concat( path, '/' ) .. '/'
elseif not ( filestat and filestat.type == "directory" ) then
path = { '' }
filepath = '/'
else
filepath = filepath .. '/'
end
local entries = luci.fs.dir(filepath)
-%>
<div id="path">
Location:
<% for i, dir in ipairs(path) do %>
<% if i == 1 then %>
<a href="<%=baseurl%>?field=<%=field%>">(root)</a>
<% elseif next(path, i) then %>
<% baseurl = baseurl .. '/' .. dir %>
/ <a href="<%=baseurl%>?field=<%=field%>"><%=dir%></a>
<% else %>
<% baseurl = baseurl .. '/' .. dir %>
/ <%=dir%>
<% end %>
<% end %>
</div>
<hr />
<div id="listing">
<ul>
<% for _, e in luci.util.vspairs(entries) do
local stat = luci.fs.stat(filepath..e)
if e ~= '.' and e ~= '..' and stat and stat.type == 'directory' then
-%>
<li class="dir">
<img src="/luci-static/resources/cbi/folder.png" alt="Directory" />
<a href="<%=baseurl%>/<%=e%>?field=<%=field%>"><%=e%>/</a>
</li>
<% end end -%>
<% for _, e in luci.util.vspairs(entries) do
local stat = luci.fs.stat(filepath..e)
if stat and stat.type ~= 'directory' then
-%>
<li class="file">
<img src="/luci-static/resources/cbi/file.png" alt="File" />
<a href="#" onclick="callback('<%=filepath..e%>')"><%=e%></a>
</li>
<% end end -%>
</ul>
</div>
</body>
</html>