From 5e63ef9a2a660fcf2292bb71efbea996d1addace Mon Sep 17 00:00:00 2001 From: Marcus Hill Date: Sun, 24 Mar 2024 22:36:21 +0000 Subject: [PATCH] Ticket Statuses from DB First swing at this to share my progress, isn't ready to merge yet but would appreciate thoughts --- client_tickets.php | 8 ++++---- database_updates.php | 33 ++++++++++++++++++++++++++++++--- database_version.php | 2 +- db.sql | 17 +++++++++++++++++ functions.php | 37 +++++++++++++++++++++++++++++++++++++ get_settings.php | 4 ++++ portal/portal_functions.php | 4 ++-- portal/portal_post.php | 6 +++--- post/ticket.php | 36 +++++++++++++++++++++++------------- setup.php | 8 +++++++- tickets.php | 22 ++++++---------------- 11 files changed, 134 insertions(+), 43 deletions(-) diff --git a/client_tickets.php b/client_tickets.php index a10de9c5..4518e822 100644 --- a/client_tickets.php +++ b/client_tickets.php @@ -142,14 +142,14 @@ $total_scheduled_tickets = intval($row['total_scheduled_tickets']); $ticket_number = nullable_htmlentities($row['ticket_number']); $ticket_subject = nullable_htmlentities($row['ticket_subject']); $ticket_priority = nullable_htmlentities($row['ticket_priority']); - $ticket_status = nullable_htmlentities($row['ticket_status']); + $ticket_status = sanitizeInput(getTicketStatusName($row['ticket_status'])); $ticket_billable = intval($row['ticket_billable']); $ticket_created_at = nullable_htmlentities($row['ticket_created_at']); $ticket_created_at_time_ago = timeAgo($row['ticket_created_at']); $ticket_updated_at = nullable_htmlentities($row['ticket_updated_at']); $ticket_updated_at_time_ago = timeAgo($row['ticket_updated_at']); if (empty($ticket_updated_at)) { - if ($ticket_status == "Closed") { + if ($ticket_status == $config_ticket_status_id_closed || $ticket_status == "Closed") { $ticket_updated_at_display = "

Never

"; } else { $ticket_updated_at_display = "

Never

"; @@ -173,7 +173,7 @@ $total_scheduled_tickets = intval($row['total_scheduled_tickets']); $ticket_assigned_to = intval($row['ticket_assigned_to']); if (empty($ticket_assigned_to)) { - if ($ticket_status == "Closed") { + if ($ticket_status == $config_ticket_status_id_closed || $ticket_status == "Closed") { $ticket_assigned_to_display = "

Not Assigned

"; } else { $ticket_assigned_to_display = "

Not Assigned

