mirror of
https://github.com/openwrt/luci.git
synced 2026-04-15 10:51:51 +00:00
luci-app-filemanager: Full featured File Manager application for LuCI
- Navigation in resizable window - Scrollable and sortable list of files with name, type, creation date/time columns - Directory and files creation/renaming/removing - Directory and files attributes changing - Duplicating any object in the current directory - Selecting objects individually and everything for removing selected - Inverting selection with alt-click - Large files uploading/downloading - Drag'n'Drop multiple files from local directory to server - Large files editing - Line numbers toggle in editing window - HEX mode for editing/viewing - ASCII, HEX and RegExp search in HEX mode - Storage of interface settings in config file - Help tab with a short manual Signed-off-by: Dmitry R <rdmitry0911@gmail.com> Added timeout to info type addNotification so UI does not flood synced i18n Signed-off-by: Paul Donald <newtwen+github@gmail.com>
This commit is contained in:
13
applications/luci-app-filemanager/Makefile
Normal file
13
applications/luci-app-filemanager/Makefile
Normal file
@@ -0,0 +1,13 @@
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=LuCI File Manager module
|
||||
LUCI_DEPENDS:=+luci-base
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_MAINTAINER:=Dmitry R <rdmitry0911@gmail.com>
|
||||
|
||||
include ../../luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,138 @@
|
||||
|
||||
/**
|
||||
* Parses a limited subset of Markdown and converts it to HTML.
|
||||
*
|
||||
* Supported Markdown elements:
|
||||
* - Headings (#, ##, ###)
|
||||
* - Bold text (**text** or __text__)
|
||||
* - Unordered lists (- or *)
|
||||
* - Ordered lists (1., 2., etc.)
|
||||
* - Paragraphs
|
||||
*
|
||||
* @param {string} markdown - The Markdown-formatted string.
|
||||
* @returns {string} - The resulting HTML string.
|
||||
*/
|
||||
function parseMarkdown(markdown) {
|
||||
// Split the input into lines
|
||||
const lines = markdown.split('\n');
|
||||
const html = [];
|
||||
let inList = false;
|
||||
let listType = ''; // 'ul' or 'ol'
|
||||
|
||||
lines.forEach((line) => {
|
||||
let trimmedLine = line.trim();
|
||||
|
||||
if (trimmedLine === '') {
|
||||
// Empty line signifies a new paragraph
|
||||
if (inList) {
|
||||
html.push(`</${listType}>`);
|
||||
inList = false;
|
||||
listType = '';
|
||||
}
|
||||
return; // Skip adding empty lines to HTML
|
||||
}
|
||||
|
||||
// Check for headings
|
||||
if (/^###\s+(.*)/.test(trimmedLine)) {
|
||||
const content = trimmedLine.replace(/^###\s+/, '');
|
||||
html.push(`<h3>${escapeHtml(content)}</h3>`);
|
||||
return;
|
||||
} else if (/^##\s+(.*)/.test(trimmedLine)) {
|
||||
const content = trimmedLine.replace(/^##\s+/, '');
|
||||
html.push(`<h2>${escapeHtml(content)}</h2>`);
|
||||
return;
|
||||
} else if (/^#\s+(.*)/.test(trimmedLine)) {
|
||||
const content = trimmedLine.replace(/^#\s+/, '');
|
||||
html.push(`<h1>${escapeHtml(content)}</h1>`);
|
||||
return;
|
||||
}
|
||||
|
||||
// Check for ordered lists
|
||||
let orderedMatch = trimmedLine.match(/^(\d+)\.\s+(.*)/);
|
||||
if (orderedMatch) {
|
||||
const [, number, content] = orderedMatch;
|
||||
if (!inList || listType !== 'ol') {
|
||||
if (inList) {
|
||||
html.push(`</${listType}>`);
|
||||
}
|
||||
html.push('<ol>');
|
||||
inList = true;
|
||||
listType = 'ol';
|
||||
}
|
||||
html.push(`<li>${parseInlineMarkdown(escapeHtml(content))}</li>`);
|
||||
return;
|
||||
}
|
||||
|
||||
// Check for unordered lists
|
||||
let unorderedMatch = trimmedLine.match(/^[-*]\s+(.*)/);
|
||||
if (unorderedMatch) {
|
||||
const content = unorderedMatch[1];
|
||||
if (!inList || listType !== 'ul') {
|
||||
if (inList) {
|
||||
html.push(`</${listType}>`);
|
||||
}
|
||||
html.push('<ul>');
|
||||
inList = true;
|
||||
listType = 'ul';
|
||||
}
|
||||
html.push(`<li>${parseInlineMarkdown(escapeHtml(content))}</li>`);
|
||||
return;
|
||||
}
|
||||
|
||||
// If currently inside a list but the line doesn't match a list item, close the list
|
||||
if (inList) {
|
||||
html.push(`</${listType}>`);
|
||||
inList = false;
|
||||
listType = '';
|
||||
}
|
||||
|
||||
// Regular paragraph
|
||||
html.push(`<p>${parseInlineMarkdown(escapeHtml(trimmedLine))}</p>`);
|
||||
});
|
||||
|
||||
// Close any open list tags at the end
|
||||
if (inList) {
|
||||
html.push(`</${listType}>`);
|
||||
}
|
||||
|
||||
return html.join('\n');
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses inline Markdown elements like bold text.
|
||||
*
|
||||
* Supported inline elements:
|
||||
* - Bold text (**text** or __text__)
|
||||
*
|
||||
* @param {string} text - The text to parse.
|
||||
* @returns {string} - The text with inline Markdown converted to HTML.
|
||||
*/
|
||||
function parseInlineMarkdown(text) {
|
||||
// Convert **text** and __text__ to <strong>text</strong>
|
||||
return text
|
||||
.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>')
|
||||
.replace(/__(.+?)__/g, '<strong>$1</strong>');
|
||||
}
|
||||
|
||||
/**
|
||||
* Escapes HTML special characters to prevent XSS attacks.
|
||||
*
|
||||
* @param {string} text - The text to escape.
|
||||
* @returns {string} - The escaped text.
|
||||
*/
|
||||
function escapeHtml(text) {
|
||||
const map = {
|
||||
'&': '&',
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
'"': '"',
|
||||
"'": ''',
|
||||
};
|
||||
return text.replace(/[&<>"']/g, function(m) {
|
||||
return map[m];
|
||||
});
|
||||
}
|
||||
|
||||
return L.Class.extend({
|
||||
parseMarkdown: parseMarkdown,
|
||||
});
|
||||
@@ -0,0 +1,128 @@
|
||||
return L.Class.extend({
|
||||
// Define the Help content in Markdown format
|
||||
helpContentMarkdown: `
|
||||
# LuCI OpenWrt File Manager Application Help
|
||||
|
||||
## Introduction
|
||||
The **LuCI OpenWrt File Manager** is a tool to navigate directories, manage files, edit content, and customize the application's settings.
|
||||
|
||||
## Key Features
|
||||
|
||||
1. **Tabbed Interface**
|
||||
- **File Manager Tab**: Primary interface for browsing and managing files and directories.
|
||||
- **Editor Tab**: Advanced tool for editing file contents in both text and hexadecimal formats.
|
||||
- **Settings Tab**: Customize the application's appearance and behavior according to your preferences.
|
||||
- **Help Tab**: Access detailed instructions and information about the application's features and functionalities.
|
||||
|
||||
2. **File Management**
|
||||
- **View Files and Directories**: Display a list of files and folders within the current directory.
|
||||
- **Navigate Directories**: Move into subdirectories or return to parent directories.
|
||||
- **Resizable Columns**: Adjust the width of table columns to enhance readability and organization.
|
||||
- **Drag-and-Drop Uploads**: Upload files by simply dragging them into the designated area.
|
||||
- **Upload via File Selector**: Use the "Upload File" button to select and upload files from your local machine.
|
||||
- **Create New Files and Folders**:
|
||||
- **Create Folder**: Instantiate new directories within the current path.
|
||||
- **Create File**: Generate new empty files for content creation or editing.
|
||||
- **File Actions**:
|
||||
- **Edit**: Modify the contents of files directly within the application.
|
||||
- **Duplicate**: Create copies of existing files or directories.
|
||||
- **Delete**: Remove selected files or directories permanently.
|
||||
- **Download**: Save copies of files to your local machine for offline access.
|
||||
|
||||
3. **Selection and Bulk Actions**
|
||||
- **Select All**: Quickly select or deselect all files and directories within the current view using the "Select All" checkbox.
|
||||
- **Invert Selection**: Reverse the current selection of files and directories, selecting previously unselected items and vice versa.
|
||||
- **Individual Selection**: Select or deselect individual files and directories using the checkboxes next to each item.
|
||||
- **Bulk Delete**: Remove multiple selected items simultaneously for efficient management.
|
||||
|
||||
4. **Advanced Editing**
|
||||
- **Text Editor**:
|
||||
- **Line Numbers**: Toggle the display of line numbers to assist in content navigation.
|
||||
- **Save Changes**: Commit edits directly to the server.
|
||||
- **Hex Editor**:
|
||||
- **Binary Editing**: Modify file contents at the byte level for advanced users.
|
||||
- **ASCII, HEX and RegExp search**: Search for a pattern in the file and navigate to it.
|
||||
- **Switch Between Modes**: Seamlessly toggle between text and hex editing modes.
|
||||
- **Save Changes**: Apply and save binary modifications.
|
||||
|
||||
5. **User Notifications and Status Indicators**
|
||||
- **Progress Bars**: Visual indicators for ongoing operations like file uploads and deletions.
|
||||
- **Notifications**: Informational messages alert users about the success or failure of actions performed.
|
||||
|
||||
6. **Customizable Settings**
|
||||
- **Interface Customization**:
|
||||
- **Column Widths**: Define the width of each column in the file list for optimal viewing.
|
||||
- **Window Sizes**: Adjust the size of the file list container and editor windows.
|
||||
- **Padding**: Set padding values to control the spacing within the interface.
|
||||
- **Persistent Configuration**: Save your settings to ensure a consistent user experience across sessions.
|
||||
|
||||
## How to Use the Application
|
||||
|
||||
1. **Accessing the Application**
|
||||
- Navigate to your OpenWrt device's LuCI web interface.
|
||||
- Locate and select the **File Manager** application from **System** menu .
|
||||
|
||||
2. **Navigating the Interface**
|
||||
- **Tabs**: Use the top navigation tabs to switch between **File Manager**, **Editor**, **Settings**, and **Help**.
|
||||
- **File Manager Tab**:
|
||||
- Browse through directories by clicking on folder names.
|
||||
- Use the "Go" button or press "Enter" after typing a path in the path input field to navigate to specific directories.
|
||||
- **Editor Tab**:
|
||||
- Select a file from the File Manager to open it in the Editor.
|
||||
- Choose between text or hex editing modes using the toggle buttons.
|
||||
- **Settings Tab**:
|
||||
- Adjust interface settings such as column widths, window sizes, and padding.
|
||||
- Save your configurations to apply changes immediately.
|
||||
- **Help Tab**:
|
||||
- Access detailed instructions and information about the application's features and functionalities.
|
||||
|
||||
3. **Managing Files and Directories**
|
||||
- **Uploading Files**:
|
||||
- **Drag and Drop**: Drag files from your local machine and drop them into the **File List Container** to upload.
|
||||
- **File Selector**: Click the "Upload File" button to open a file dialog and select files for uploading.
|
||||
- **Creating Files/Folders**:
|
||||
- Click on "Create File" or "Create Folder" buttons and provide the necessary names to add new items.
|
||||
- **Editing Files**:
|
||||
- Select a file and click the edit icon (✏️) to modify its contents in the Editor tab.
|
||||
- **Duplicating Files/Folders**:
|
||||
- Use the duplicate icon (📑) to create copies of selected items.
|
||||
- **Deleting Items**:
|
||||
- Select one or multiple items using checkboxes and click the delete icon (🗑️) or use the "Delete Selected" button for bulk deletions.
|
||||
- **Downloading Files**:
|
||||
- Click the download icon (⬇️) next to a file to save it to your local machine.
|
||||
|
||||
4. **Using Selection Features**
|
||||
- **Select All**:
|
||||
- Use the "Select All" checkbox located in the table header to select or deselect all files and directories in the current view.
|
||||
- **Invert Selection**:
|
||||
- Hold the "Alt" key and click the "Select All" checkbox to invert the current selection, selecting all unselected items and deselecting previously selected ones.
|
||||
- **Individual Selection**:
|
||||
- Click on the checkbox next to each file or directory to select or deselect it individually.
|
||||
|
||||
5. **Using the Editor**
|
||||
- **Text Mode**:
|
||||
- Edit the content of text files with features like line numbers and real-time updates.
|
||||
- Save your changes by clicking the "Save" button.
|
||||
- **Hex Mode**:
|
||||
- Perform binary editing on files for advanced modifications.
|
||||
- Perform ASCII, HEX and RegExp pattern search in the file.
|
||||
- Toggle between text and hex modes as needed.
|
||||
- Save changes to apply your edits.
|
||||
- **Quick Access**: Hold the "Alt" key and click on file names or links to open files directly in the hex editor.
|
||||
|
||||
|
||||
6. **Customizing Settings**
|
||||
- Navigate to the **Settings Tab** to personalize the application's layout and behavior.
|
||||
- Adjust parameters such as column widths, window sizes, and padding to suit your preferences.
|
||||
- Save settings to ensure they persist across sessions.
|
||||
|
||||
## Additional Functionalities
|
||||
|
||||
- **Resizable Columns and Windows**: Enhance the interface's flexibility by resizing table columns and editor windows to match your workflow. The Help window starts at **650x600** pixels and can be adjusted as needed.
|
||||
- **Responsive Design**: The application adapts to different screen sizes, ensuring usability across various devices.
|
||||
- **Error Handling and Notifications**: Receive immediate feedback on actions, helping you stay informed about the status of your file management tasks.
|
||||
- **Line Number Toggle**: Easily show or hide line numbers in the text editor to assist with content navigation.
|
||||
- **Bulk Operations**: Efficiently manage multiple files or directories through bulk actions like delete and duplicate.
|
||||
- **Symlink Handling**: Navigate and manage symbolic links seamlessly within the file structure.
|
||||
`
|
||||
});
|
||||
433
applications/luci-app-filemanager/po/templates/filemanager.pot
Normal file
433
applications/luci-app-filemanager/po/templates/filemanager.pot
Normal file
@@ -0,0 +1,433 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:848
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1607
|
||||
msgid "Are you sure you want to delete the selected files and directories?"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2043
|
||||
msgid "Are you sure you want to delete this %s: \"%s\"?"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2458
|
||||
msgid "Changes to %s \"%s\" uploaded successfully."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1023
|
||||
msgid "Column Max Widths (format: name:maxWidth,type:maxWidth,...):"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1012
|
||||
msgid "Column Min Widths (format: name:minWidth,type:minWidth,...):"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1001
|
||||
msgid "Column Widths (format: name:width,type:width,...):"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1494
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1445
|
||||
msgid "Create Directory:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:898
|
||||
msgid "Create File"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1502
|
||||
msgid "Create File:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:894
|
||||
msgid "Create Folder"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1061
|
||||
msgid "Current Directory:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager/HexEditor.js:1238
|
||||
msgid "Decoded Text"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:904
|
||||
msgid "Delete Selected"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2051
|
||||
msgid "Deleted %s: \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1707
|
||||
msgid "Directory"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1461
|
||||
msgid "Directory \"%s\" created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1428
|
||||
msgid "Directory Name"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2015
|
||||
msgid "Downloaded file: \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:859
|
||||
msgid "Drop files here to upload"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2406
|
||||
msgid "Editing %s: \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2784
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2788
|
||||
msgid "Editing:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:740
|
||||
msgid "Editor"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2182
|
||||
msgid "Editor textarea not found."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2300
|
||||
msgid "Failed to access symlink target: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1276
|
||||
msgid "Failed to access the specified path: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2261
|
||||
msgid "Failed to apply permissions to file \"%s\": %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1470
|
||||
msgid "Failed to create directory \"%s\": %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1527
|
||||
msgid "Failed to create file \"%s\": %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2054
|
||||
msgid "Failed to delete %s \"%s\": %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1613
|
||||
msgid "Failed to delete %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1624
|
||||
msgid "Failed to delete selected files and directories: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1636
|
||||
msgid "Failed to display the file list."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2018
|
||||
msgid "Failed to download file \"%s\": %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2167
|
||||
msgid "Failed to duplicate %s \"%s\": %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2170
|
||||
msgid "Failed to get file list: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1813
|
||||
msgid "Failed to load file list: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1977
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1979
|
||||
msgid "Failed to open file: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1225
|
||||
msgid "Failed to render Help content: Container not found."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2467
|
||||
msgid "Failed to save changes to %s \"%s\": %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2277
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2279
|
||||
msgid "Failed to save file \"%s\": %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2584
|
||||
msgid "Failed to save settings: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1190
|
||||
msgid "Failed to update file list: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1734
|
||||
msgid "File"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1518
|
||||
msgid "File \"%s\" created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1398
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1400
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2254
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2256
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2265
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2267
|
||||
msgid "File \"%s\" uploaded successfully."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:731
|
||||
#: applications/luci-app-filemanager/root/usr/share/luci/menu.d/luci-app-filemanager.json:3
|
||||
msgid "File Manager"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:697
|
||||
msgid "File Manager:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1485
|
||||
msgid "File Name"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:713
|
||||
msgid "Go"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/root/usr/share/rpcd/acl.d/luci-app-filemanager.json:3
|
||||
msgid "Grant access to File Manager"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:759
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:992
|
||||
msgid "Hex Editor Height:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:983
|
||||
msgid "Hex Editor Width:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:939
|
||||
msgid "Interface Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:830
|
||||
msgid "Last Modified"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1928
|
||||
msgid "Loading file..."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:791
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1467
|
||||
msgid "No directory selected."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:877
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1345
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1524
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1804
|
||||
msgid "No file selected."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2464
|
||||
msgid "No item selected."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager/HexEditor.js:1226
|
||||
msgid "Offset (h)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1052
|
||||
msgid "Padding Max:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1043
|
||||
msgid "Padding Min:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1034
|
||||
msgid "Padding:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1075
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1437
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2396
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2713
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2755
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2224
|
||||
msgid "Saving file: \"%s\"..."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager/HexEditor.js:428
|
||||
msgid "Search ASCII"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager/HexEditor.js:431
|
||||
msgid "Search HEX (e.g., 4F6B)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager/HexEditor.js:434
|
||||
msgid "Search RegExp (e.g., \\d{3})"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:916
|
||||
msgid "Select a file from the list to edit it here."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1617
|
||||
msgid "Selected files and directories deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:749
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2554
|
||||
msgid "Settings uploaded successfully."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:817
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:834
|
||||
msgid "Sort by Last Modified"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:795
|
||||
msgid "Sort by Name"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:821
|
||||
msgid "Sort by Size"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:808
|
||||
msgid "Sort by Type"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2045
|
||||
msgid "Successfully deleted %s: \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2162
|
||||
msgid "Successfully duplicated %s \"%s\" as \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1779
|
||||
msgid "Symlink"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2304
|
||||
msgid "Symlink:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:974
|
||||
msgid "Text Editor Height:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:965
|
||||
msgid "Text Editor Width:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1273
|
||||
msgid "The specified path does not appear to be a directory."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2297
|
||||
msgid "The symlink points to an unsupported type."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2729
|
||||
msgid "Toggle Line Numbers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2763
|
||||
msgid "Toggle to ASCII Mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2721
|
||||
msgid "Toggle to Hex Mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:804
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1786
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:890
|
||||
msgid "Upload File"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1408
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1410
|
||||
msgid "Upload failed for file \"%s\": %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:1372
|
||||
msgid "Uploading: \"%s\"..."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:956
|
||||
msgid "Window Height:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:947
|
||||
msgid "Window Width:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2031
|
||||
msgid "directory"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2033
|
||||
msgid "file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2037
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2040
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2162
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2167
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2406
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2458
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2467
|
||||
msgid "item"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-filemanager/htdocs/luci-static/resources/view/system/filemanager.js:2035
|
||||
msgid "symbolic link"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"admin/system/filemanager": {
|
||||
"title": "File Manager",
|
||||
"order": 80,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "system/filemanager"
|
||||
},
|
||||
"depends": {
|
||||
"acl": [ "luci-app-filemanager" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"luci-app-filemanager": {
|
||||
"description": "Grant access to File Manager",
|
||||
"write": {
|
||||
"cgi-io": [ "upload", "download" ],
|
||||
"ubus": {
|
||||
"file": [ "*" ]
|
||||
},
|
||||
"file": {
|
||||
"/*": [ "list", "read", "write", "exec" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user