update 2026-10-07 18:47:42

This commit is contained in:
action committed 2026-10-07 18:47:42 +08:00
1 parent 617f7ca2a6
commit bd061545ed
4832 files changed
+1693456

No files matched your search

+11
View File
@@ -0,0 +1,11 @@
# SPDX-License-Identifier: Apache-2.0
#
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI app for FileBrowser Quantum
LUCI_DEPENDS:=+filebrowser-q
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature
@@ -0,0 +1,85 @@
'use strict';
'require form';
'require poll';
'require rpc';
'require uci';
'require view';
'require fs';
const callServiceList = rpc.declare({
object: 'service',
method: 'list',
params: ['name'],
expect: { '': {} }
});
function getServiceStatus() {
return L.resolveDefault(callServiceList('filebrowser-q'), {}).then(function(res) {
let isRunning = false;
try {
isRunning = res['filebrowser-q']['instances']['instance1']['running'];
} catch (e) { }
return isRunning;
});
}
function renderStatus(isRunning, port) {
let spanTemp = '<span style="color:%s"><strong>%s %s</strong></span>';
let renderHTML;
if (isRunning) {
let button = String.format('&#160;<a class="btn cbi-button" href="http://%s:%s" target="_blank" rel="noreferrer noopener">%s</a>',
window.location.hostname, port, _('Open Web Interface'));
renderHTML = spanTemp.format('green', _('FileBrowser'), _('RUNNING')) + button;
} else {
renderHTML = spanTemp.format('red', _('FileBrowser'), _('NOT RUNNING'));
}
return renderHTML;
}
return view.extend({
load() {
return uci.load('filebrowser-q');
},
render(data) {
let m, s, o;
let webport = (uci.get(data, 'config', 'listen_port') || '8787');
m = new form.Map('filebrowser-q', _('FileBrowser Quantum'),
_('The best free self-hosted web-based file manager.') + '<br />'+
_('Default login username is %s and password is %s.').format('<code>admin</code>', '<code>admin</code>'));
s = m.section(form.TypedSection);
s.anonymous = true;
s.render = function() {
poll.add(function() {
return L.resolveDefault(getServiceStatus()).then(function(res) {
let view = document.getElementById('service_status');
view.innerHTML = renderStatus(res, webport);
});
});
return E('div', { class: 'cbi-section', id: 'status_bar' }, [
E('p', { id: 'service_status' }, _('Collecting data...'))
]);
}
s = m.section(form.NamedSection, 'config', 'filebrowser');
o = s.option(form.Flag, 'enabled', _('Enable'));
o.default = o.disabled;
o.rmempty = false;
o = s.option(form.Value, 'listen_port', _('Listen port'));
o.datatype = 'port';
o.default = '8787';
o.rmempty = false;
o = s.option(form.Value, 'root_path', _('Root directory'));
o.default = '/';
o.rmempty = false;
return m.render();
}
});
@@ -0,0 +1,33 @@
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: zh-Hans\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Collecting data..."
msgstr "正在收集数据中..."
msgid "Default login username is %s and password is %s."
msgstr "默认登录用户名为 %s,密码为 %s。"
msgid "Enable"
msgstr "启用"
msgid "Listen port"
msgstr "监听端口"
msgid "NOT RUNNING"
msgstr "未运行"
msgid "Open Web Interface"
msgstr "打开 Web 界面"
msgid "RUNNING"
msgstr "运行中"
msgid "Root directory"
msgstr "根目录"
@@ -0,0 +1,14 @@
{
"admin/services/filebrowser-q": {
"title": "FileBrowser Quantum",
"action": {
"order": 30,
"type": "view",
"path": "filebrowser-q"
},
"depends": {
"acl": [ "luci-app-filebrowser-q" ],
"uci": { "filebrowser-q": true }
}
}
}
@@ -0,0 +1,14 @@
{
"luci-app-filebrowser-q": {
"description": "Grant UCI access for luci-app-filebrowser-q",
"read": {
"ubus": {
"service": [ "list" ]
},
"uci": [ "filebrowser-q" ]
},
"write": {
"uci": [ "filebrowser-q" ]
}
}
}
@@ -0,0 +1,4 @@
{
"config": "filebrowser-q",
"init": "filebrowser-q"
}