From: Sergey Ponomarev Date: Tue, 9 Apr 2024 07:37:05 +0000 (+0300) Subject: luci-app-filebrowser: File Browser X-Git-Url: http://git.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=6afea76f4e5eabc6f0c73729afa3bd3df745e415 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 --- diff --git a/applications/luci-app-filebrowser/Makefile b/applications/luci-app-filebrowser/Makefile new file mode 100644 index 0000000000..28b38021d5 --- /dev/null +++ b/applications/luci-app-filebrowser/Makefile @@ -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 + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-filebrowser/htdocs/luci-static/resources/view/system/filebrowser.js b/applications/luci-app-filebrowser/htdocs/luci-static/resources/view/system/filebrowser.js new file mode 100644 index 0000000000..33fe2614e8 --- /dev/null +++ b/applications/luci-app-filebrowser/htdocs/luci-static/resources/view/system/filebrowser.js @@ -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 +}) diff --git a/applications/luci-app-filebrowser/po/templates/filebrowser.pot b/applications/luci-app-filebrowser/po/templates/filebrowser.pot new file mode 100644 index 0000000000..9970b2c8ff --- /dev/null +++ b/applications/luci-app-filebrowser/po/templates/filebrowser.pot @@ -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 "" diff --git a/applications/luci-app-filebrowser/root/usr/share/luci/menu.d/luci-app-filebrowser.json b/applications/luci-app-filebrowser/root/usr/share/luci/menu.d/luci-app-filebrowser.json new file mode 100644 index 0000000000..506706957c --- /dev/null +++ b/applications/luci-app-filebrowser/root/usr/share/luci/menu.d/luci-app-filebrowser.json @@ -0,0 +1,13 @@ +{ + "admin/system/filebrowser": { + "title": "File Browser", + "order": 80, + "action": { + "type": "view", + "path": "system/filebrowser" + }, + "depends": { + "acl": [ "luci-app-filebrowser" ] + } + } +} diff --git a/applications/luci-app-filebrowser/root/usr/share/rpcd/acl.d/luci-app-filebrowser.json b/applications/luci-app-filebrowser/root/usr/share/rpcd/acl.d/luci-app-filebrowser.json new file mode 100644 index 0000000000..858a8dd70d --- /dev/null +++ b/applications/luci-app-filebrowser/root/usr/share/rpcd/acl.d/luci-app-filebrowser.json @@ -0,0 +1,14 @@ +{ + "luci-app-filebrowser": { + "description": "Grant access to File Browser", + "write": { + "cgi-io": [ "upload", "download" ], + "ubus": { + "file": [ "*" ] + }, + "file": { + "/*": [ "list", "read", "write" ] + } + } + } +}