diff --git a/src/components/Charts/HorizontalBarChart.jsx b/src/components/Charts/HorizontalBarChart.jsx index 7335919e..aec31736 100644 --- a/src/components/Charts/HorizontalBarChart.jsx +++ b/src/components/Charts/HorizontalBarChart.jsx @@ -124,7 +124,7 @@ const HorizontalBarChart = ({
diff --git a/src/components/Project/AssignEmployeeTable.jsx b/src/components/Project/AssignEmployeeTable.jsx index caf63a52..eeed33fa 100644 --- a/src/components/Project/AssignEmployeeTable.jsx +++ b/src/components/Project/AssignEmployeeTable.jsx @@ -4,18 +4,12 @@ import { useForm } from "react-hook-form"; import { z } from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; - - - - - export const roleSchema = z.object({ jobRole: z.string().min(1, "Job Role is required"), isChecked: z.literal(true, { errorMap: () => ({ message: "You must check the box first" }), }), -} ); - +}); const AssignEmployeeTable = ({ employee, @@ -24,7 +18,9 @@ const AssignEmployeeTable = ({ onRoleChange, onCheckboxChange, }) => { - const [currentJobRole, setCurrentJobRole] = useState(employee.jobRoleId?.toString() || ""); + const [currentJobRole, setCurrentJobRole] = useState( + employee.jobRoleId?.toString() || "" + ); const { register, handleSubmit, @@ -81,27 +77,28 @@ const AssignEmployeeTable = ({
- {employee.firstName} {employee.lastName} + {employee.firstName} {employee.middleName} {employee.lastName}
-
- - +
+
{errors.jobRole && (
{errors.jobRole.message}
@@ -110,7 +107,7 @@ const AssignEmployeeTable = ({
{errors.isChecked.message}
- )} + )} @@ -127,4 +124,3 @@ const AssignEmployeeTable = ({ }; export default AssignEmployeeTable; - diff --git a/src/components/Project/Teams.jsx b/src/components/Project/Teams.jsx index e6029987..4563c70f 100644 --- a/src/components/Project/Teams.jsx +++ b/src/components/Project/Teams.jsx @@ -1,5 +1,7 @@ import React, { useState, useEffect } from "react"; import MapUsers from "./MapUsers"; +import { Link, NavLink, useNavigate } from "react-router-dom"; + import showToast from "../../services/toastService"; import Avatar from "../common/Avatar"; import moment from "moment"; @@ -20,28 +22,30 @@ const Teams = ({ project }) => { const [empJobRoles, setEmpJobRoles] = useState(null); const [employees, setEmployees] = useState([]); const [filteredEmployees, setFilteredEmployees] = useState([]); - const [ removingEmployeeId, setRemovingEmployeeId ] = useState( null ); - const [ assignedLoading, setAssignedLoading ] = useState( false ) - const [employeeLodaing,setEmployeeLoading] = useState(false) + const [removingEmployeeId, setRemovingEmployeeId] = useState(null); + const [assignedLoading, setAssignedLoading] = useState(false); + const [employeeLodaing, setEmployeeLoading] = useState(false); + + const navigate = useNavigate(); const HasAssignUserPermission = useHasUserPermission(ASSIGN_TO_PROJECT); const fetchEmployees = async () => { - try - { - setEmployeeLoading(true) - + try { + setEmployeeLoading(true); + // if (!empRoles) { ProjectRepository.getProjectAllocation(project.id) .then((response) => { setEmployees(response.data); - setFilteredEmployees( response.data.filter( ( emp ) => emp.isActive ) ); - setEmployeeLoading(false) + console.log(response.data); + setFilteredEmployees(response.data.filter((emp) => emp.isActive)); + setEmployeeLoading(false); }) .catch((error) => { console.error(error); - setError( "Failed to fetch data." ); - setEmployeeLoading(false) + setError("Failed to fetch data."); + setEmployeeLoading(false); }); } catch (err) { setError("Failed to fetch activities."); @@ -53,8 +57,8 @@ const Teams = ({ project }) => { .then((response) => { showToast("Details updated successfully.", "success"); fetchEmployees(); - setRemovingEmployeeId( null ); - setAssignedLoading(false) + setRemovingEmployeeId(null); + setAssignedLoading(false); }) .catch((error) => { showToast(error.message, "error"); @@ -190,7 +194,7 @@ const Teams = ({ project }) => {
- {employeeLodaing && (

Loading..

)} + {employeeLodaing &&

Loading..

} {!employeeLodaing && employees && employees.length > 0 && ( @@ -204,7 +208,7 @@ const Teams = ({ project }) => { {filteredEmployees && - filteredEmployees.map( ( item ) => ( + filteredEmployees.map((item) => ( - ) )} + ))}
{" "} - {moment( item.allocationDate ).format( + {moment(item.allocationDate).format( "DD-MMM-YYYY" )}{" "} {item.reAllocationDate - ? moment( item.reAllocationDate ).format( - "DD-MMM-YYYY" - ) + ? moment(item.reAllocationDate).format( + "DD-MMM-YYYY" + ) : "Present"} - {getRole( item.jobRoleId )} + {getRole(item.jobRoleId)} @@ -255,26 +256,31 @@ const Teams = ({ project }) => { type="button" title="Remove from project" className="btn p-0 dropdown-toggle hide-arrow" - onClick={() => removeAllocation( item )} + onClick={() => removeAllocation(item)} > {" "} - {removingEmployeeId === item.id ?
- Loading... -
: } - + {removingEmployeeId === item.id ? ( +
+ + Loading... + +
+ ) : ( + + )} )} {!item.isActive && Not in project}
)} - {(!employeeLodaing && employees.length == 0 ) && ( + {!employeeLodaing && employees.length == 0 && ( No employees assigned to the project )}
diff --git a/src/hooks/useSearch.js b/src/hooks/useSearch.js index 14c66989..fcba7230 100644 --- a/src/hooks/useSearch.js +++ b/src/hooks/useSearch.js @@ -11,7 +11,8 @@ const useSearch = (data, query) => { return data.filter( (item) => item.firstName.toLowerCase().includes(searchQuery.toLowerCase()) || - item.lastName.toLowerCase().includes(searchQuery.toLowerCase()) || + item.middleName?.toLowerCase().includes(searchQuery.toLowerCase()) || + item.lastName?.toLowerCase().includes(searchQuery.toLowerCase()) || item.phoneNumber.toLowerCase().includes(searchQuery.toLowerCase()) ); }; diff --git a/src/pages/employee/EmployeeList.jsx b/src/pages/employee/EmployeeList.jsx index b61abc05..a71abd40 100644 --- a/src/pages/employee/EmployeeList.jsx +++ b/src/pages/employee/EmployeeList.jsx @@ -428,7 +428,8 @@ const EmployeeList = () => { className="text-heading text-truncate cursor-pointer" > - {item.firstName} {item.lastName} + {item.firstName} {item.middleName} + {item.lastName}