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>
--- /dev/null
+# 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
--- /dev/null
+'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
+})
--- /dev/null
+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 ""
--- /dev/null
+{
+ "admin/system/filebrowser": {
+ "title": "File Browser",
+ "order": 80,
+ "action": {
+ "type": "view",
+ "path": "system/filebrowser"
+ },
+ "depends": {
+ "acl": [ "luci-app-filebrowser" ]
+ }
+ }
+}
--- /dev/null
+{
+ "luci-app-filebrowser": {
+ "description": "Grant access to File Browser",
+ "write": {
+ "cgi-io": [ "upload", "download" ],
+ "ubus": {
+ "file": [ "*" ]
+ },
+ "file": {
+ "/*": [ "list", "read", "write" ]
+ }
+ }
+ }
+}