fix: upload more than 100 files in directory (#317)

This commit is contained in:
plantatorbob 2023-12-11 13:28:11 +03:00 committed by GitHub
parent 8590f3e841
commit cd84dff87f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -126,9 +126,9 @@ function ready() {
class Uploader { class Uploader {
/** /**
* *
* @param {File} file * @param {File} file
* @param {string[]} dirs * @param {string[]} dirs
*/ */
constructor(file, dirs) { constructor(file, dirs) {
/** /**
@ -240,7 +240,7 @@ Uploader.runQueue = async () => {
/** /**
* Add breadcrumb * Add breadcrumb
* @param {string} href * @param {string} href
* @param {string} uri_prefix * @param {string} uri_prefix
*/ */
function addBreadcrumb(href, uri_prefix) { function addBreadcrumb(href, uri_prefix) {
@ -365,8 +365,8 @@ function renderPathsTableBody() {
/** /**
* Add pathitem * Add pathitem
* @param {PathItem} file * @param {PathItem} file
* @param {number} index * @param {number} index
*/ */
function addPath(file, index) { function addPath(file, index) {
const encodedName = encodedStr(file.name); const encodedName = encodedStr(file.name);
@ -583,8 +583,8 @@ async function setupEditorPage() {
/** /**
* Delete path * Delete path
* @param {number} index * @param {number} index
* @returns * @returns
*/ */
async function deletePath(index) { async function deletePath(index) {
const file = DATA.paths[index]; const file = DATA.paths[index];
@ -616,8 +616,8 @@ async function doDeletePath(name, url, cb) {
/** /**
* Move path * Move path
* @param {number} index * @param {number} index
* @returns * @returns
*/ */
async function movePath(index) { async function movePath(index) {
const file = DATA.paths[index]; const file = DATA.paths[index];
@ -694,7 +694,7 @@ async function checkAuth() {
/** /**
* Create a folder * Create a folder
* @param {string} name * @param {string} name
*/ */
async function createFolder(name) { async function createFolder(name) {
const url = newUrl(name); const url = newUrl(name);
@ -732,8 +732,16 @@ async function addFileEntries(entries, dirs) {
new Uploader(file, dirs).upload(); new Uploader(file, dirs).upload();
}); });
} else if (entry.isDirectory) { } else if (entry.isDirectory) {
const dirReader = entry.createReader() const dirReader = entry.createReader();
dirReader.readEntries(entries => addFileEntries(entries, [...dirs, entry.name]));
const successCallback = entries => {
if (entries.length > 0) {
addFileEntries(entries, [...dirs, entry.name]);
dirReader.readEntries(successCallback);
}
};
dirReader.readEntries(successCallback);
} }
} }
} }