From e2733fecb745b75ff8a792251bfee66e8920ff81 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Mon, 25 Mar 2024 16:43:56 -0400 Subject: [PATCH 01/19] Some initial beginnings of task management in tickets, currently you can create and delete them more to come --- post.php | 4 ++-- post/tasks.php | 55 +++++++++++++++++++++++++++++++++++++++++++++ task_add_modal.php | 45 +++++++++++++++++++++++++++++++++++++ task_edit_modal.php | 45 +++++++++++++++++++++++++++++++++++++ ticket.php | 36 +++++++++++++++++++++++++++++ 5 files changed, 183 insertions(+), 2 deletions(-) create mode 100644 post/tasks.php create mode 100644 task_add_modal.php create mode 100644 task_edit_modal.php diff --git a/post.php b/post.php index 40a878d0..6ec69559 100644 --- a/post.php +++ b/post.php @@ -71,6 +71,8 @@ require_once "post/tax.php"; require_once "post/ticket.php"; +require_once "post/tasks.php"; + require_once "post/transfer.php"; require_once "post/trip.php"; @@ -85,5 +87,3 @@ require_once "post/ai.php"; require_once "post/misc.php"; - -?> diff --git a/post/tasks.php b/post/tasks.php new file mode 100644 index 00000000..4346d405 --- /dev/null +++ b/post/tasks.php @@ -0,0 +1,55 @@ +$name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); +} + + +if (isset($_GET['delete_task'])) { + + validateTechRole(); + + $task_id = intval($_GET['delete_task']); + + // Get Client ID, task name from tasks and tickets using the task_id + $sql = mysqli_query($mysqli, "SELECT * FROM tasks LEFT JOIN tickets ON ticket_id = task_ticket_id"); + $row = mysqli_fetch_array($sql); + $client_id = intval($row['ticket_client_id']); + $task_name = sanitizeInput($row['task_name']); + + mysqli_query($mysqli, "DELETE FROM tasks WHERE task_id = $task_id"); + + // Logging + mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Task', log_action = 'Delete', log_description = '$session_name deleted task $task_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $task_id"); + + $_SESSION['alert_type'] = "error"; + $_SESSION['alert_message'] = "You created Task $task_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); +} \ No newline at end of file diff --git a/task_add_modal.php b/task_add_modal.php new file mode 100644 index 00000000..4f0b3317 --- /dev/null +++ b/task_add_modal.php @@ -0,0 +1,45 @@ + diff --git a/task_edit_modal.php b/task_edit_modal.php new file mode 100644 index 00000000..96a6a711 --- /dev/null +++ b/task_edit_modal.php @@ -0,0 +1,45 @@ + diff --git a/ticket.php b/ticket.php index 2b030fd7..da8f92ab 100644 --- a/ticket.php +++ b/ticket.php @@ -237,6 +237,10 @@ if (isset($_GET['ticket_id'])) { AND ticket_attachment_ticket_id = $ticket_id" ); + + // Get Tasks + $sql_tasks = mysqli_query( $mysqli, "SELECT * FROM tasks WHERE task_ticket_id = $ticket_id ORDER BY task_created_at ASC"); + ?> @@ -264,6 +268,9 @@ if (isset($_GET['ticket_id'])) { Edit + + Create Task + Merge @@ -933,6 +940,33 @@ if (isset($_GET['ticket_id'])) { + + + 0) { ?> +
+
Tasks
+ + +
+ + + + + + +
+ + +
+ + + @@ -956,6 +990,8 @@ if (isset($_GET['ticket_id'])) { require_once "ticket_merge_modal.php"; + require_once "task_add_modal.php"; + if ($config_module_enable_accounting) { require_once "ticket_edit_billable_modal.php"; require_once "ticket_invoice_add_modal.php"; From c40c204ce1ca3df6ec9c942e99d16476abbe87d3 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Mon, 25 Mar 2024 16:45:34 -0400 Subject: [PATCH 02/19] Use full name in vars --- post/tasks.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/post/tasks.php b/post/tasks.php index 4346d405..fbab75f2 100644 --- a/post/tasks.php +++ b/post/tasks.php @@ -9,8 +9,8 @@ if (isset($_POST['add_task'])) { validateTechRole(); $ticket_id = intval($_POST['ticket_id']); - $name = sanitizeInput($_POST['name']); - $description = sanitizeInput($_POST['description']); + $task_name = sanitizeInput($_POST['name']); + $task_description = sanitizeInput($_POST['description']); // Get Client ID from tickets using the ticket_id $sql = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_id = $ticket_id"); @@ -18,14 +18,14 @@ if (isset($_POST['add_task'])) { $client_id = intval($row['ticket_client_id']); - mysqli_query($mysqli, "INSERT INTO tasks SET task_name = '$name', task_description = '$description', task_ticket_id = $ticket_id"); + mysqli_query($mysqli, "INSERT INTO tasks SET task_name = '$task_name', task_description = '$task_description', task_ticket_id = $ticket_id"); $task_id = mysqli_insert_id($mysqli); // Logging - mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Task', log_action = 'Create', log_description = '$session_name created task $name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $task_id"); + mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Task', log_action = 'Create', log_description = '$session_name created task $task_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $task_id"); - $_SESSION['alert_message'] = "You created Task $name"; + $_SESSION['alert_message'] = "You created Task $task_name"; header("Location: " . $_SERVER["HTTP_REFERER"]); } From 31184dab625c6890a25592cb47f11f0822f71e59 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Tue, 26 Mar 2024 14:06:32 -0400 Subject: [PATCH 03/19] Moved Tasks Card under Details, Added tje ability to Edit and mark a task complete --- post/tasks.php | 50 +++++++++++++++++++++++++++++++++-- ticket.php | 72 +++++++++++++++++++++++++++++--------------------- 2 files changed, 90 insertions(+), 32 deletions(-) diff --git a/post/tasks.php b/post/tasks.php index fbab75f2..0dd09069 100644 --- a/post/tasks.php +++ b/post/tasks.php @@ -30,6 +30,29 @@ if (isset($_POST['add_task'])) { header("Location: " . $_SERVER["HTTP_REFERER"]); } +if (isset($_POST['edit_task'])) { + + validateTechRole(); + + $task_id = intval($_POST['task_id']); + $task_name = sanitizeInput($_POST['name']); + $task_description = sanitizeInput($_POST['description']); + + // Get Client ID + $sql = mysqli_query($mysqli, "SELECT * FROM tasks LEFT JOIN tickets ON ticket_id = task_ticket_id WHERE task_id = $task_id"); + $row = mysqli_fetch_array($sql); + $client_id = intval($row['ticket_client_id']); + + mysqli_query($mysqli, "UPDATE tasks SET task_name = '$task_name', task_description = '$task_description' WHERE task_id = $task_id"); + + // Logging + mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Task', log_action = 'Edit', log_description = '$session_name edited task $task_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $task_id"); + + $_SESSION['alert_message'] = "You edited Task $task_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); +} + if (isset($_GET['delete_task'])) { @@ -38,7 +61,7 @@ if (isset($_GET['delete_task'])) { $task_id = intval($_GET['delete_task']); // Get Client ID, task name from tasks and tickets using the task_id - $sql = mysqli_query($mysqli, "SELECT * FROM tasks LEFT JOIN tickets ON ticket_id = task_ticket_id"); + $sql = mysqli_query($mysqli, "SELECT * FROM tasks LEFT JOIN tickets ON ticket_id = task_ticket_id WHERE task_id = $task_id"); $row = mysqli_fetch_array($sql); $client_id = intval($row['ticket_client_id']); $task_name = sanitizeInput($row['task_name']); @@ -49,7 +72,30 @@ if (isset($_GET['delete_task'])) { mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Task', log_action = 'Delete', log_description = '$session_name deleted task $task_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $task_id"); $_SESSION['alert_type'] = "error"; - $_SESSION['alert_message'] = "You created Task $task_name"; + $_SESSION['alert_message'] = "You Deleted Task $task_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); +} + +if (isset($_GET['complete_task'])) { + + validateTechRole(); + + $task_id = intval($_GET['complete_task']); + + // Get Client ID + $sql = mysqli_query($mysqli, "SELECT * FROM tasks LEFT JOIN tickets ON ticket_id = task_ticket_id WHERE task_id = $task_id"); + $row = mysqli_fetch_array($sql); + $client_id = intval($row['ticket_client_id']); + $task_name = sanitizeInput($row['task_name']); + $ticket_id = intval($row['ticket_id']); + + mysqli_query($mysqli, "UPDATE tasks SET task_completed_at = NOW(), task_completed_by = $session_user_id WHERE task_id = $task_id"); + + // Logging + mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Task', log_action = 'Edit', log_description = '$session_name completed task $task_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $task_id"); + + $_SESSION['alert_message'] = "You completed Task $task_name"; header("Location: " . $_SERVER["HTTP_REFERER"]); } \ No newline at end of file diff --git a/ticket.php b/ticket.php index da8f92ab..1ce1996b 100644 --- a/ticket.php +++ b/ticket.php @@ -638,6 +638,47 @@ if (isset($_GET['ticket_id'])) { + + 0) { ?> +
+
Tasks
+ + + + +
+ +
+ +
+ + + + +
+ + + + +
+ + + +
- +
@@ -940,33 +979,6 @@ if (isset($_GET['ticket_id'])) { - - - 0) { ?> -
-
Tasks
- - -
- - - - - - -
- - -
- - - From 038e7e4a529650edeed72f99faa0649ebb0563b5 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Tue, 26 Mar 2024 14:10:14 -0400 Subject: [PATCH 04/19] Add Task Completion Date and Time Stamp --- ticket.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticket.php b/ticket.php index 1ce1996b..5fb31649 100644 --- a/ticket.php +++ b/ticket.php @@ -654,7 +654,7 @@ if (isset($_GET['ticket_id'])) {
- +
From cdc87562c97ff3afe9e410667114d58fdbd78532 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Tue, 26 Mar 2024 15:11:57 -0400 Subject: [PATCH 05/19] Ticket Details UI Enhancements, Dont display entity cards if no data, Moved Add Entities to the Top Bar along with Invoice and Close Ticket. Combine the Client Details and Assign Card into one card, and Tidy Work --- ticket.php | 400 +++++++++++++++++++++++++---------------------------- 1 file changed, 187 insertions(+), 213 deletions(-) diff --git a/ticket.php b/ticket.php index 5fb31649..89175b86 100644 --- a/ticket.php +++ b/ticket.php @@ -229,6 +229,10 @@ if (isset($_GET['ticket_id'])) { ); + // Get Watchers + $sql_ticket_watchers = mysqli_query($mysqli, "SELECT * FROM ticket_watchers WHERE watcher_ticket_id = $ticket_id ORDER BY watcher_email DESC"); + + // Get Ticket Attachments $sql_ticket_attachments = mysqli_query( $mysqli, @@ -255,34 +259,71 @@ if (isset($_GET['ticket_id'])) {
-
+

Ticket

-
-