loko/streetup/interventions/static/interventions/add/documents.js
2026-07-22 14:48:40 +02:00

48 lines
1.6 KiB
JavaScript

document.addEventListener("DOMContentLoaded", function () {
const input = document.getElementById("id_documents");
const fileListContainer = document.getElementById("selected-files");
let fileBuffer = [];
// Réinitialisation au chargement
if (input) {
input.value = "";
}
input.addEventListener("change", function (event) {
fileBuffer = Array.from(input.files);
renderFileList();
});
function renderFileList() {
fileListContainer.innerHTML = "";
fileBuffer.forEach((file, index) => {
const li = document.createElement("li");
li.className = "list-group-item d-flex justify-content-between align-items-center";
delete_txt = gettext("Supprimer")
li.innerHTML = `
${file.name}
<button type="button" class="btn btn-sm btn-danger" data-index="${index}">${delete_txt}</button>
`;
fileListContainer.appendChild(li);
});
// Créer un nouvel input File virtuellement et y insérer les fichiers restants
const dataTransfer = new DataTransfer();
fileBuffer.forEach(file => dataTransfer.items.add(file));
input.files = dataTransfer.files;
}
fileListContainer.addEventListener("click", function (e) {
if (e.target.tagName === "BUTTON") {
const indexToRemove = parseInt(e.target.getAttribute("data-index"));
fileBuffer.splice(indexToRemove, 1);
renderFileList();
}
});
window.renderFileList = renderFileList;
});