From b84275a7a3899611b8e8c9b43b2a576d07613de7 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Fri, 18 Jul 2025 17:09:49 +0530 Subject: [PATCH 1/4] fixed: employee fetching inside assign task --- src/components/Project/AssignTask.jsx | 42 ++++++++++--------- .../Project/Infrastructure/WorkArea.jsx | 2 +- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/components/Project/AssignTask.jsx b/src/components/Project/AssignTask.jsx index 8b450467..2ab01e6e 100644 --- a/src/components/Project/AssignTask.jsx +++ b/src/components/Project/AssignTask.jsx @@ -15,8 +15,7 @@ import { useCreateTask } from "../../hooks/useTasks"; const AssignTask = ({ assignData, onClose, setAssigned }) => { const maxPlanned = - assignData?.workItem?.plannedWork - - assignData?.workItem?.completedWork; + assignData?.workItem?.plannedWork - assignData?.workItem?.completedWork; const schema = z.object({ selectedEmployees: z .array(z.string()) @@ -71,7 +70,7 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => { } else { console.warn("Bootstrap is not available. Popovers might not function."); } - }, []); + }, []); const selectedProject = useSelector( (store) => store.localVariables.projectId ); @@ -79,13 +78,13 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => { employees, loading: employeeLoading, recallEmployeeData, - } = useEmployeesAllOrByProjectId(selectedProject, false); + } = useEmployeesAllOrByProjectId(false, selectedProject, false); const dispatch = useDispatch(); - const { loading } = useMaster(); - const {data:jobRoleData} = useMaster(); + const { loading } = useMaster(); + const { data: jobRoleData } = useMaster(); const [selectedRole, setSelectedRole] = useState("all"); - const [displayedSelection, setDisplayedSelection] = useState(""); + const [displayedSelection, setDisplayedSelection] = useState(""); const { handleSubmit, control, @@ -93,19 +92,19 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => { watch, formState: { errors }, reset, - trigger, + trigger, } = useForm({ defaultValues: { selectedEmployees: [], description: "", plannedTask: "", }, - resolver: zodResolver(schema), + resolver: zodResolver(schema), }); const handleCheckboxChange = (event, user) => { const isChecked = event.target.checked; - let updatedSelectedEmployees = watch("selectedEmployees") || []; + let updatedSelectedEmployees = watch("selectedEmployees") || []; if (isChecked) { if (!updatedSelectedEmployees.includes(user.id)) { @@ -117,12 +116,12 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => { ); } setValue("selectedEmployees", updatedSelectedEmployees); - trigger("selectedEmployees"); + trigger("selectedEmployees"); }; useEffect(() => { dispatch(changeMaster("Job Role")); - + return () => setSelectedRole("all"); }, [dispatch]); @@ -137,11 +136,12 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => { (emp) => String(emp.jobRoleId || "") === selectedRole ); - const onSubmit = (data) => { const selectedEmployeeIds = data.selectedEmployees; - const taskTeamWithDetails = selectedEmployeeIds?.map((empId) => empId)?.filter(Boolean); + const taskTeamWithDetails = selectedEmployeeIds + ?.map((empId) => empId) + ?.filter(Boolean); const formattedData = { taskTeam: taskTeamWithDetails, plannedTask: data.plannedTask, @@ -149,7 +149,10 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => { assignmentDate: new Date().toISOString(), workItemId: assignData?.workItem.id, }; - assignTask({payload:formattedData,workAreaId:assignData?.workArea?.id}); + assignTask({ + payload: formattedData, + workAreaId: assignData?.workArea?.id, + }); }; const closedModel = () => { @@ -234,12 +237,12 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => {
{selectedRole !== "" && (
- {loading ? ( // Assuming 'loading' here refers to master data loading + {employeeLoading ? (
-

Loading roles...

+

Loading employees...

) : filteredEmployees?.length > 0 ? ( - filteredEmployees?.map((emp) => { + filteredEmployees.map((emp) => { const jobRole = jobRoleData?.find( (role) => role?.id === emp?.jobRoleId ); @@ -331,7 +334,7 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => { "selectedEmployees", updatedSelected ); - trigger("selectedEmployees"); + trigger("selectedEmployees"); }} > @@ -348,7 +351,6 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => { {!loading && errors.selectedEmployees && (

{errors.selectedEmployees.message}

{" "} -
)} diff --git a/src/components/Project/Infrastructure/WorkArea.jsx b/src/components/Project/Infrastructure/WorkArea.jsx index c0d9ec7b..ca795a5c 100644 --- a/src/components/Project/Infrastructure/WorkArea.jsx +++ b/src/components/Project/Infrastructure/WorkArea.jsx @@ -125,7 +125,7 @@ const WorkArea = ({ workArea, floor, forBuilding }) => { {isLoading || ProjectTaskList === undefined ? (
Loading activities...
) : ProjectTaskList?.length === 0 ? ( -
Loading activities...
+
No activities available for this work area.
):ProjectTaskList?.length > 0 ? ( From 632119cfb92ed7db8df758c5525f07684b448d7e Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Fri, 18 Jul 2025 18:38:35 +0530 Subject: [PATCH 2/4] removed unused code --- src/components/Project/Infrastructure/WorkArea.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Project/Infrastructure/WorkArea.jsx b/src/components/Project/Infrastructure/WorkArea.jsx index ca795a5c..efc7c239 100644 --- a/src/components/Project/Infrastructure/WorkArea.jsx +++ b/src/components/Project/Infrastructure/WorkArea.jsx @@ -22,7 +22,7 @@ const WorkArea = ({ workArea, floor, forBuilding }) => { const [IsExpandedArea, setIsExpandedArea] = useState(false); const dispatch = useDispatch(); const [Project, setProject] = useState(); - const { projectId } = useParams(); + // const { projectId } = useParams(); const ManageInfra = useHasUserPermission(MANAGE_PROJECT_INFRA); const ManageAndAssignTak = useHasUserPermission(ASSIGN_REPORT_TASK); @@ -144,7 +144,7 @@ const WorkArea = ({ workArea, floor, forBuilding }) => { Today's Planned - {(ManageInfra || (!projectId && ManageAndAssignTak)) && ( + {(ManageInfra || ManageAndAssignTak) && ( From 56540f7521e4257bea9523adc82574993261c888 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Fri, 18 Jul 2025 19:20:31 +0530 Subject: [PATCH 3/4] changed project selection routing --- src/components/Layout/Header.jsx | 14 ++++++- src/pages/project/ProjectList.jsx | 70 +++++++++++++++++-------------- 2 files changed, 50 insertions(+), 34 deletions(-) diff --git a/src/components/Layout/Header.jsx b/src/components/Layout/Header.jsx index 476c73d0..38966865 100644 --- a/src/components/Layout/Header.jsx +++ b/src/components/Layout/Header.jsx @@ -29,7 +29,8 @@ const Header = () => { const HasManageProjectPermission = useHasUserPermission(MANAGE_PROJECT); const isDirectoryPath = /^\/directory$/.test(location.pathname); - const isDashboard = /^\/dashboard$/.test(location.pathname); + const isProjectPath = /^\/projects$/.test(location.pathname); + const isDashboard = /^\/dashboard$/.test(location.pathname) || /^\/$/.test(location.pathname) ; const getRole = (roles, joRoleId) => { if (!Array.isArray(roles)) return "User"; let role = roles.find((role) => role.id === joRoleId); @@ -159,6 +160,15 @@ const Header = () => { }; }, [handler, newProjectHandler]); + const handleProjectChange =(project)=>{ + if(isProjectPath){ + dispatch(setProjectId(project)) + navigate("/projects/details") + } else{ + dispatch(setProjectId(project)) + } + } + return (
Progress Actions
- @@ -298,8 +300,8 @@ const ProjectList = () => { }, { id: "cdad86aa-8a56-4ff4-b633-9c629057dfef", - label:"In Progress" - }, + label: "In Progress", + }, { id: "603e994b-a27f-4e5d-a251-f3d69b0498ba", label: "On Hold", @@ -342,7 +344,11 @@ const ProjectList = () => { {currentItems.length === 0 ? ( - From f0e007fe89c5025727a063c58382fbe17c93d422 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Sat, 19 Jul 2025 11:18:21 +0530 Subject: [PATCH 4/4] FixedInfra Planning issue --- src/components/Activities/InfraPlanning.jsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/Activities/InfraPlanning.jsx b/src/components/Activities/InfraPlanning.jsx index da0a9a33..6e51e9f7 100644 --- a/src/components/Activities/InfraPlanning.jsx +++ b/src/components/Activities/InfraPlanning.jsx @@ -10,7 +10,7 @@ import ProjectRepository from "../../repositories/ProjectRepository"; import Breadcrumb from "../../components/common/Breadcrumb"; import {useProjectDetails, useProjectInfra, useProjects} from "../../hooks/useProjects"; import {useHasUserPermission} from "../../hooks/useHasUserPermission"; -import {MANAGE_PROJECT_INFRA} from "../../utils/constants"; +import {APPROVE_TASK, ASSIGN_REPORT_TASK, MANAGE_PROJECT_INFRA} from "../../utils/constants"; import {useDispatch, useSelector} from "react-redux"; import {useProfile} from "../../hooks/useProfile"; import {refreshData, setProjectId} from "../../slices/localVariablesSlice"; @@ -27,6 +27,8 @@ const InfraPlanning = () => const ManageInfra = useHasUserPermission( MANAGE_PROJECT_INFRA ) + const ApprovedTaskRights = useHasUserPermission(APPROVE_TASK) + const ReportTaskRights = useHasUserPermission(ASSIGN_REPORT_TASK) const reloadedData = useSelector( ( store ) => store.localVariables.reload ) @@ -44,7 +46,7 @@ const InfraPlanning = () =>
- {ManageInfra ? ( + {(ApprovedTaskRights || ReportTaskRights) ? (
{isLoading && (

Loading...

)}
+ Project Name Contact Person
+ No projects found