Add Bulk Delete Function Also when deletign a ticket delete the watchers and attachments and remove the ticket id from uploads/tickets/ticket_id
This commit is contained in:
@@ -747,6 +747,15 @@ if (isset($_GET['delete_ticket'])) {
|
|||||||
|
|
||||||
// Delete all ticket views
|
// Delete all ticket views
|
||||||
mysqli_query($mysqli, "DELETE FROM ticket_views WHERE view_ticket_id = $ticket_id");
|
mysqli_query($mysqli, "DELETE FROM ticket_views WHERE view_ticket_id = $ticket_id");
|
||||||
|
|
||||||
|
// Delete ticket watchers
|
||||||
|
mysqli_query($mysqli, "DELETE FROM ticket_watchers WHERE watcher_ticket_id = $ticket_id");
|
||||||
|
|
||||||
|
// Delete Ticket Attachements
|
||||||
|
mysqli_query($mysqli, "DELETE FROM ticket_attachments WHERE ticket_attachment_ticket_id = $ticket_id");
|
||||||
|
removeDirectory("uploads/tickets/$ticket_id");
|
||||||
|
|
||||||
|
// No Need to delete ticket assets as this is cascadely deleted via the database.
|
||||||
|
|
||||||
// Logging
|
// Logging
|
||||||
logAction("Ticket", "Delete", "$session_name deleted $ticket_prefix$ticket_number along with all replies", $client_id);
|
logAction("Ticket", "Delete", "$session_name deleted $ticket_prefix$ticket_number along with all replies", $client_id);
|
||||||
@@ -760,6 +769,50 @@ if (isset($_GET['delete_ticket'])) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($_POST['bulk_delete_tickets'])) {
|
||||||
|
|
||||||
|
enforceUserPermission('module_support', 3);
|
||||||
|
validateCSRFToken($_POST['csrf_token']);
|
||||||
|
|
||||||
|
if (isset($_POST['ticket_ids'])) {
|
||||||
|
|
||||||
|
$count = count($_POST['ticket_ids']);
|
||||||
|
|
||||||
|
// Cycle through array and delete each recurring scheduled ticket
|
||||||
|
foreach ($_POST['ticket_ids'] as $ticket_id) {
|
||||||
|
|
||||||
|
$ticket_id = intval($ticket_id);
|
||||||
|
mysqli_query($mysqli, "DELETE FROM tickets WHERE ticket_id = $ticket_id");
|
||||||
|
|
||||||
|
// Delete all ticket replies
|
||||||
|
mysqli_query($mysqli, "DELETE FROM ticket_replies WHERE ticket_reply_ticket_id = $ticket_id");
|
||||||
|
|
||||||
|
// Delete all ticket views
|
||||||
|
mysqli_query($mysqli, "DELETE FROM ticket_views WHERE view_ticket_id = $ticket_id");
|
||||||
|
|
||||||
|
// Delete ticket watchers
|
||||||
|
mysqli_query($mysqli, "DELETE FROM ticket_watchers WHERE watcher_ticket_id = $ticket_id");
|
||||||
|
|
||||||
|
// Delete Ticket Attachements
|
||||||
|
mysqli_query($mysqli, "DELETE FROM ticket_attachments WHERE ticket_attachment_ticket_id = $ticket_id");
|
||||||
|
removeDirectory("uploads/tickets/$ticket_id");
|
||||||
|
|
||||||
|
// No Need to delete ticket assets as this is cascadely deleted via the database.
|
||||||
|
|
||||||
|
// Logging
|
||||||
|
logAction("Ticket", "Delete", "$session_name deleted ticket", 0, $ticket_id);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Logging
|
||||||
|
logAction("Ticket", "Bulk Delete", "$session_name deleted $count ticket(s)");
|
||||||
|
|
||||||
|
$_SESSION['alert_message'] = "Deleted <strong>$count</strong> ticket(s)";
|
||||||
|
}
|
||||||
|
|
||||||
|
header("Location: " . $_SERVER["HTTP_REFERER"]);
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($_POST['bulk_assign_ticket'])) {
|
if (isset($_POST['bulk_assign_ticket'])) {
|
||||||
|
|
||||||
enforceUserPermission('module_support', 2);
|
enforceUserPermission('module_support', 2);
|
||||||
|
|||||||
@@ -283,6 +283,12 @@ $sql_categories = mysqli_query(
|
|||||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#bulkCloseTicketsModal">
|
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#bulkCloseTicketsModal">
|
||||||
<i class="fas fa-fw fa-check mr-2"></i>Resolve
|
<i class="fas fa-fw fa-check mr-2"></i>Resolve
|
||||||
</a>
|
</a>
|
||||||
|
<?php if (lookupUserPermission("module_support") === 3) { ?>
|
||||||
|
<div class="dropdown-divider"></div>
|
||||||
|
<button class="dropdown-item text-danger text-bold confirm-link" type="submit" form="bulkActions" name="bulk_delete_tickets">
|
||||||
|
<i class="fas fa-fw fa-trash mr-2"></i>Delete
|
||||||
|
</button>
|
||||||
|
<?php } ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
|||||||
Reference in New Issue
Block a user