luci-app-filebrowser: File Browser

Add a File Browser based on the FileUpload CBI element.
It allows browsing files and directories on a router, delete and upload.
This covers only basic needs.

Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
This commit is contained in:
Sergey Ponomarev 2024-04-09 10:37:05 +03:00
parent 4b771b3df0
commit 6afea76f4e
5 changed files with 87 additions and 0 deletions

View File

@ -0,0 +1,15 @@
# This is free software, licensed under the Apache License, Version 2.0 .
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI File Browser module
LUCI_DEPENDS:=+luci-base
PKG_LICENSE:=Apache-2.0
PKG_VERSION:=1.1.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Sergey Ponomarev <stokito@gmail.com>
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature

View File

@ -0,0 +1,34 @@
'use strict';
'require view';
'require ui';
'require form';
var formData = {
files: {
root: null,
}
};
return view.extend({
render: function() {
var m, s, o;
m = new form.JSONMap(formData, _('File Browser'), '');
s = m.section(form.NamedSection, 'files', 'files');
o = s.option(form.FileUpload, 'root', '');
o.root_directory = '/';
o.browser = true;
o.show_hidden = true;
o.enable_upload = true;
o.enable_remove = true;
o.enable_download = true;
return m.render();
},
handleSave: null,
handleSaveApply: null,
handleReset: null
})

View File

@ -0,0 +1,11 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: applications/luci-app-filebrowser/htdocs/luci-static/resources/view/system/filebrowser.js:16
#: applications/luci-app-filebrowser/root/usr/share/luci/menu.d/luci-app-filebrowser.json:3
msgid "File Browser"
msgstr ""
#: applications/luci-app-filebrowser/root/usr/share/rpcd/acl.d/luci-app-filebrowser.json:3
msgid "Grant access to File Browser"
msgstr ""

View File

@ -0,0 +1,13 @@
{
"admin/system/filebrowser": {
"title": "File Browser",
"order": 80,
"action": {
"type": "view",
"path": "system/filebrowser"
},
"depends": {
"acl": [ "luci-app-filebrowser" ]
}
}
}

View File

@ -0,0 +1,14 @@
{
"luci-app-filebrowser": {
"description": "Grant access to File Browser",
"write": {
"cgi-io": [ "upload", "download" ],
"ubus": {
"file": [ "*" ]
},
"file": {
"/*": [ "list", "read", "write" ]
}
}
}
}