"; @@ -281,7 +281,7 @@ $total_scheduled_tickets = intval($row['total_scheduled_tickets']); CURRENT_DATABASE_VERSION) { mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.1.3'"); } - // if (CURRENT_DATABASE_VERSION == '1.1.3') { - // // Insert queries here required to update to DB version 1.1.4 + if (CURRENT_DATABASE_VERSION == '1.1.3') { + + // Add new ticket_statuses table + mysqli_query($mysqli, "CREATE TABLE `ticket_statuses` ( + `ticket_status_id` INT(11) NOT NULL AUTO_INCREMENT, + `ticket_status_name` VARCHAR(200) NOT NULL, + `ticket_status_color` VARCHAR(200) NOT NULL, + `ticket_status_active` TINYINT(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`ticket_status_id`) + )"); + + // Pre-seed ticket statuses + mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'New', ticket_status_color = 'danger'"); // Default ID for new tickets is 1 + mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'Open', ticket_status_color = 'primary'"); // 2 + mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'On Hold', ticket_status_color = 'success'"); // 3 + mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'Auto Close', ticket_status_color = 'dark'"); // 5 + mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'Closed', ticket_status_color = 'dark'"); // 5 + + // Add default values above to settings + mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_ticket_status_id_new` int(1) NOT NULL DEFAULT '1' AFTER `config_ticket_new_ticket_notification_email`"); + mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_ticket_status_id_open` int(1) NOT NULL DEFAULT '2' AFTER `config_ticket_status_id_new`"); + mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_ticket_status_id_autoclose` int(1) NOT NULL DEFAULT '4' AFTER `config_ticket_status_id_open`"); + mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_ticket_status_id_closed` int(1) NOT NULL DEFAULT '5' AFTER `config_ticket_status_id_autoclose`"); + + mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.1.4'"); + } + + // if (CURRENT_DATABASE_VERSION == '1.1.4') { + // // Insert queries here required to update to DB version 1.1.5 // // Then, update the database to the next sequential version - // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.1.4'"); + // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.1.5'"); // } } else { diff --git a/database_version.php b/database_version.php index 1760e835..62e7c706 100644 --- a/database_version.php +++ b/database_version.php @@ -5,5 +5,5 @@ * It is used in conjunction with database_updates.php */ -DEFINE("LATEST_DATABASE_VERSION", "1.1.3"); +DEFINE("LATEST_DATABASE_VERSION", "1.1.4"); diff --git a/db.sql b/db.sql index efe7b6e8..c2d9f586 100644 --- a/db.sql +++ b/db.sql @@ -1296,6 +1296,10 @@ CREATE TABLE `settings` ( `config_ticket_autoclose` tinyint(1) NOT NULL DEFAULT 0, `config_ticket_autoclose_hours` int(5) NOT NULL DEFAULT 72, `config_ticket_new_ticket_notification_email` varchar(200) DEFAULT NULL, + `config_ticket_status_id_new` int(1) NOT NULL DEFAULT 1, + `config_ticket_status_id_open` int(1) NOT NULL DEFAULT 2, + `config_ticket_status_id_autoclose` int(1) NOT NULL DEFAULT 4, + `config_ticket_status_id_closed` int(1) NOT NULL DEFAULT 5, `config_enable_cron` tinyint(1) NOT NULL DEFAULT 0, `config_cron_key` varchar(255) DEFAULT NULL, `config_recurring_auto_send_invoice` tinyint(1) NOT NULL DEFAULT 1, @@ -1560,6 +1564,19 @@ CREATE TABLE `ticket_replies` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `ticket_statuses` +-- + +DROP TABLE IF EXISTS `ticket_statuses`; +CREATE TABLE IF NOT EXISTS `ticket_statuses` ( + `ticket_status_id` int(11) NOT NULL AUTO_INCREMENT, + `ticket_status_name` varchar(200) NOT NULL, + `ticket_status_color` varchar(200) NOT NULL, + `ticket_status_active` TINYINT(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`ticket_status_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + -- -- Table structure for table `ticket_views` -- diff --git a/functions.php b/functions.php index 17df05b4..fb8d89a6 100644 --- a/functions.php +++ b/functions.php @@ -1139,6 +1139,22 @@ function createiCalStrCancel($originaliCalStr) { } function getTicketStatusColor($ticket_status) { + + global $mysqli; + + if (intval($ticket_status)) { + $status_id = intval($ticket_status); + $row = mysqli_fetch_array(mysqli_query($mysqli, "SELECT * FROM ticket_statuses WHERE ticket_status_id = $status_id LIMIT 1")); + + if ($row) { + return nullable_htmlentities($row['ticket_status_color']); + } + + // Default return + return "Unknown"; + } + + // Legacy support for named statuses if ($ticket_status == "New") { return "danger"; } elseif ($ticket_status == "Open") { @@ -1151,3 +1167,24 @@ function getTicketStatusColor($ticket_status) { return "dark"; } } + +function getTicketStatusName($ticket_status) { + + global $mysqli; + + // Legacy support for named statuses + if (!intval($ticket_status)) { + return $ticket_status; + } + + $status_id = intval($ticket_status); + $row = mysqli_fetch_array(mysqli_query($mysqli, "SELECT * FROM ticket_statuses WHERE ticket_status_id = $status_id LIMIT 1")); + + if ($row) { + return nullable_htmlentities($row['ticket_status_name']); + } + + // Default return + return "Unknown"; + +} diff --git a/get_settings.php b/get_settings.php index 5a3dbc2d..92c1ef16 100644 --- a/get_settings.php +++ b/get_settings.php @@ -68,6 +68,10 @@ $config_ticket_client_general_notifications = intval($row['config_ticket_client_ $config_ticket_autoclose = intval($row['config_ticket_autoclose']); $config_ticket_autoclose_hours = intval($row['config_ticket_autoclose_hours']); $config_ticket_new_ticket_notification_email = $row['config_ticket_new_ticket_notification_email']; +$config_ticket_status_id_new = intval($row['config_ticket_status_id_new']); +$config_ticket_status_id_open = intval($row['config_ticket_status_id_open']); +$config_ticket_status_id_autoclose = intval($row['config_ticket_status_id_autoclose']); +$config_ticket_status_id_closed = intval($row['config_ticket_status_id_closed']); // Cron $config_enable_cron = intval($row['config_enable_cron']); diff --git a/portal/portal_functions.php b/portal/portal_functions.php index a9ac1f14..25f3886c 100644 --- a/portal/portal_functions.php +++ b/portal/portal_functions.php @@ -16,10 +16,10 @@ function verifyContactTicketAccess($requested_ticket_id, $expected_ticket_state) // Setup if ($expected_ticket_state == "Closed") { // Closed tickets - $ticket_state_snippet = "ticket_status = 'Closed'"; + $ticket_state_snippet = "ticket_status = 'Closed' OR ticket_status = $config_ticket_status_id_closed"; } else { // Open (working/hold) tickets - $ticket_state_snippet = "ticket_status != 'Closed'"; + $ticket_state_snippet = "ticket_status != 'Closed' or ticket_status != $config_ticket_status_id_closed"; } // Verify the contact has access to the provided ticket ID diff --git a/portal/portal_post.php b/portal/portal_post.php index 2e154385..f22dbf2d 100644 --- a/portal/portal_post.php +++ b/portal/portal_post.php @@ -33,7 +33,7 @@ if (isset($_POST['add_ticket'])) { $new_config_ticket_next_number = $config_ticket_next_number + 1; mysqli_query($mysqli, "UPDATE settings SET config_ticket_next_number = $new_config_ticket_next_number WHERE company_id = 1"); - mysqli_query($mysqli, "INSERT INTO tickets SET ticket_prefix = '$config_ticket_prefix', ticket_number = $ticket_number, ticket_subject = '$subject', ticket_details = '$details', ticket_priority = '$priority', ticket_status = 'New', ticket_created_by = 0, ticket_contact_id = $contact, ticket_client_id = $client_id"); + mysqli_query($mysqli, "INSERT INTO tickets SET ticket_prefix = '$config_ticket_prefix', ticket_number = $ticket_number, ticket_subject = '$subject', ticket_details = '$details', ticket_priority = '$priority', ticket_status = $config_ticket_status_id_new, ticket_created_by = 0, ticket_contact_id = $contact, ticket_client_id = $client_id"); $id = mysqli_insert_id($mysqli); // Notify agent DL of the new ticket, if populated with a valid email @@ -86,7 +86,7 @@ if (isset($_POST['add_ticket_comment'])) { $ticket_reply_id = mysqli_insert_id($mysqli); // Update Ticket Last Response Field & set ticket to open as client has replied - mysqli_query($mysqli, "UPDATE tickets SET ticket_status = 'Open' WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id LIMIT 1"); + mysqli_query($mysqli, "UPDATE tickets SET ticket_status = $config_ticket_status_id_open WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id LIMIT 1"); // Get ticket details & Notify the assigned tech (if any) @@ -201,7 +201,7 @@ if (isset($_GET['close_ticket'])) { if (verifyContactTicketAccess($ticket_id, "Open")) { // Close ticket - mysqli_query($mysqli, "UPDATE tickets SET ticket_status = 'Closed', ticket_closed_at = NOW() WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id"); + mysqli_query($mysqli, "UPDATE tickets SET ticket_status = $config_ticket_status_id_closed, ticket_closed_at = NOW() WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id"); // Add reply mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = 'Ticket closed by $session_contact_name.', ticket_reply_type = 'Client', ticket_reply_by = $session_contact_id, ticket_reply_ticket_id = $ticket_id"); diff --git a/post/ticket.php b/post/ticket.php index 1ac2f621..edceef98 100644 --- a/post/ticket.php +++ b/post/ticket.php @@ -11,9 +11,9 @@ if (isset($_POST['add_ticket'])) { $client_id = intval($_POST['client']); $assigned_to = intval($_POST['assigned_to']); if ($assigned_to == 0) { - $ticket_status = 'New'; + $ticket_status = $config_ticket_status_id_new; } else { - $ticket_status = 'Open'; + $ticket_status = $config_ticket_status_id_open; } $contact = intval($_POST['contact']); $subject = sanitizeInput($_POST['subject']); @@ -82,6 +82,7 @@ if (isset($_POST['add_ticket'])) { $ticket_details = mysqli_escape_string($mysqli, $row['ticket_details']); $ticket_priority = sanitizeInput($row['ticket_priority']); $ticket_status = sanitizeInput($row['ticket_status']); + $ticket_status_name = sanitizeInput(getTicketStatusName($row['ticket_status'])); $client_id = intval($row['ticket_client_id']); $ticket_created_by = intval($row['ticket_created_by']); $ticket_assigned_to = intval($row['ticket_assigned_to']); @@ -330,8 +331,15 @@ if (isset($_POST['assign_ticket'])) { $ticket_id = intval($_POST['ticket_id']); $assigned_to = intval($_POST['assigned_to']); $ticket_status = sanitizeInput($_POST['ticket_status']); + + // TODO: Remove this legacy if if ($ticket_status == 'New' && $assigned_to !== 0) { - $ticket_status = 'Open'; + $ticket_status = $config_ticket_status_id_open; + } + + // New + if ($ticket_status == $config_ticket_status_id_new && $assigned_to !== 0) { + $ticket_status = $config_ticket_status_id_open; } // Allow for un-assigning tickets @@ -356,7 +364,7 @@ if (isset($_POST['assign_ticket'])) { } // Get & verify ticket details - $ticket_details_sql = mysqli_query($mysqli, "SELECT ticket_prefix, ticket_number, ticket_subject, ticket_client_id, client_name FROM tickets LEFT JOIN clients ON ticket_client_id = client_id WHERE ticket_id = '$ticket_id' AND ticket_status != 'Closed'"); + $ticket_details_sql = mysqli_query($mysqli, "SELECT ticket_prefix, ticket_number, ticket_subject, ticket_client_id, client_name FROM tickets LEFT JOIN clients ON ticket_client_id = client_id WHERE ticket_id = '$ticket_id' AND ticket_status != $config_ticket_status_id_closed AND ticket_status != 'Closed'"); $ticket_details = mysqli_fetch_array($ticket_details_sql); $ticket_prefix = sanitizeInput($ticket_details['ticket_prefix']); @@ -434,7 +442,7 @@ if (isset($_GET['delete_ticket'])) { $ticket_status = sanitizeInput($row['ticket_status']); $client_id = intval($row['ticket_client_id']); - if ($ticket_status !== 'Closed') { + if ($ticket_status !== $config_ticket_status_id_closed && $ticket_status !== 'Closed') { mysqli_query($mysqli, "DELETE FROM tickets WHERE ticket_id = $ticket_id"); // Delete all ticket replies @@ -479,7 +487,7 @@ if (isset($_POST['bulk_assign_ticket'])) { $client_id = intval($row['ticket_client_id']); if ($ticket_status == 'New' && $assigned_to !== 0) { - $ticket_status = 'Open'; + $ticket_status = $config_ticket_status_id_open; } // Allow for un-assigning tickets @@ -621,7 +629,7 @@ if (isset($_POST['bulk_close_tickets'])) { $ticket_prefix = sanitizeInput($row['ticket_prefix']); $ticket_number = intval($row['ticket_number']); - $ticket_status = sanitizeInput($row['ticket_status']); + $ticket_status = sanitizeInput(getTicketStatusName($row['ticket_status'])); $ticket_subject = sanitizeInput($row['ticket_subject']); $current_ticket_priority = sanitizeInput($row['ticket_priority']); $client_id = intval($row['ticket_client_id']); @@ -713,6 +721,7 @@ if (isset($_POST['bulk_ticket_reply'])) { // POST variables $ticket_reply = mysqli_escape_string($mysqli, $_POST['bulk_reply_details']); $ticket_status = sanitizeInput($_POST['bulk_status']); + $ticket_status_name = sanitizeInput(getTicketStatusName($row['ticket_status'])); $private_note = intval($_POST['bulk_private_reply']); if ($private_note == 1) { $ticket_reply_type = 'Internal'; @@ -780,7 +789,7 @@ if (isset($_POST['bulk_ticket_reply'])) { if (filter_var($contact_email, FILTER_VALIDATE_EMAIL)) { $subject = "Ticket update - [$ticket_prefix$ticket_number] - $ticket_subject"; - $body = "##- Please type your reply above this line -##

