From 8eb34addcda9d57ef85105534f11887f6f6037c8 Mon Sep 17 00:00:00 2001 From: "pramod.mahajan" Date: Mon, 17 Nov 2025 10:57:48 +0530 Subject: [PATCH] added serviceproject list --- src/components/ServiceProject/JobList.jsx | 6 +- .../ServiceProject/JobStatusLog.jsx | 64 +++++------ .../ServiceProject/ManageJobTicket.jsx | 12 +- .../ServiceProjectTeam/ProjectTeam.jsx | 7 +- .../ServiceProjectTeamAllocation.jsx | 20 ++-- .../ServiceProjectTeamList.jsx | 107 ++++++++++++++++-- .../common/Forms/SelectFieldServerSide.jsx | 4 +- src/services/signalRService.js | 18 +++ 8 files changed, 172 insertions(+), 66 deletions(-) diff --git a/src/components/ServiceProject/JobList.jsx b/src/components/ServiceProject/JobList.jsx index e6d073d2..5b3633bc 100644 --- a/src/components/ServiceProject/JobList.jsx +++ b/src/components/ServiceProject/JobList.jsx @@ -9,14 +9,14 @@ import { useParams } from "react-router-dom"; import ProjectPage from "../../pages/project/ProjectPage"; import { useServiceProjectJobContext } from "./Jobs"; -const JobList = ({ filterByProject }) => { +const JobList = () => { const { setSelectedJob, setManageJob } = useServiceProjectJobContext(); - const { id } = useParams(); + const { projectId } = useParams(); const { data, isLoading, isError, error } = useServiceProjectJobs( ITEMS_PER_PAGE, 1, true, - filterByProject ?? id + projectId ); const jobGrid = [ diff --git a/src/components/ServiceProject/JobStatusLog.jsx b/src/components/ServiceProject/JobStatusLog.jsx index cb8300b4..44cd0bfb 100644 --- a/src/components/ServiceProject/JobStatusLog.jsx +++ b/src/components/ServiceProject/JobStatusLog.jsx @@ -2,55 +2,53 @@ import React from "react"; import Avatar from "../common/Avatar"; const JobStatusLog = ({ data }) => { - console.log(data) + console.log(data); return (
- {data?.map((item) => ( - -
-
+
+
- {item.nextStatus?.displayName ?? item.status?.displayName ?? "Status"} + {item.nextStatus?.displayName ?? + item.status?.displayName ?? + "Status"}
- + {/* Level {item.nextStatus?.level ?? item.status?.level} - + */}
-
- -
-
- - {item.updatedBy?.firstName} {item.updatedBy?.lastName} - - - {/* {formatUTCToLocalTime(item?.createdAt, true)} */} - -
-
- {item?.updatedBy?.jobRoleName} -
-
-

{item.comment}

- -
+
+ +
+
+ + {item.updatedBy?.firstName} {item.updatedBy?.lastName} + + + {/* {formatUTCToLocalTime(item?.createdAt, true)} */} + +
+
+ {item?.updatedBy?.jobRoleName} +
+
+

{item.comment}

+
))} -
diff --git a/src/components/ServiceProject/ManageJobTicket.jsx b/src/components/ServiceProject/ManageJobTicket.jsx index 3637931b..7339c9a8 100644 --- a/src/components/ServiceProject/ManageJobTicket.jsx +++ b/src/components/ServiceProject/ManageJobTicket.jsx @@ -16,7 +16,7 @@ const ManageJobTicket = ({ Job }) => { const tabsData = [ { id: "comment", - title: "Coments", + title: "Comments", icon:"bx bx-comment me-2", active: true, content: , @@ -58,7 +58,7 @@ const ManageJobTicket = ({ Job }) => { {" "} {" "} - Due To : {formatUTCToLocalTime(data?.startDate)} + Due on : {formatUTCToLocalTime(data?.startDate)}
@@ -71,9 +71,9 @@ const ManageJobTicket = ({ Job }) => { firstName={data?.createdBy?.firstName} lastName={data?.createdBy?.lastName} />{" "} -
+

{`${data?.createdBy?.firstName} ${data?.createdBy?.lastName}`}

- {data?.createdBy?.jobRoleName} + ({data?.createdBy?.jobRoleName})
@@ -84,9 +84,9 @@ const ManageJobTicket = ({ Job }) => { {data?.assignees?.map((emp)=>(
-
+

{`${emp.firstName} ${emp.lastName}`}

- {emp.jobRoleName} + ( {emp.jobRoleName} )
))} diff --git a/src/components/ServiceProject/ServiceProjectTeam/ProjectTeam.jsx b/src/components/ServiceProject/ServiceProjectTeam/ProjectTeam.jsx index ffaf8b84..05cd3c69 100644 --- a/src/components/ServiceProject/ServiceProjectTeam/ProjectTeam.jsx +++ b/src/components/ServiceProject/ServiceProjectTeam/ProjectTeam.jsx @@ -1,6 +1,7 @@ import React from 'react' import { useModal } from '../../../hooks/useAuth' import { useParams } from 'react-router-dom'; +import ServiceProjectTeamList from './ServiceProjectTeamList'; const ProjectTeam = () => { @@ -8,13 +9,13 @@ const {onOpen} = useModal("ServiceTeamAllocation"); const {projectId}= useParams(); return ( -
+
-
+
- {/* */} +
) } diff --git a/src/components/ServiceProject/ServiceProjectTeam/ServiceProjectTeamAllocation.jsx b/src/components/ServiceProject/ServiceProjectTeam/ServiceProjectTeamAllocation.jsx index 545f07da..b3d5b16c 100644 --- a/src/components/ServiceProject/ServiceProjectTeam/ServiceProjectTeamAllocation.jsx +++ b/src/components/ServiceProject/ServiceProjectTeam/ServiceProjectTeamAllocation.jsx @@ -57,7 +57,7 @@ const ServiceProjectTeamAllocation = () => { isActive: true, }; }); - AllocationTeam({ payload, isActive: true }); + AllocationTeam({ payload, isActive: true }); }; const handleDeAllocation = (emp) => { @@ -71,16 +71,13 @@ const ServiceProjectTeamAllocation = () => { }, ]; - AllocationTeam({payload:payload,isActive:false}); + AllocationTeam({ payload: payload, isActive: false }); }; useEffect(() => { - if(selectedEmployees?.length > 0 && !selectedTeam){ - handleRemove(selectedEmployees[0]?.id) - showToast( - `Please select a first role`, - "warning" - ); - } + if (selectedEmployees?.length > 0 && !selectedTeam) { + handleRemove(selectedEmployees[0]?.id); + showToast(`Please select a first role`, "warning"); + } if (Team?.length > 0 && selectedEmployees?.length > 0) { setNonDuplicateEmployee((prev) => { let updated = [...prev]; @@ -113,7 +110,7 @@ const ServiceProjectTeamAllocation = () => { className="btn btn-sm btn-primary" onClick={() => setIsMenageEmployee(!isManageEmployee)} > - Manage Employee + Add Employee
@@ -137,6 +134,7 @@ const ServiceProjectTeamAllocation = () => {
{ )}
- {(selectedEmployees?.length > 0 && isManageEmployee ) && ( + {selectedEmployees?.length > 0 && isManageEmployee && (
{" "}
{isLoading && ( -
  • Loading...
  • +
  • Loading...
  • )} {!isLoading && options.length === 0 && ( -
  • No results found
  • +
  • No results found
  • )} {!isLoading && diff --git a/src/services/signalRService.js b/src/services/signalRService.js index 49607c80..b38fc488 100644 --- a/src/services/signalRService.js +++ b/src/services/signalRService.js @@ -140,6 +140,24 @@ export function startSignalR(loggedUser) { ) { emitters.image_gallery(); } + + // --- Service Project ---------------- + + if (keyword === "Service_Project") { + queryClient.invalidateQueries(["serviceProjects"]); + queryClient.invalidateQueries(["serviceProject"]); + } + + if (keyword === "Service_Project_Allocation") { + queryClient.invalidateQueries(["serviceProjectTeam"]); + } + if (keyword === "Job_Ticket") { + queryClient.invalidateQueries(["serviceProjectJobs"]); + queryClient.invalidateQueries(["service-job"]); + } + if (keyword === "Job_Ticket_Comment") { + queryClient.invalidateQueries(["jobComments"]); + } }); connection.start();