mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-15 03:51:51 +00:00
113 lines
2.9 KiB
HTML
113 lines
2.9 KiB
HTML
<?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(decodeURIComponent('<%=luci.http.urlencode(luci.http.formvalue('field'))%>'));
|
|
if( input ) {
|
|
input.value = decodeURIComponent(path);
|
|
window.close();
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<%
|
|
require("nixio.fs")
|
|
require("nixio.util")
|
|
require("luci.http")
|
|
require("luci.dispatcher")
|
|
|
|
local field = luci.http.formvalue('field')
|
|
local request = luci.dispatcher.context.args
|
|
local path = { '' }
|
|
|
|
for i = 1, #request do
|
|
if request[i] ~= '..' and #request[i] > 0 then
|
|
path[#path+1] = request[i]
|
|
end
|
|
end
|
|
|
|
local filestat = nixio.fs.stat(table.concat(path, '/'))
|
|
local baseurl = { 'admin', 'filebrowser' }
|
|
|
|
if filestat and filestat.type == "reg" then
|
|
path[#path] = ''
|
|
elseif not (filestat and filestat.type == "dir") then
|
|
path = { '', '' }
|
|
else
|
|
path[#path+1] = ''
|
|
end
|
|
|
|
filepath = table.concat(path, '/')
|
|
|
|
local entries = {}
|
|
local _, e
|
|
for _, e in luci.util.vspairs(nixio.util.consume((nixio.fs.dir(filepath)))) do
|
|
local p = filepath .. e
|
|
local s = nixio.fs.stat(p)
|
|
if s then
|
|
entries[#entries+1] = {
|
|
name = e,
|
|
path = p,
|
|
type = s.type
|
|
}
|
|
end
|
|
end
|
|
-%>
|
|
<div id="path">
|
|
Location:
|
|
<% for i, dir in ipairs(path) do %>
|
|
<% if i == 1 then %>
|
|
<a href="<%=url(unpack(baseurl))%>?field=<%=luci.http.urlencode(field)%>">(root)</a>
|
|
<% elseif next(path, i) then %>
|
|
<% baseurl[#baseurl+1] = luci.http.urlencode(dir) %>
|
|
/ <a href="<%=url(unpack(baseurl))%>?field=<%=luci.http.urlencode(field)%>"><%=pcdata(dir)%></a>
|
|
<% else %>
|
|
<% baseurl[#baseurl+1] = luci.http.urlencode(dir) %>
|
|
/ <%=pcdata(dir)%>
|
|
<% end %>
|
|
<% end %>
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div id="listing">
|
|
<ul>
|
|
<% for _, e in ipairs(entries) do if e.type == 'dir' then -%>
|
|
<li class="dir">
|
|
<img src="<%=resource%>/cbi/folder.gif" alt="<%:Directory%>" />
|
|
<a href="<%=url(unpack(baseurl))%>/<%=luci.http.urlencode(e.name)%>?field=<%=luci.http.urlencode(field)%>"><%=pcdata(e.name)%>/</a>
|
|
</li>
|
|
<% end end -%>
|
|
|
|
<% for _, e in ipairs(entries) do if e.type ~= 'dir' then -%>
|
|
<li class="file">
|
|
<img src="<%=resource%>/cbi/file.gif" alt="<%:File%>" />
|
|
<a href="#" onclick="callback('<%=luci.http.urlencode(e.path)%>')"><%=pcdata(e.name)%></a>
|
|
</li>
|
|
<% end end -%>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|