Hello $contact_name,

Your ticket regarding $ticket_subject has been updated.

--------------------------------
$ticket_reply
--------------------------------

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Status: $ticket_status
Portal: https://$base_url/portal/ticket.php?id=$ticket_id

--
$company_name - Support
$from_email
$company_phone"; + $body = "##- Please type your reply above this line -##

Hello $contact_name,

Your ticket regarding $ticket_subject has been updated.

--------------------------------
$ticket_reply
--------------------------------

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Status: $ticket_status_name
Portal: https://$base_url/portal/ticket.php?id=$ticket_id

--
$company_name - Support
$from_email
$company_phone"; $data = []; @@ -842,6 +851,7 @@ if (isset($_POST['add_ticket_reply'])) { $ticket_id = intval($_POST['ticket_id']); $ticket_reply = mysqli_real_escape_string($mysqli, $_POST['ticket_reply']); $ticket_status = sanitizeInput($_POST['status']); + $ticket_status_name = sanitizeInput(getTicketStatusName($row['ticket_status'])); // Handle the time inputs for hours, minutes, and seconds $hours = intval($_POST['hours']); $minutes = intval($_POST['minutes']); @@ -869,7 +879,7 @@ if (isset($_POST['add_ticket_reply'])) { // Update Ticket Last Response Field mysqli_query($mysqli, "UPDATE tickets SET ticket_status = '$ticket_status' WHERE ticket_id = $ticket_id"); - if ($ticket_status == 'Closed') { + if ($ticket_status == $config_ticket_status_id_closed || $ticket_status == 'Closed') { mysqli_query($mysqli, "UPDATE tickets SET ticket_closed_at = NOW() WHERE ticket_id = $ticket_id"); } @@ -909,15 +919,15 @@ if (isset($_POST['add_ticket_reply'])) { // Slightly different email subject/text depending on if this update closed the ticket or not - if ($ticket_status == 'Closed') { + if ($ticket_status == $config_ticket_status_id_closed || $ticket_status == 'Closed') { $subject = "Ticket closed - [$ticket_prefix$ticket_number] - $ticket_subject | (do not reply)"; $body = "Hello $contact_name,

