mirror of
https://github.com/kenzok8/small-package.git
synced 2026-02-04 05:47:19 +08:00
update 2025-12-13 00:30:06
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dockerd
|
||||
PKG_VERSION:=29.1.2
|
||||
PKG_VERSION:=29.1.3
|
||||
PKG_RELEASE:=1
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@@ -6,9 +6,9 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=LuCI support for Fileassistant
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=1.0-5
|
||||
PKG_RELEASE:=7
|
||||
PKG_VERSION:=1.0
|
||||
PKG_RELEASE:=8
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
||||
@@ -91,40 +91,6 @@ String.prototype.replaceAll = function(search, replacement) {
|
||||
}
|
||||
}
|
||||
|
||||
function chmodPath(filename, isdir) {
|
||||
var newmod = prompt('请输入新的权限位(支持八进制权限位或者a+x格式):', isdir === "1" ? "0755" : "0644");
|
||||
if (newmod) {
|
||||
iwxhr.get('/cgi-bin/luci/admin/nas/fileassistant/chmod',
|
||||
{
|
||||
filepath: concatPath(currentPath, filename),
|
||||
newmod: newmod
|
||||
},
|
||||
function (x, res) {
|
||||
if (res.ec === 0) {
|
||||
refresh_list(res.data, currentPath);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function chownPath(filename) {
|
||||
var newown = prompt('请输入新的用户名(支持用户名或用户名:群组格式):', "root");
|
||||
if (newown) {
|
||||
iwxhr.get('/cgi-bin/luci/admin/nas/fileassistant/chown',
|
||||
{
|
||||
filepath: concatPath(currentPath, filename),
|
||||
newown: newown
|
||||
},
|
||||
function (x, res) {
|
||||
if (res.ec === 0) {
|
||||
refresh_list(res.data, currentPath);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function openpath(filename, dirname) {
|
||||
dirname = dirname || currentPath;
|
||||
window.open('/cgi-bin/luci/admin/nas/fileassistant/open?path='
|
||||
@@ -164,13 +130,6 @@ String.prototype.replaceAll = function(search, replacement) {
|
||||
else if (targetElem.className.indexOf('cbi-button-edit') > -1) {
|
||||
renamePath(targetElem.parentNode.parentNode.dataset['filename']);
|
||||
}
|
||||
else if (targetElem.className.indexOf('cbi-button-chmod') > -1) {
|
||||
infoElem = targetElem.parentNode.parentNode;
|
||||
chmodPath(infoElem.dataset['filename'] , infoElem.dataset['isdir']);
|
||||
}
|
||||
else if (targetElem.className.indexOf('cbi-button-chown') > -1) {
|
||||
chownPath(targetElem.parentNode.parentNode.dataset['filename']);
|
||||
}
|
||||
else if (targetElem = getFileElem(targetElem)) {
|
||||
if (targetElem.className.indexOf('parent-icon') > -1) {
|
||||
update_list(currentPath.replace(/\/[^/]+($|\/$)/, ''));
|
||||
@@ -197,14 +156,7 @@ String.prototype.replaceAll = function(search, replacement) {
|
||||
}
|
||||
}
|
||||
function refresh_list(filenames, path) {
|
||||
var listHtml = '<table class="cbi-section-table"><thead><tr class="cbi-section-table-row cbi-rowstyle-2">'
|
||||
+'<td class="cbi-value-field">文件</td>'
|
||||
+'<td class="cbi-value-field">所有者</td>'
|
||||
+'<td class="cbi-value-field">修改时间</td>'
|
||||
+'<td class="cbi-value-field">大小</td>'
|
||||
+'<td class="cbi-value-field">权限</td>'
|
||||
+'<td class="cbi-section-table-cell">操作</td>'
|
||||
+'</tr></thead><tbody>';
|
||||
var listHtml = '<table class="cbi-section-table"><tbody>';
|
||||
if (path !== '/') {
|
||||
listHtml += '<tr class="cbi-section-table-row cbi-rowstyle-2"><td class="parent-icon" colspan="6"><strong>..</strong></td></tr>';
|
||||
}
|
||||
@@ -244,9 +196,7 @@ String.prototype.replaceAll = function(search, replacement) {
|
||||
+ '<td class="cbi-value-field cbi-value-perm">'+o.perms+'</td>'
|
||||
+ '<td class="cbi-section-table-cell">\
|
||||
<button class="cbi-button cbi-button-edit">重命名</button>\
|
||||
<button class="cbi-button cbi-button-remove">删除</button>\
|
||||
<button class="cbi-button cbi-button-apply cbi-button-chmod">改权限</button>\
|
||||
<button class="cbi-button cbi-button-apply cbi-button-chown">改用户</button>'
|
||||
<button class="cbi-button cbi-button-remove">删除</button>'
|
||||
+ install_btn
|
||||
+ '</td>'
|
||||
+ '</tr>';
|
||||
@@ -320,26 +270,6 @@ String.prototype.replaceAll = function(search, replacement) {
|
||||
}
|
||||
};
|
||||
|
||||
document.getElementById('mkdir-toggle').onclick = function() {
|
||||
var dirname = null;
|
||||
if (dirname = prompt("请输入文件夹名称:")) {
|
||||
var formData = new FormData();
|
||||
formData.append('path', currentPath);
|
||||
formData.append('dirname', dirname);
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "/cgi-bin/luci/admin/nas/fileassistant/mkdir", true);
|
||||
xhr.onload = function() {
|
||||
if (xhr.status == 200) {
|
||||
var res = JSON.parse(xhr.responseText);
|
||||
refresh_list(res.data, currentPath);
|
||||
}
|
||||
else {
|
||||
alert('创建失败,请稍后再试...');
|
||||
}
|
||||
};
|
||||
xhr.send(formData);
|
||||
}
|
||||
};
|
||||
document.addEventListener('DOMContentLoaded', function(evt) {
|
||||
var initPath = '/';
|
||||
if (/path=([/\w]+)/.test(location.search)) {
|
||||
|
||||
@@ -6,6 +6,7 @@ function index()
|
||||
page = entry({"admin", "system", "fileassistant"}, template("fileassistant"), _("文件管理"), 50)
|
||||
page.i18n = "base"
|
||||
page.dependent = true
|
||||
page.acl_depends = { "luci-app-fileassistant" }
|
||||
|
||||
page = entry({"admin", "nas", "fileassistant", "list"}, call("fileassistant_list"), nil)
|
||||
page.leaf = true
|
||||
@@ -25,14 +26,6 @@ function index()
|
||||
page = entry({"admin", "nas", "fileassistant", "install"}, call("fileassistant_install"), nil)
|
||||
page.leaf = true
|
||||
|
||||
page = entry({"admin", "nas", "fileassistant", "mkdir"}, call("fileassistant_mkdir"), nil)
|
||||
page.leaf = true
|
||||
|
||||
page = entry({"admin", "nas", "fileassistant", "chmod"}, call("fileassistant_chmod"), nil)
|
||||
page.leaf = true
|
||||
|
||||
page = entry({"admin", "nas", "fileassistant", "chown"}, call("fileassistant_chown"), nil)
|
||||
page.leaf = true
|
||||
end
|
||||
|
||||
function list_response(path, success)
|
||||
@@ -116,18 +109,15 @@ function installIPK(filepath)
|
||||
end
|
||||
|
||||
function fileassistant_upload()
|
||||
local filecontent = luci.http.formvalue("upload-file")
|
||||
local filename = luci.http.formvalue("upload-filename")
|
||||
local uploaddir = luci.http.formvalue("upload-dir")
|
||||
local filepath = uploaddir..filename
|
||||
|
||||
local fp
|
||||
-- MUST setfilehandler before formvalue,
|
||||
-- beacuse formvalue will parse form and write body to /tmp if filehandler not present
|
||||
luci.http.setfilehandler(
|
||||
function(meta, chunk, eof)
|
||||
if not fp and meta and meta.name == "upload-file" then
|
||||
local filename = luci.http.formvalue("upload-filename")
|
||||
local uploaddir = luci.http.formvalue("upload-dir")
|
||||
if not uploaddir or not filename then
|
||||
error("uploaddir or filename is nil")
|
||||
end
|
||||
local filepath = uploaddir..filename
|
||||
fp = io.open(filepath, "w")
|
||||
end
|
||||
if fp and chunk then
|
||||
@@ -139,28 +129,7 @@ function fileassistant_upload()
|
||||
end
|
||||
)
|
||||
|
||||
list_response(luci.http.formvalue("upload-dir"), true)
|
||||
end
|
||||
|
||||
function fileassistant_mkdir()
|
||||
local path = luci.http.formvalue("path")
|
||||
local dirname = luci.http.formvalue("dirname")
|
||||
local success = os.execute('sh -c \'cd "'..path..'" && mkdir -p "'..dirname..'"\'')
|
||||
list_response(path, success)
|
||||
end
|
||||
|
||||
function fileassistant_chmod()
|
||||
local path = luci.http.formvalue("filepath")
|
||||
local newmod = luci.http.formvalue("newmod")
|
||||
local success = os.execute('chmod '..newmod..' "'..path..'"')
|
||||
list_response(nixio.fs.dirname(path), success)
|
||||
end
|
||||
|
||||
function fileassistant_chown()
|
||||
local path = luci.http.formvalue("filepath")
|
||||
local newown = luci.http.formvalue("newown")
|
||||
local success = os.execute('chown '..newown..' "'..path..'"')
|
||||
list_response(nixio.fs.dirname(path), success)
|
||||
list_response(uploaddir, true)
|
||||
end
|
||||
|
||||
function scandir(directory)
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<%+header%>
|
||||
|
||||
<link rel="stylesheet" href="/luci-static/resources/fileassistant/fb.css<%# ?v=PKG_VERSION %>">
|
||||
<link rel="stylesheet" href="/luci-static/resources/fileassistant/fb.css?v=@ver">
|
||||
<h2 name="content">文件助手</h2>
|
||||
<fieldset class="cbi-section fb-container">
|
||||
<input id="current-path" type="text" class="current-path cbi-input-text" value="/"/>
|
||||
<div class="panel-container">
|
||||
<div class="panel-title">文件列表</div>
|
||||
<button id="upload-toggle" class="upload-toggle cbi-button cbi-button-edit">上传</button>
|
||||
<button id="mkdir-toggle" class="upload-toggle cbi-button cbi-button-edit">新建文件夹… </button>
|
||||
</div>
|
||||
<div class="upload-container" id="upload-container">
|
||||
<input id="upload-file" name="upload-file" class="upload-file" type="file">
|
||||
@@ -16,6 +15,6 @@
|
||||
<div id="list-content"></div>
|
||||
</fieldset>
|
||||
|
||||
<script src="/luci-static/resources/fileassistant/fb.js<%# ?v=PKG_VERSION %>"></script>
|
||||
<script src="/luci-static/resources/fileassistant/fb.js?v=@ver"></script>
|
||||
|
||||
<%+footer%>
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"luci-app-fileassistant": {
|
||||
"description": "Grant UCI access for luci-app-fileassistant",
|
||||
"read": {
|
||||
"uci": [ "fileassistant" ]
|
||||
},
|
||||
"write": {
|
||||
"uci": [ "fileassistant" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -82,6 +82,11 @@ if Process_list:find("local.ssr.retcp") then
|
||||
sock5_run = 1
|
||||
end
|
||||
|
||||
if Process_list:find("local.nft.ssr.retcp") then
|
||||
redir_run = 1
|
||||
sock5_run = 1
|
||||
end
|
||||
|
||||
if Process_list:find("local.udp.ssr.retcp") then
|
||||
reudp_run = 1
|
||||
redir_run = 1
|
||||
|
||||
@@ -1040,7 +1040,15 @@ Start_Run() {
|
||||
if [ "$_local" == "1" ]; then
|
||||
local socks_port=$(uci_get_by_type socks5_proxy local_port)
|
||||
tcp_config_file=$TMP_PATH/local-ssr-retcp.json
|
||||
[ "$mode" == "tcp,udp" ] && tcp_config_file=$TMP_PATH/local-udp-ssr-retcp.json
|
||||
[ "$mode" == "tcp,udp" ] && {
|
||||
if command -v nft >/dev/null 2>&1; then
|
||||
# nftables / fw4
|
||||
tcp_config_file=$TMP_PATH/local-nft-ssr-retcp.json
|
||||
else
|
||||
# iptables / fw3
|
||||
tcp_config_file=$TMP_PATH/local-udp-ssr-retcp.json
|
||||
fi
|
||||
}
|
||||
fi
|
||||
local tcp_port=$(uci_get_by_name $GLOBAL_SERVER local_port)
|
||||
local type=$(uci_get_by_name $GLOBAL_SERVER type)
|
||||
|
||||
Reference in New Issue
Block a user