Add drag and drop functionnality

This commit is contained in:
Booteille 2024-12-27 10:51:51 +01:00
parent 4cb4241440
commit 240c6aa19b
No known key found for this signature in database
GPG Key ID: 0AB6C6CA01272646
1 changed files with 18 additions and 2 deletions

View File

@ -395,10 +395,10 @@ document.addEventListener("DOMContentLoaded", () => {
let providedFiles = []; let providedFiles = [];
let totalSize = 0; let totalSize = 0;
fileInput.onchange = () => { const handleFilesPick = (files) => {
const providedFilesDOM = document.getElementById("provided-files"); const providedFilesDOM = document.getElementById("provided-files");
Array.from(fileInput.files).forEach((file) => { Array.from(files).forEach((file) => {
if (!providedFiles.find((f) => file.name === f.name)) { if (!providedFiles.find((f) => file.name === f.name)) {
providedFiles.push(file); providedFiles.push(file);
@ -457,6 +457,8 @@ document.addEventListener("DOMContentLoaded", () => {
} }
}; };
fileInput.onchange = () => handleFilesPick(fileInput.files);
document.getElementById("zip-multiple").onchange = () => { document.getElementById("zip-multiple").onchange = () => {
document.getElementById("zip-name").classList.toggle("is-invisible"); document.getElementById("zip-name").classList.toggle("is-invisible");
}; };
@ -510,6 +512,20 @@ document.addEventListener("DOMContentLoaded", () => {
showFullUploadZone(); showFullUploadZone();
}; };
document.getElementById("file-js-upload").ondragover = (event) => {
event.stopPropagation();
event.preventDefault();
event.dataTransfer.dropEffect = "copy";
};
document.querySelector("#file-js-upload").ondrop = (event) => {
event.preventDefault();
event.stopPropagation();
handleFilesPick(event.dataTransfer.files);
};
if (maxSize) { if (maxSize) {
const maxSizeDOM = document.createElement("span"); const maxSizeDOM = document.createElement("span");
maxSizeDOM.innerText = i18n.maxSize.replace("XXX", filesize(maxSize)); maxSizeDOM.innerText = i18n.maxSize.replace("XXX", filesize(maxSize));