Added bulk delete, archive and restore and invidual file/document restore functions to files

This commit is contained in:
johnnyq
2026-01-10 20:38:04 -05:00
parent e5dab8b1ca
commit 5815ef2f75
3 changed files with 229 additions and 26 deletions

View File

@@ -173,6 +173,28 @@ if (isset($_GET['archive_file'])) {
}
if (isset($_GET['restore_file'])) {
enforceUserPermission('module_support', 2);
$file_id = intval($_GET['restore_file']);
// Get Document Name and Client ID for logging and alert message
$sql = mysqli_query($mysqli,"SELECT file_name, file_client_id FROM files WHERE file_id = $file_id");
$row = mysqli_fetch_assoc($sql);
$file_name = sanitizeInput($row['file_name']);
$client_id = intval($row['file_client_id']);
mysqli_query($mysqli,"UPDATE files SET file_archived_at = NULL WHERE file_id = $file_id");
logAction("File", "Restore", "$session_name restored file $file_name", $client_id, $file_id);
flash_alert("File <strong>$file_name</strong> Restored");
redirect();
}
if (isset($_POST['delete_file'])) {
validateCSRFToken($_POST['csrf_token']);
@@ -208,6 +230,65 @@ if (isset($_POST['delete_file'])) {
}
if (isset($_POST['bulk_archive_files'])) {
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_support', 3);
// Archive file loop
if (isset($_POST['file_ids'])) {
// Get selected file Count
$file_count = count($_POST['file_ids']);
foreach($_POST['file_ids'] as $file_id) {
$file_id = intval($file_id);
$sql_file = mysqli_query($mysqli,"SELECT * FROM files WHERE file_id = $file_id");
$row = mysqli_fetch_array($sql_file);
$client_id = intval($row['file_client_id']);
$file_name = sanitizeInput($row['file_name']);
mysqli_query($mysqli,"UPDATE files SET file_archived_at = NOW() WHERE file_id = $file_id");
logAction("File", "Archive", "$session_name archived file $file_name", $client_id, $file_id);
}
}
// Archive documents loop
if (isset($_POST['document_ids'])) {
// Get selected document count
$document_count = count($_POST['document_ids']);
// Delete document loop
foreach($_POST['document_ids'] as $document_id) {
$document_id = intval($document_id);
// Get document name for logging
$sql = mysqli_query($mysqli,"SELECT document_name, document_client_id FROM documents WHERE document_id = $document_id");
$row = mysqli_fetch_array($sql);
$document_name = sanitizeInput($row['document_name']);
$client_id = intval($row['document_client_id']);
mysqli_query($mysqli,"UPDATE documents SET document_archived_at = NOW() WHERE document_id = $document_id");
logAction("Document", "Archive", "$session_name archived document $document_name", $client_id, $document_id);
}
}
logAction("File", "Bulk Archive", "$session_name archived $document_count document(s) and $file_count file(s)", $client_id);
flash_alert("Archived <strong>$document_count</strong> Documents and <strong>$file_count</strong> files", 'error');
redirect();
}
if (isset($_POST['bulk_delete_files'])) {
validateCSRFToken($_POST['csrf_token']);
@@ -257,11 +338,11 @@ if (isset($_POST['bulk_delete_files'])) {
// Delete document loop
foreach($_POST['document_ids'] as $document_id) {
$document_id = intval($document_id);
// Get document name for logging
// Get Document Name and Client ID for logging
$sql = mysqli_query($mysqli,"SELECT document_name, document_client_id FROM documents WHERE document_id = $document_id");
$row = mysqli_fetch_array($sql);
$document_name = sanitizeInput($row['document_name']);
$client_id = intval($row['document_client_id']);
$document_name = sanitizeInput($row['document_name']);
mysqli_query($mysqli,"DELETE FROM documents WHERE document_id = $document_id");
@@ -277,9 +358,68 @@ if (isset($_POST['bulk_delete_files'])) {
}
logAction("File", "Bulk Delete", "$session_name deleted $document_count document(s) and all versions and $file_count file(s)", $client_id);
logAction("File", "Bulk Delete", "$session_name deleted $document_count document(s) and $file_count file(s)", $client_id);
flash_alert("Deleted <strong>$document_count</strong> Documents and associated document versions and <strong>$file_count</strong> files", 'error');
flash_alert("Deleted <strong>$document_count</strong> Documents and <strong>$file_count</strong> files", 'error');
redirect();
}
if (isset($_POST['bulk_restore_files'])) {
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_support', 2);
// Restore file loop
if (isset($_POST['file_ids'])) {
// Get selected file Count
$file_count = count($_POST['file_ids']);
foreach($_POST['file_ids'] as $file_id) {
$file_id = intval($file_id);
$sql_file = mysqli_query($mysqli,"SELECT * FROM files WHERE file_id = $file_id");
$row = mysqli_fetch_array($sql_file);
$client_id = intval($row['file_client_id']);
$file_name = sanitizeInput($row['file_name']);
mysqli_query($mysqli,"UPDATE files SET file_archived_at = NULL WHERE file_id = $file_id");
logAction("File", "Restore", "$session_name restored file $file_name", $client_id, $file_id);
}
}
// Restore documents loop
if (isset($_POST['document_ids'])) {
// Get selected document count
$document_count = count($_POST['document_ids']);
// Restore document loop
foreach($_POST['document_ids'] as $document_id) {
$document_id = intval($document_id);
// Get document name for logging
$sql = mysqli_query($mysqli,"SELECT document_name, document_client_id FROM documents WHERE document_id = $document_id");
$row = mysqli_fetch_array($sql);
$document_name = sanitizeInput($row['document_name']);
$client_id = intval($row['document_client_id']);
mysqli_query($mysqli,"UPDATE documents SET document_archived_at = NULL WHERE document_id = $document_id");
logAction("Document", "Restore", "$session_name restored document $document_name", $client_id, $document_id);
}
}
logAction("File", "Bulk Restore", "$session_name restored $document_count document(s) and $file_count file(s)", $client_id);
flash_alert("Restored <strong>$document_count</strong> Documents and <strong>$file_count</strong> files");
redirect();