mirror of
https://github.com/itflow-org/itflow
synced 2026-02-28 10:54:52 +00:00
Added bulk delete, archive and restore and invidual file/document restore functions to files
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user