function deleteFiles(filePaths) { fetch('/delete_files', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ 'file_paths': filePaths }) }) .then(response => response.json()) .then(data => { if (data.success) { alert('Files deleted successfully'); location.reload(); } else { alert('Error deleting files: ' + JSON.stringify(data.errors)); } }); } function deleteSelectedFiles() { const selectedFiles = Array.from(document.querySelectorAll('input[name="fileCheckbox"]:checked')) .map(checkbox => checkbox.value); if (selectedFiles.length > 0) { deleteFiles(selectedFiles); } else { alert('No files selected'); } } function downloadSelectedFiles() { const selectedFiles = Array.from(document.querySelectorAll('input[name="fileCheckbox"]:checked')) .map(checkbox => checkbox.value); if (selectedFiles.length > 0) { fetch('/download_files', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ 'file_paths': selectedFiles }) }) .then(response => { if (!response.ok) { return response.json().then(err => { throw new Error(err.error); }); } return response.blob(); }) .then(blob => { if (blob.type !== 'application/zip') { throw new Error("Received invalid ZIP file."); } const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'files.zip'; document.body.appendChild(a); a.click(); a.remove(); }) .catch(error => alert('Error: ' + error.message)); } else { alert('No files selected'); } } // Function to check or uncheck all checkboxes in a table by checking or unchecking the "CheckAll" checkbox function checkAllCheckboxes(tableId, checkAllCheckboxId) { const table = document.getElementById(tableId); const checkboxes = table.querySelectorAll('input[type="checkbox"][name="fileCheckbox"]'); const checkAllCheckbox = document.getElementById(checkAllCheckboxId); const isChecked = checkAllCheckbox.checked; checkboxes.forEach(checkbox => { checkbox.checked = isChecked; }); }