From 47752e5e35b0fe88180cbd8d12fd84cee3b0b883 Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Thu, 4 Dec 2025 15:05:01 +0530 Subject: [PATCH 1/2] Adding time line in Jobs Status. --- .../ServiceProjectJob/JobStatusLog.jsx | 79 ++++++++----------- .../ServiceProjectJob/ManageJobTicket.jsx | 17 ++-- 2 files changed, 40 insertions(+), 56 deletions(-) diff --git a/src/components/ServiceProject/ServiceProjectJob/JobStatusLog.jsx b/src/components/ServiceProject/ServiceProjectJob/JobStatusLog.jsx index bf13b7e5..f1dfce9a 100644 --- a/src/components/ServiceProject/ServiceProjectJob/JobStatusLog.jsx +++ b/src/components/ServiceProject/ServiceProjectJob/JobStatusLog.jsx @@ -1,55 +1,38 @@ -import React from "react"; -import Avatar from "../../common/Avatar"; -import { formatUTCToLocalTime } from "../../../utils/dateUtils"; - +import React, { useMemo } from "react"; +import Timeline from "../../common/Timeline"; +import { getColorNameFromHex } from "../../../utils/appUtils"; const JobStatusLog = ({ data }) => { + // Prepare timeline items + const timelineData = useMemo(() => { + if (!data) return []; + return data + .sort((a, b) => new Date(b.updatedAt) - new Date(a.updatedAt)) + .map((log) => ({ + id: log.id, + title: log.nextStatus?.displayName || log.status?.displayName || "Status Updated", + description: log.nextStatus?.description || "", + timeAgo: log.updatedAt, + color: getColorNameFromHex(log.nextStatus?.color) || "primary", + userComment: log.comment, + users: log.updatedBy + ? [ + { + firstName: log.updatedBy.firstName || "", + lastName: log.updatedBy.lastName || "", + role: log.updatedBy.jobRoleName || "", + avatar: log.updatedBy.photo || null, + }, + ] + : [], + })); + }, [data]); + return (
-
-
- {data?.map((item) => ( -
-
-
- - {item.nextStatus?.displayName ?? - item.status?.displayName ?? - "Status"} - -
- - - {formatUTCToLocalTime(item?.updatedAt,true)} - -
-
- -
-
- - {item.updatedBy?.firstName} {item.updatedBy?.lastName} - - - {/* {formatUTCToLocalTime(item?.createdAt, true)} */} - -
-
- {item?.updatedBy?.jobRoleName} -
-
-

{item.comment}

-
-
-
-
- ))} +
+
+
diff --git a/src/components/ServiceProject/ServiceProjectJob/ManageJobTicket.jsx b/src/components/ServiceProject/ServiceProjectJob/ManageJobTicket.jsx index d2647649..b05e85fe 100644 --- a/src/components/ServiceProject/ServiceProjectJob/ManageJobTicket.jsx +++ b/src/components/ServiceProject/ServiceProjectJob/ManageJobTicket.jsx @@ -23,20 +23,21 @@ const ManageJobTicket = ({ Job }) => { ); const drawerRef = useRef(); const tabsData = [ + { + id: "history", + title: "History", + icon: "bx bx-time me-2", + active: true, + content: , + }, { id: "comment", title: "Comments", icon: "bx bx-comment me-2", - active: true, + active: false, content: , }, - { - id: "history", - title: "History", - icon: "bx bx-time me-2", - active: false, - content: , - }, + ]; if (isLoading) return ; From b8f2607b45e37e9a0a88e38d14cdfc2faac2f025 Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Thu, 4 Dec 2025 15:15:06 +0530 Subject: [PATCH 2/2] Adding Workdone label. --- src/utils/appUtils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/appUtils.js b/src/utils/appUtils.js index 0a3fc50c..7b983d2b 100644 --- a/src/utils/appUtils.js +++ b/src/utils/appUtils.js @@ -43,7 +43,7 @@ export const getJobStatusBadge = (statusId) => { "32d76a02-8f44-4aa0-9b66-c3716c45a918": "bg-label-primary", // New "cfa1886d-055f-4ded-84c6-42a2a8a14a66": "bg-label-info", // Assigned "5a6873a5-fed7-4745-a52f-8f61bf3bd72d": "bg-label-warning", // In Progress - "aab71020-2fb8-44d9-9430-c9a7e9bf33b0": "bg-label-label-dark", // Review + "aab71020-2fb8-44d9-9430-c9a7e9bf33b0": "bg-label-dark", // Review "ed10ab57-dbaa-4ca5-8ecd-56745dcbdbd7": "bg-label-success", // Done "3ddeefb5-ae3c-4e10-a922-35e0a452bb69": "bg-label-secondary", // Closed "75a0c8b8-9c6a-41af-80bf-b35bab722eb2": "bg-label-danger", // On Hold