Your ticket regarding $ticket_subject has been closed.

--------------------------------
$ticket_reply
--------------------------------

We hope the request/issue was resolved to your satisfaction. If you need further assistance, please raise a new ticket using the below details. Please do not reply to this email.

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id

--
$company_name - Support
$config_ticket_from_email
$company_phone"; - } elseif ($ticket_status == 'Auto Close') { + } elseif ($ticket_status == $config_ticket_status_id_autoclose || $ticket_status == 'Auto Close') { $subject = "Ticket update - [$ticket_prefix$ticket_number] - $ticket_subject | (pending closure)"; - $body = "##- Please type your reply above this line -##

Hello $contact_name,

Your ticket regarding $ticket_subject has been updated and is pending closure.

--------------------------------
$ticket_reply
--------------------------------

If your request/issue is resolved, you can simply ignore this email. If you need further assistance, please respond to let us know!

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Status: $ticket_status
Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id

--
$company_name - Support
$config_ticket_from_email
$company_phone"; + $body = "##- Please type your reply above this line -##

Hello $contact_name,

Your ticket regarding $ticket_subject has been updated and is pending closure.

--------------------------------
$ticket_reply
--------------------------------

If your request/issue is resolved, you can simply ignore this email. If you need further assistance, please respond to let us know!

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Status: $ticket_status_name
Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id

