update 04-08 18:57

This commit is contained in:
github-actions[bot] 2022-04-08 18:57:49 +08:00
parent 76fe17ac37
commit acd1cef001
6 changed files with 26 additions and 195 deletions

View File

@ -6,9 +6,7 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI support for Fileassistant LUCI_TITLE:=LuCI support for Fileassistant
LUCI_PKGARCH:=all LUCI_PKGARCH:=all
PKG_VERSION:=1.0-4
PKG_RELEASE:=
include $(TOPDIR)/feeds/luci/luci.mk include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature # call BuildPackage - OpenWrt buildroot signature

View File

@ -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) { function openpath(filename, dirname) {
dirname = dirname || currentPath; dirname = dirname || currentPath;
window.open('/cgi-bin/luci/admin/nas/fileassistant/open?path=' 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) { else if (targetElem.className.indexOf('cbi-button-edit') > -1) {
renamePath(targetElem.parentNode.parentNode.dataset['filename']); 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)) { else if (targetElem = getFileElem(targetElem)) {
if (targetElem.className.indexOf('parent-icon') > -1) { if (targetElem.className.indexOf('parent-icon') > -1) {
update_list(currentPath.replace(/\/[^/]+($|\/$)/, '')); update_list(currentPath.replace(/\/[^/]+($|\/$)/, ''));
@ -197,14 +156,7 @@ String.prototype.replaceAll = function(search, replacement) {
} }
} }
function refresh_list(filenames, path) { function refresh_list(filenames, path) {
var listHtml = '<table class="cbi-section-table"><thead><tr class="cbi-section-table-row cbi-rowstyle-2">' var listHtml = '<table class="cbi-section-table"><tbody>';
+'<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>';
if (path !== '/') { if (path !== '/') {
listHtml += '<tr class="cbi-section-table-row cbi-rowstyle-2"><td class="parent-icon" colspan="6"><strong>..</strong></td></tr>'; 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-value-field cbi-value-perm">'+o.perms+'</td>'
+ '<td class="cbi-section-table-cell">\ + '<td class="cbi-section-table-cell">\
<button class="cbi-button cbi-button-edit">重命名</button>\ <button class="cbi-button cbi-button-edit">重命名</button>\
<button class="cbi-button cbi-button-remove">删除</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>'
+ install_btn + install_btn
+ '</td>' + '</td>'
+ '</tr>'; + '</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) { document.addEventListener('DOMContentLoaded', function(evt) {
var initPath = '/'; var initPath = '/';
if (/path=([/\w]+)/.test(location.search)) { if (/path=([/\w]+)/.test(location.search)) {

View File

@ -1,40 +1,34 @@
module("luci.controller.fileassistant", package.seeall) module("luci.controller.fileassistant", package.seeall)
function index() function index()
entry({"admin", "system"}, firstchild(), _("FileAssistant") , 45).dependent = false
entry({"admin", "nas"}, firstchild(), "NAS", 44).dependent = false entry({"admin", "system"}, firstchild(), "FileAssistant", 44).dependent = false
local page local page
page = entry({"admin", "nas", "fileassistant"}, template("fileassistant"), _("文件助手"), 1) page = entry({"admin", "system", "fileassistant"}, template("fileassistant"), _("文件助手"), 1)
page.i18n = "base" page.i18n = "base"
page.dependent = true page.dependent = true
page.acl_depends = { "luci-app-fileassistant" }
page = entry({"admin", "nas", "fileassistant", "list"}, call("fileassistant_list"), nil) page = entry({"admin", "system", "fileassistant", "list"}, call("fileassistant_list"), nil)
page.leaf = true page.leaf = true
page = entry({"admin", "nas", "fileassistant", "open"}, call("fileassistant_open"), nil) page = entry({"admin", "system", "fileassistant", "open"}, call("fileassistant_open"), nil)
page.leaf = true page.leaf = true
page = entry({"admin", "nas", "fileassistant", "delete"}, call("fileassistant_delete"), nil) page = entry({"admin", "system", "fileassistant", "delete"}, call("fileassistant_delete"), nil)
page.leaf = true page.leaf = true
page = entry({"admin", "nas", "fileassistant", "rename"}, call("fileassistant_rename"), nil) page = entry({"admin", "system", "fileassistant", "rename"}, call("fileassistant_rename"), nil)
page.leaf = true page.leaf = true
page = entry({"admin", "nas", "fileassistant", "upload"}, call("fileassistant_upload"), nil) page = entry({"admin", "system", "fileassistant", "upload"}, call("fileassistant_upload"), nil)
page.leaf = true page.leaf = true
page = entry({"admin", "nas", "fileassistant", "install"}, call("fileassistant_install"), nil) page = entry({"admin", "system", "fileassistant", "install"}, call("fileassistant_install"), nil)
page.leaf = true 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 end
function list_response(path, success) function list_response(path, success)
@ -141,27 +135,6 @@ function fileassistant_upload()
list_response(uploaddir, true) list_response(uploaddir, true)
end 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)
end
function scandir(directory) function scandir(directory)
local i, t, popen = 0, {}, io.popen local i, t, popen = 0, {}, io.popen

View File

@ -1,13 +1,12 @@
<%+header%> <%+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> <h2 name="content">文件助手</h2>
<fieldset class="cbi-section fb-container"> <fieldset class="cbi-section fb-container">
<input id="current-path" type="text" class="current-path cbi-input-text" value="/"/> <input id="current-path" type="text" class="current-path cbi-input-text" value="/"/>
<div class="panel-container"> <div class="panel-container">
<div class="panel-title">文件列表</div> <div class="panel-title">文件列表</div>
<button id="upload-toggle" class="upload-toggle cbi-button cbi-button-edit">上传</button> <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">新建文件夹&hellip; </button>
</div> </div>
<div class="upload-container" id="upload-container"> <div class="upload-container" id="upload-container">
<input id="upload-file" name="upload-file" class="upload-file" type="file"> <input id="upload-file" name="upload-file" class="upload-file" type="file">
@ -16,6 +15,6 @@
<div id="list-content"></div> <div id="list-content"></div>
</fieldset> </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%> <%+footer%>

View File

@ -0,0 +1,11 @@
{
"luci-app-fileassistant": {
"description": "Grant UCI access for luci-app-fileassistant",
"read": {
"uci": [ "fileassistant" ]
},
"write": {
"uci": [ "fileassistant" ]
}
}
}

View File

@ -1,80 +0,0 @@
# SPDX-License-Identifier: GPL-3.0-only
#
# Copyright (C) 2021 ImmortalWrt.org
include $(TOPDIR)/rules.mk
PKG_NAME:=mosdns
PKG_VERSION:=35745ff
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/IrineSistiana/mosdns/tar.gz/$(PKG_VERSION)?
PKG_HASH:=skip
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILE:=LICENSE
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
PKG_CONFIG_DEPENDS:= \
CONFIG_MOSDNS_COMPRESS_GOPROXY \
CONFIG_MOSDNS_COMPRESS_UPX
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
GO_PKG:=github.com/IrineSistiana/mosdns
GO_PKG_LDFLAGS:=-s -w
GO_PKG_LDFLAGS_X:=main.version=$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
define Package/mosdns/Default
SECTION:=net
CATEGORY:=Network
SUBMENU:=IP Addresses and Names
TITLE:=A plug-in DNS forwarder/splitter
URL:=https://github.com/IrineSistiana/mosdns
endef
define Package/mosdns
$(call Package/mosdns/Default)
DEPENDS:=$(GO_ARCH_DEPENDS)
endef
define Package/mosdns/config
config MOSDNS_COMPRESS_GOPROXY
bool "Compiling with GOPROXY proxy"
default n
config MOSDNS_COMPRESS_UPX
bool "Compress executable files with UPX"
default y
endef
ifeq ($(CONFIG_MOSDNS_COMPRESS_GOPROXY),y)
export GO111MODULE=on
export GOPROXY=https://mirrors.aliyun.com/goproxy/
endif
define Build/Prepare
$(call Build/Prepare/Default)
endef
GO_PKG_TARGET_VARS:=$(filter-out CGO_ENABLED=%,$(GO_PKG_TARGET_VARS)) CGO_ENABLED=0
define Build/Compile
$(call GoPackage/Build/Compile)
ifneq ($(CONFIG_MOSDNS_COMPRESS_UPX),)
$(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/mosdns
endif
endef
define Package/mosdns/install
$(call GoPackage/Package/Install/Bin,$(1))
endef
$(eval $(call GoBinPackage,mosdns))
$(eval $(call BuildPackage,mosdns))