diff --git a/client_tickets.php b/client_tickets.php index 16dc1a6a..373a328b 100644 --- a/client_tickets.php +++ b/client_tickets.php @@ -201,3 +201,6 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); require_once("ticket_add_modal.php"); require_once("client_ticket_export_modal.php"); require_once("footer.php"); +?> + + diff --git a/js/ticket_add_remove_watchers.js b/js/ticket_add_remove_watchers.js new file mode 100644 index 00000000..1bcc8aa3 --- /dev/null +++ b/js/ticket_add_remove_watchers.js @@ -0,0 +1,40 @@ +function addWatcher(button) { + var container = button.previousElementSibling; + var textFieldWrapper = document.createElement("div"); + textFieldWrapper.className = "input-group mb-3"; + + var prependWrapper = document.createElement("div"); + prependWrapper.className = "input-group-prepend"; + var iconSpan = document.createElement("span"); + iconSpan.className = "input-group-text"; + iconSpan.innerHTML = ""; + prependWrapper.appendChild(iconSpan); + + var textField = document.createElement("input"); + textField.type = "email"; + textField.className = "form-control"; + textField.name = "watchers[]"; + + var removeButtonWrapper = document.createElement("div"); + removeButtonWrapper.className = "input-group-append"; + + var removeButton = document.createElement("button"); + removeButton.className = "btn btn-danger"; + removeButton.type = "button"; + removeButton.innerHTML = ""; + removeButton.onclick = function() { + removeWatcher(this); + }; + + removeButtonWrapper.appendChild(removeButton); + textFieldWrapper.appendChild(prependWrapper); + textFieldWrapper.appendChild(textField); + textFieldWrapper.appendChild(removeButtonWrapper); + container.appendChild(textFieldWrapper); +} + +function removeWatcher(button) { + var container = button.parentNode.parentNode.parentNode; // Navigate to the container + var textFieldWrapper = button.parentNode.parentNode; + container.removeChild(textFieldWrapper); +} \ No newline at end of file diff --git a/post/ticket.php b/post/ticket.php index c2bcd83a..3c1a3d5d 100644 --- a/post/ticket.php +++ b/post/ticket.php @@ -108,6 +108,19 @@ if (isset($_POST['edit_ticket'])) { mysqli_query($mysqli,"UPDATE tickets SET ticket_subject = '$subject', ticket_priority = '$priority', ticket_details = '$details', ticket_vendor_ticket_number = '$vendor_ticket_number', ticket_assigned_to = $assigned_to, ticket_contact_id = $contact_id, ticket_vendor_id = $vendor_id, ticket_asset_id = $asset_id WHERE ticket_id = $ticket_id"); + // Add Watchers + if (!empty($_POST['watchers'])) { + + // Remove all watchers first + mysqli_query($mysqli,"DELETE FROM ticket_watchers WHERE watcher_ticket_id = $ticket_id"); + + //Add the Watchers + foreach($_POST['watchers'] as $watcher) { + $watcher_email = sanitizeInput($watcher); + mysqli_query($mysqli,"INSERT INTO ticket_watchers SET watcher_email = '$watcher_email', watcher_ticket_id = $ticket_id"); + } + } + //Logging mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name modified ticket $ticket_number - $subject', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id"); diff --git a/ticket.php b/ticket.php index 64d729c5..3f985442 100644 --- a/ticket.php +++ b/ticket.php @@ -759,3 +759,4 @@ if ($ticket_status !== "Closed") { ?> + diff --git a/ticket_add_modal.php b/ticket_add_modal.php index 7661cecd..49ed6f40 100644 --- a/ticket_add_modal.php +++ b/ticket_add_modal.php @@ -162,53 +162,10 @@