diff --git a/agent/ajax.php b/agent/ajax.php index 4cd064a3..8079da84 100644 --- a/agent/ajax.php +++ b/agent/ajax.php @@ -40,31 +40,6 @@ if (isset($_GET['certificate_fetch_parse_json_details'])) { } -/* - * Looks up info on the ticket number provided, used to populate the ticket merge modal - */ -if (isset($_GET['merge_ticket_get_json_details'])) { - enforceUserPermission('module_support'); - - $merge_into_ticket_number = intval(preg_replace('/[^0-9]/', '', $_GET['merge_into_ticket_number'])); - - $sql = mysqli_query($mysqli, "SELECT ticket_id, ticket_number, ticket_prefix, ticket_subject, ticket_priority, ticket_status, ticket_status_name, client_name, contact_name FROM tickets - LEFT JOIN clients ON ticket_client_id = client_id - LEFT JOIN contacts ON ticket_contact_id = contact_id - LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id - WHERE ticket_number = $merge_into_ticket_number"); - - if (mysqli_num_rows($sql) == 0) { - //Do nothing. - echo "No ticket found!"; - } else { - //Return ticket, client and contact details for the given ticket number - $response = mysqli_fetch_assoc($sql); - - echo json_encode($response); - } -} - if (isset($_POST['client_set_notes'])) { enforceUserPermission('module_client', 2); diff --git a/agent/js/ticket_merge.js b/agent/js/ticket_merge.js deleted file mode 100644 index c03b57ca..00000000 --- a/agent/js/ticket_merge.js +++ /dev/null @@ -1,40 +0,0 @@ -// Ticket merging - -// Gets details of the ticket we're going to merge this ticket into -// Shows the details under the comments box & enables the merge button if the status of the merge into ticket is not closed -function merge_into_number_get_details() { - - // Get the ticket number to merge into - var merge_into_ticket_number = document.getElementById("merge_into_ticket_number").value; - - // Reset the form - document.getElementById("merge_ticket_btn").disabled = true; - document.getElementById("merge_into_details_div").hidden = true; - - // Send a GET request to post.php as post.php?merge_ticket_get_json_details=true&merge_into_ticket_number=NUMBER - jQuery.get( - "ajax.php", - {merge_ticket_get_json_details: 'true', merge_into_ticket_number: merge_into_ticket_number}, - function(data){ - // If we get a response from post.php, parse it as JSON - const merge_into_ticket_info = JSON.parse(data); - - // Check that the current ticket ID isn't also the new/merge ticket ID - if(parseInt(merge_into_ticket_info.ticket_id) !== parseInt(document.getElementById("current_ticket_id").value)){ - - // Show the div with the parent ("master") ticket details, populate - document.getElementById("merge_into_details_div").hidden = false; - document.getElementById("merge_into_details_number").innerText = "Parent ticket details: " + merge_into_ticket_info.ticket_prefix + merge_into_ticket_info.ticket_number; - document.getElementById("merge_into_details_client").innerText = "Client Contact: " + merge_into_ticket_info.client_name + " / " + merge_into_ticket_info.contact_name; - document.getElementById("merge_into_details_subject").innerText = "Subject: " + merge_into_ticket_info.ticket_subject; - document.getElementById("merge_into_details_priority").innerText = "Priority: " + merge_into_ticket_info.ticket_priority; - document.getElementById("merge_into_details_status").innerText = "Status: " + merge_into_ticket_info.ticket_status_name; - - // Enable the merge button if the merge into ticket isn't in a closed state - if(merge_into_ticket_info.ticket_status_name.toLowerCase() != "closed"){ - document.getElementById("merge_ticket_btn").disabled = false; - } - } - } - ); -} diff --git a/agent/modals/ticket/ticket_bulk_merge.php b/agent/modals/ticket/ticket_bulk_merge.php index dab3d087..1d0738fd 100644 --- a/agent/modals/ticket/ticket_bulk_merge.php +++ b/agent/modals/ticket/ticket_bulk_merge.php @@ -6,6 +6,20 @@ $ticket_ids = array_map('intval', $_GET['ticket_ids'] ?? []); $count = count($ticket_ids); +$whereNotIn = ''; +if (!empty($ticket_ids)) { + $ids = implode(',', $ticket_ids); + $whereNotIn = "AND ticket_id NOT IN ($ids)"; +} + +$sql_merge = mysqli_query($mysqli, "SELECT * FROM tickets + LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id + LEFT JOIN clients ON client_id = ticket_client_id + WHERE ticket_closed_at IS NULL + $whereNotIn + ORDER BY ticket_status ASC, ticket_id DESC" +); + ob_start(); ?> @@ -23,21 +37,32 @@ ob_start();