fix upload multi
This commit is contained in:
@@ -188,17 +188,22 @@ export class UploadManager {
|
||||
try {
|
||||
updateProgress();
|
||||
|
||||
let uploadFormData = formData;
|
||||
if (this.overwriteAll) {
|
||||
uploadFormData = new FormData(this.uploadForm);
|
||||
if (this.roomManager.currentPath) {
|
||||
uploadFormData.append('path', this.roomManager.currentPath);
|
||||
}
|
||||
uploadFormData.set('file', file);
|
||||
uploadFormData.append('overwrite', 'true');
|
||||
// If skipAll is true, skip this file
|
||||
if (this.skipAll) {
|
||||
console.log('[UploadManager] Skipping file due to skipAll:', file.name);
|
||||
currentFileIndex++;
|
||||
updateProgress();
|
||||
await processNextFile();
|
||||
return;
|
||||
}
|
||||
|
||||
const response = await this.uploadFile(uploadFormData);
|
||||
// If overwriteAll is true, add overwrite flag
|
||||
if (this.overwriteAll) {
|
||||
console.log('[UploadManager] Overwriting file due to overwriteAll:', file.name);
|
||||
formData.append('overwrite', 'true');
|
||||
}
|
||||
|
||||
const response = await this.uploadFile(formData);
|
||||
|
||||
if (response.success) {
|
||||
completedFiles++;
|
||||
@@ -211,11 +216,28 @@ export class UploadManager {
|
||||
updateProgress();
|
||||
await processNextFile();
|
||||
} else if (response.error === 'File exists') {
|
||||
const result = await this.handleFileExists(file, uploadFormData);
|
||||
if (result.continue) {
|
||||
// If we have skipAll or overwriteAll set, handle it here
|
||||
if (this.skipAll) {
|
||||
console.log('[UploadManager] Skipping existing file due to skipAll:', file.name);
|
||||
currentFileIndex++;
|
||||
updateProgress();
|
||||
await processNextFile();
|
||||
} else if (this.overwriteAll) {
|
||||
console.log('[UploadManager] Overwriting existing file due to overwriteAll:', file.name);
|
||||
formData.append('overwrite', 'true');
|
||||
await this.uploadFile(formData);
|
||||
completedFiles++;
|
||||
currentFileIndex++;
|
||||
updateProgress();
|
||||
await processNextFile();
|
||||
} else {
|
||||
const result = await this.handleFileExists(file, formData);
|
||||
if (result.continue) {
|
||||
completedFiles++;
|
||||
currentFileIndex++;
|
||||
updateProgress();
|
||||
await processNextFile();
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
@@ -245,6 +267,15 @@ export class UploadManager {
|
||||
});
|
||||
|
||||
const result = await response.json();
|
||||
|
||||
// Handle 409 Conflict response
|
||||
if (response.status === 409) {
|
||||
return {
|
||||
success: false,
|
||||
error: 'File exists'
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
success: response.ok,
|
||||
error: result.error
|
||||
@@ -294,7 +325,7 @@ export class UploadManager {
|
||||
if (this.overwriteAll) {
|
||||
formData.append('overwrite', 'true');
|
||||
const response = await this.uploadFile(formData);
|
||||
return { continue: response.success };
|
||||
return { continue: true };
|
||||
}
|
||||
|
||||
if (this.skipAll) {
|
||||
@@ -303,20 +334,30 @@ export class UploadManager {
|
||||
|
||||
const result = await this.roomManager.modalManager.showOverwriteModal(file.name);
|
||||
|
||||
// Add a delay before processing the result
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
|
||||
if (result === 'overwrite' || result === 'overwrite_all') {
|
||||
if (result === 'overwrite_all') {
|
||||
this.overwriteAll = true;
|
||||
this.skipAll = false;
|
||||
formData.append('overwrite', 'true');
|
||||
await this.uploadFile(formData);
|
||||
return { continue: true };
|
||||
} else {
|
||||
formData.append('overwrite', 'true');
|
||||
await this.uploadFile(formData);
|
||||
return { continue: true };
|
||||
}
|
||||
formData.append('overwrite', 'true');
|
||||
const response = await this.uploadFile(formData);
|
||||
return { continue: response.success };
|
||||
} else if (result === 'skip' || result === 'skip_all') {
|
||||
if (result === 'skip_all') {
|
||||
this.skipAll = true;
|
||||
this.overwriteAll = false;
|
||||
}
|
||||
return { continue: true };
|
||||
}
|
||||
|
||||
return { continue: false };
|
||||
// If user closes the modal without making a choice, skip the file
|
||||
return { continue: true };
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user