MCPcopy Create free account
hub / github.com/error311/FileRise / submitFiles

Function submitFiles

public/js/upload.js:1477–1765  ·  view source on GitHub ↗
(allFiles)

Source from the content-addressed store, hash-verified

1475 XHR-based submitFiles (fallback when Resumable is unavailable)
1476------------------------------------------------------ */
1477function submitFiles(allFiles) {
1478 const folderToUse = (() => {
1479 const f = window.currentFolder || "root";
1480 try { return decodeURIComponent(f); } catch (e) { return f; }
1481 })();
1482
1483 const progressContainer = document.getElementById("uploadProgressContainer");
1484 const fileInput = document.getElementById("file");
1485 if (!progressContainer) {
1486 console.warn("submitFiles called but #uploadProgressContainer not found");
1487 return;
1488 }
1489
1490 // --- Ensure there are progress list items for these files ---
1491 let listItems = progressContainer.querySelectorAll("li.upload-progress-item");
1492
1493 if (!listItems.length) {
1494 // Guarantee each file has a stable uploadIndex
1495 allFiles.forEach((file, index) => {
1496 if (file.uploadIndex === undefined || file.uploadIndex === null) {
1497 file.uploadIndex = index;
1498 }
1499 });
1500
1501 // Build the UI rows for these files
1502 // This will also set window.selectedFiles and fileInfoContainer, etc.
1503 processFiles(allFiles);
1504
1505 // Re-query now that processFiles has populated the DOM
1506 listItems = progressContainer.querySelectorAll("li.upload-progress-item");
1507 }
1508
1509 const progressElements = {};
1510 listItems.forEach(item => {
1511 progressElements[item.dataset.uploadIndex] = item;
1512 });
1513
1514 let finishedCount = 0;
1515 let allSucceeded = true;
1516 const uploadResults = new Array(allFiles.length).fill(false);
1517
1518 allFiles.forEach(file => {
1519 const formData = new FormData();
1520 const uploadFile = file.file || file;
1521 if (!(uploadFile instanceof Blob)) {
1522 const li = progressElements[file.uploadIndex];
1523 if (li && li.progressBar) {
1524 li.progressBar.innerText = "Error";
1525 }
1526 try {
1527 showToast(t('upload_read_error'), 6000, 'error');
1528 } catch (e) {}
1529 uploadResults[file.uploadIndex] = false;
1530 allSucceeded = false;
1531 finishedCount++;
1532 return;
1533 }
1534 const uploadName = uploadFile.name || file.name || file.fileName || "upload.bin";

Callers 1

initUploadFunction · 0.85

Calls 7

processFilesFunction · 0.85
tFunction · 0.85
getActiveUploadSourceIdFunction · 0.85
updateFileInfoCountFunction · 0.85
refreshFileListFunction · 0.85
openMethod · 0.80
showToastFunction · 0.70

Tested by

no test coverage detected