--
$company_name - Support
$config_ticket_from_email
$company_phone"; } else { $subject = "Ticket update - [$ticket_prefix$ticket_number] - $ticket_subject"; - $body = "##- Please type your reply above this line -##

Hello $contact_name,

Your ticket regarding $ticket_subject has been updated.

--------------------------------
$ticket_reply
--------------------------------

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Status: $ticket_status
Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id

--
$company_name - Support
$config_ticket_from_email
$company_phone"; + $body = "##- Please type your reply above this line -##

Hello $contact_name,

Your ticket regarding $ticket_subject has been updated.

--------------------------------
$ticket_reply
--------------------------------

Ticket: $ticket_prefix$ticket_number
Subject: $ticket_subject
Status: $ticket_status_name
Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id

--
$company_name - Support
$config_ticket_from_email
$company_phone"; } $data = []; diff --git a/setup.php b/setup.php index 0d5a7476..59df2dfe 100644 --- a/setup.php +++ b/setup.php @@ -257,7 +257,7 @@ if (isset($_POST['add_company_settings'])) { unlink('uploads/tmp/cronkey.php'); } - + // Create Main Account Types mysqli_query($mysqli,"INSERT INTO account_types SET account_type_name = 'Asset', account_type_parent = 1, account_type_description = 'Assets are economic resources which are expected to benefit the business in the future.'"); @@ -295,6 +295,12 @@ if (isset($_POST['add_company_settings'])) { //Create Calendar mysqli_query($mysqli,"INSERT INTO calendars SET calendar_name = 'Default', calendar_color = 'blue'"); + // Add default ticket statuses + mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'New', ticket_status_color = 'danger'"); // Default ID for new tickets is 1 + mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'Open', ticket_status_color = 'primary'"); // 2 + mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'On Hold', ticket_status_color = 'success'"); // 3 + mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'Auto Close', ticket_status_color = 'success'"); // 4 + mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'Closed', ticket_status_color = 'dark'"); // 5 $_SESSION['alert_message'] = "Company $name created!"; diff --git a/tickets.php b/tickets.php index ee713383..9c9f463e 100644 --- a/tickets.php +++ b/tickets.php @@ -311,7 +311,7 @@ $user_active_assigned_tickets = intval($row['total_tickets_assigned']); $ticket_number = intval($row['ticket_number']); $ticket_subject = nullable_htmlentities($row['ticket_subject']); $ticket_priority = nullable_htmlentities($row['ticket_priority']); - $ticket_status = nullable_htmlentities($row['ticket_status']); + $ticket_status = sanitizeInput(getTicketStatusName($row['ticket_status'])); $ticket_billable = intval($row['ticket_billable']); $ticket_scheduled_for = nullable_htmlentities($row['ticket_schedule']); $ticket_created_at = nullable_htmlentities($row['ticket_created_at']); @@ -319,7 +319,7 @@ $user_active_assigned_tickets = intval($row['total_tickets_assigned']); $ticket_updated_at = nullable_htmlentities($row['ticket_updated_at']); $ticket_updated_at_time_ago = timeAgo($row['ticket_updated_at']); if (empty($ticket_updated_at)) { - if ($ticket_status == "Closed") { + if ($ticket_status == $config_ticket_status_id_closed || $ticket_status == "Closed") { $ticket_updated_at_display = "

