From 1f6c617a5e45d8ca2ef254c9b0184a302e1ddabc Mon Sep 17 00:00:00 2001 From: Marcus Hill Date: Sat, 8 Jan 2022 12:50:57 +0000 Subject: [PATCH 1/6] Add db field for ticket smiley-based feedback: Good/OK/Bad --- db.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/db.sql b/db.sql index c97acf47..e31b0199 100644 --- a/db.sql +++ b/db.sql @@ -1025,6 +1025,7 @@ CREATE TABLE `tickets` ( `ticket_details` longtext NOT NULL, `ticket_priority` varchar(200) DEFAULT NULL, `ticket_status` varchar(200) NOT NULL, + `ticket_feedback` varchar(104) DEFAULT NULL, `ticket_created_at` datetime NOT NULL, `ticket_updated_at` datetime DEFAULT NULL, `ticket_archived_at` datetime DEFAULT NULL, From 19c90aac99645bd9c3d661574221479e203068c6 Mon Sep 17 00:00:00 2001 From: Marcus Hill Date: Sat, 8 Jan 2022 12:52:54 +0000 Subject: [PATCH 2/6] Add database field for specifying ticket reply type: public/internal --- db.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/db.sql b/db.sql index e31b0199..9f3f0232 100644 --- a/db.sql +++ b/db.sql @@ -999,6 +999,7 @@ DROP TABLE IF EXISTS `ticket_replies`; CREATE TABLE `ticket_replies` ( `ticket_reply_id` int(11) NOT NULL AUTO_INCREMENT, `ticket_reply` longtext NOT NULL, + `ticket_reply_type` varchar(9) NOT NULL, `ticket_reply_created_at` datetime NOT NULL, `ticket_reply_updated_at` datetime DEFAULT NULL, `ticket_reply_archived_at` datetime DEFAULT NULL, From 8406779b3beb685a4d5a1a40eaa1109a12069dd4 Mon Sep 17 00:00:00 2001 From: Marcus Hill Date: Sat, 8 Jan 2022 16:12:04 +0000 Subject: [PATCH 3/6] Add time tracking to ticket --- post.php | 3 ++- ticket.php | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/post.php b/post.php index a7138685..f11de2ee 100644 --- a/post.php +++ b/post.php @@ -4949,8 +4949,9 @@ if(isset($_POST['add_ticket_reply'])){ $ticket_id = intval($_POST['ticket_id']); $ticket_reply = trim(mysqli_real_escape_string($mysqli,$_POST['ticket_reply'])); $ticket_status = trim(mysqli_real_escape_string($mysqli,$_POST['status'])); + $ticket_reply_time_worked = trim(mysqli_real_escape_string($mysqli,$_POST['time'])); - mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_created_at = NOW(), ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id, company_id = $session_company_id") or die(mysqli_error($mysqli)); + mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_time_worked = '$ticket_reply_time_worked', ticket_reply_created_at = NOW(), ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id, company_id = $session_company_id") or die(mysqli_error($mysqli)); //UPDATE Ticket Last Response Field mysqli_query($mysqli,"UPDATE tickets SET ticket_status = '$ticket_status', ticket_updated_at = NOW() WHERE ticket_id = $ticket_id AND company_id = $session_company_id") or die(mysqli_error($mysqli)); diff --git a/ticket.php b/ticket.php index b28e38e7..ad8fa89d 100644 --- a/ticket.php +++ b/ticket.php @@ -156,6 +156,7 @@ if(isset($_GET['ticket_id'])){ $user_id = $row['user_id']; $user_avatar = $row['user_avatar']; $user_initials = initials($row['user_name']); + $ticket_reply_time_worked = date_create($row['ticket_reply_time_worked']); ?>
@@ -178,6 +179,8 @@ if(isset($_GET['ticket_id'])){
+
+ Time worked:
@@ -215,7 +218,7 @@ if(isset($_GET['ticket_id'])){
-
+
@@ -243,6 +246,10 @@ if(isset($_GET['ticket_id'])){
+ +
+ +
@@ -417,4 +424,55 @@ if(isset($_GET['ticket_id'])){ ?> + + + Date: Sat, 8 Jan 2022 16:40:04 +0000 Subject: [PATCH 4/6] Add support for public/internal updates, using the existing 'email update to client' checkbox --- post.php | 11 +++++-- ticket.php | 88 ++++++++++++++++++++++++++++-------------------------- 2 files changed, 55 insertions(+), 44 deletions(-) diff --git a/post.php b/post.php index f11de2ee..a634c9b0 100644 --- a/post.php +++ b/post.php @@ -4919,7 +4919,7 @@ if(isset($_POST['assign_ticket'])){ mysqli_query($mysqli,"UPDATE tickets SET ticket_updated_at = NOW(), ticket_assigned_to = $assigned_to WHERE ticket_id = $ticket_id AND company_id = $session_company_id"); - mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = 'Ticket re-assigned', ticket_reply_created_at = NOW(), ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id, company_id = $session_company_id") or die(mysqli_error($mysqli)); + mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = 'Ticket re-assigned', ticket_reply_type = 'Internal', ticket_reply_created_at = NOW(), ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id, company_id = $session_company_id") or die(mysqli_error($mysqli)); //Logging mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modified', log_description = '$subject', log_created_at = NOW(), company_id = $session_company_id, log_user_id = $session_user_id"); @@ -4951,7 +4951,14 @@ if(isset($_POST['add_ticket_reply'])){ $ticket_status = trim(mysqli_real_escape_string($mysqli,$_POST['status'])); $ticket_reply_time_worked = trim(mysqli_real_escape_string($mysqli,$_POST['time'])); - mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_time_worked = '$ticket_reply_time_worked', ticket_reply_created_at = NOW(), ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id, company_id = $session_company_id") or die(mysqli_error($mysqli)); + if(isset($_POST['public_reply_type'])){ + $ticket_reply_type = 'Public'; + } + else{ + $ticket_reply_type = 'Internal'; + } + + mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_time_worked = '$ticket_reply_time_worked', ticket_reply_type = '$ticket_reply_type', ticket_reply_created_at = NOW(), ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id, company_id = $session_company_id") or die(mysqli_error($mysqli)); //UPDATE Ticket Last Response Field mysqli_query($mysqli,"UPDATE tickets SET ticket_status = '$ticket_status', ticket_updated_at = NOW() WHERE ticket_id = $ticket_id AND company_id = $session_company_id") or die(mysqli_error($mysqli)); diff --git a/ticket.php b/ticket.php index ad8fa89d..230d698c 100644 --- a/ticket.php +++ b/ticket.php @@ -1,7 +1,7 @@ -

Nothing to see here

Go Back"; include("footer.php"); - + }else{ $row = mysqli_fetch_array($sql); @@ -31,7 +31,7 @@ if(isset($_GET['ticket_id'])){ $client_net_terms = $config_default_net_terms; } - + $ticket_prefix = $row['ticket_prefix']; $ticket_number = $row['ticket_number']; $ticket_category = $row['ticket_category']; @@ -69,7 +69,7 @@ if(isset($_GET['ticket_id'])){ $contact_phone = formatPhoneNumber($row['contact_phone']); $contact_extension = $row['contact_extension']; $contact_mobile = formatPhoneNumber($row['contact_mobile']); - + $asset_id = $row['asset_id']; $asset_name = htmlentities($row['asset_name']); $asset_type = htmlentities($row['asset_type']); @@ -149,6 +149,7 @@ if(isset($_GET['ticket_id'])){ while($row = mysqli_fetch_array($sql)){; $ticket_reply_id = $row['ticket_reply_id']; $ticket_reply = $row['ticket_reply']; + $ticket_reply_type = $row['ticket_reply_type']; $ticket_reply_created_at = $row['ticket_reply_created_at']; $ticket_reply_updated_at = $row['ticket_reply_updated_at']; $ticket_reply_by = $row['ticket_reply_by']; @@ -159,8 +160,9 @@ if(isset($_GET['ticket_id'])){ $ticket_reply_time_worked = date_create($row['ticket_reply_time_worked']); ?> -
- +
mb-3"> + +

@@ -171,7 +173,7 @@ if(isset($_GET['ticket_id'])){ - @@ -184,7 +186,7 @@ if(isset($_GET['ticket_id'])){

- +
@@ -234,38 +236,40 @@ if(isset($_GET['ticket_id'])){
- +
+
+ +
+
-
-
-
- - + + +
+
+
+ + +
-
- + -
- -
-
- + - +
-
+

Client

@@ -276,7 +280,7 @@ if(isset($_GET['ticket_id'])){
-
+

Contact


@@ -303,16 +307,16 @@ if(isset($_GET['ticket_id'])){ ?>
-
-
@@ -324,7 +328,7 @@ if(isset($_GET['ticket_id'])){
-
+

Asset


@@ -349,8 +353,8 @@ if(isset($_GET['ticket_id'])){ ?>
-
@@ -358,7 +362,7 @@ if(isset($_GET['ticket_id'])){ -
+

Details

@@ -375,15 +379,15 @@ if(isset($_GET['ticket_id'])){