From b443334c06864d0b3ce15962b4a557c5e9059416 Mon Sep 17 00:00:00 2001 From: luciajanikova <19lucia99@gmail.com> Date: Fri, 31 Jan 2025 11:56:30 +0100 Subject: [PATCH] Enable choosing FS input XML files multiple times --- app/javascript/controllers/dropzone_controller.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/javascript/controllers/dropzone_controller.js b/app/javascript/controllers/dropzone_controller.js index 86408d9c..c7168b2e 100644 --- a/app/javascript/controllers/dropzone_controller.js +++ b/app/javascript/controllers/dropzone_controller.js @@ -7,6 +7,8 @@ export default class extends Controller { const fileList = document.getElementById('fileList'); const fileCount = document.getElementById('fileCount'); + this.allFiles = new DataTransfer(); + dropzone.addEventListener('dragover', (e) => { e.preventDefault(); dropzone.classList.add('border-blue-500', 'border-2'); @@ -32,9 +34,10 @@ export default class extends Controller { handleFiles(files) { const fileInput = document.getElementById('content[]'); - fileInput.files = files; for (const file of files) { + this.allFiles.items.add(file); + const listItem = document.createElement('div'); listItem.textContent = `${file.name} (${this.formatBytes(file.size)})`; fileList.appendChild(listItem); @@ -42,6 +45,8 @@ export default class extends Controller { fileCount.parentElement.classList.remove('hidden'); fileCount.textContent = `${parseInt(fileCount.textContent) + files.length}`; + + fileInput.files = this.allFiles.files; } formatBytes(bytes) {