Never

"; } else { $ticket_updated_at_display = "

Never

"; @@ -333,17 +333,7 @@ $user_active_assigned_tickets = intval($row['total_tickets_assigned']); $contact_name = nullable_htmlentities($row['contact_name']); $contact_email = nullable_htmlentities($row['contact_email']); - if ($ticket_status == "New") { - $ticket_status_color = "danger"; - } elseif ($ticket_status == "Open") { - $ticket_status_color = "primary"; - } elseif ($ticket_status == "On Hold") { - $ticket_status_color = "success"; - } elseif ($ticket_status == "Auto Close") { - $ticket_status_color = "dark"; - } elseif ($ticket_status == "Closed") { - $ticket_status_color = "dark"; - } + $ticket_status_color = getTicketStatusColor($ticket_status); if ($ticket_priority == "High") { $ticket_priority_color = "danger"; @@ -355,7 +345,7 @@ $user_active_assigned_tickets = intval($row['total_tickets_assigned']); $ticket_assigned_to = intval($row['ticket_assigned_to']); if (empty($ticket_assigned_to)) { - if ($ticket_status == "Closed") { + if ($ticket_status == $config_ticket_status_id_closed || $ticket_status == "Closed") { $ticket_assigned_to_display = "

Not Assigned

"; } else { $ticket_assigned_to_display = "

Not Assigned

"; @@ -398,7 +388,7 @@ $user_active_assigned_tickets = intval($row['total_tickets_assigned']); - +
@@ -470,7 +460,7 @@ $user_active_assigned_tickets = intval($row['total_tickets_assigned']);