Issues_Jun_3W #260

Closed
pramod.mahajan wants to merge 5 commits from Issues_Jun_3W into main
5 changed files with 27 additions and 27 deletions

View File

@ -8,6 +8,7 @@ import moment from "moment";
import usePagination from "../../hooks/usePagination"; import usePagination from "../../hooks/usePagination";
import eventBus from "../../services/eventBus"; import eventBus from "../../services/eventBus";
import { cacheData, clearCacheKey } from "../../slices/apiDataManager"; import { cacheData, clearCacheKey } from "../../slices/apiDataManager";
import { ITEMS_PER_PAGE } from "../../utils/constants";
const Regularization = ({ handleRequest }) => { const Regularization = ({ handleRequest }) => {
var selectedProject = useSelector((store) => store.localVariables.projectId); var selectedProject = useSelector((store) => store.localVariables.projectId);
@ -44,7 +45,7 @@ const Regularization = ({ handleRequest }) => {
const { currentPage, totalPages, currentItems, paginate } = usePagination( const { currentPage, totalPages, currentItems, paginate } = usePagination(
filteredData, filteredData,
20 ITEMS_PER_PAGE
); );
useEffect(() => { useEffect(() => {
eventBus.on("regularization", handler); eventBus.on("regularization", handler);
@ -85,15 +86,10 @@ const Regularization = ({ handleRequest }) => {
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{/* {loading && (
<td colSpan={6} className="text-center py-5">
Loading...
</td>
)} */}
{!loading && {!loading &&
(regularizes?.length > 0 ? ( (currentItems?.length > 0 ? (
regularizes?.map((att, index) => ( currentItems?.map((att, index) => (
<tr key={index}> <tr key={index}>
<td colSpan={2}> <td colSpan={2}>
<div className="d-flex justify-content-start align-items-center"> <div className="d-flex justify-content-start align-items-center">
@ -118,7 +114,6 @@ const Regularization = ({ handleRequest }) => {
: "--"} : "--"}
</td> </td>
<td className="text-center "> <td className="text-center ">
{/* <div className='d-flex justify-content-center align-items-center gap-3'> */}
<RegularizationActions <RegularizationActions
attendanceData={att} attendanceData={att}
handleRequest={handleRequest} handleRequest={handleRequest}

View File

@ -14,6 +14,8 @@ import {
getProjectStatusName, getProjectStatusName,
} from "../../utils/projectStatus"; } from "../../utils/projectStatus";
import GlobalModel from "../common/GlobalModel"; import GlobalModel from "../common/GlobalModel";
import { useDispatch } from "react-redux";
import { setProjectId } from "../../slices/localVariablesSlice";
const ProjectCard = ({ projectData, recall }) => { const ProjectCard = ({ projectData, recall }) => {
const [ projectInfo, setProjectInfo ] = useState( projectData ); const [ projectInfo, setProjectInfo ] = useState( projectData );
@ -22,6 +24,7 @@ const ProjectCard = ({ projectData, recall }) => {
); );
const [showModal, setShowModal] = useState(false); const [showModal, setShowModal] = useState(false);
const navigate = useNavigate(); const navigate = useNavigate();
const dispatch = useDispatch()
const ManageProject = useHasUserPermission(MANAGE_PROJECT); const ManageProject = useHasUserPermission(MANAGE_PROJECT);
const { const {
mutate: updateProject, mutate: updateProject,
@ -57,6 +60,7 @@ const ProjectCard = ({ projectData, recall }) => {
const handleClose = () => setShowModal(false); const handleClose = () => setShowModal(false);
const handleViewProject = () => { const handleViewProject = () => {
dispatch(setProjectId(projectInfo.id))
navigate(`/projects/details`); navigate(`/projects/details`);
}; };
@ -71,7 +75,6 @@ const ProjectCard = ({ projectData, recall }) => {
return ( return (
<> <>
{showModal && projects_Details && ( {showModal && projects_Details && (
<GlobalModel isOpen={showModal} closeModal={handleClose}> <GlobalModel isOpen={showModal} closeModal={handleClose}>
<ManageProjectInfo <ManageProjectInfo

View File

@ -112,18 +112,20 @@ export const useEmployeesByProject = (projectId) => {
}; };
// EmployeeList.jsx // EmployeeList.jsx
export const useEmployeesAllOrByProjectId = (projectId, showInactive) => { export const useEmployeesAllOrByProjectId = (showAllEmployees ,projectId,
const isAllEmployees = !projectId && projectId !== undefined; showInactive) => {
const queryKey = isAllEmployees
const queryKey = showAllEmployees
? ['allEmployees', showInactive] ? ['allEmployees', showInactive]
: ['projectEmployees', projectId]; : ['projectEmployees', projectId, showInactive];
const queryFn = async () => { const queryFn = async () => {
if (isAllEmployees) { if (showAllEmployees) {
const res = await EmployeeRepository.getAllEmployeeList(showInactive); const res = await EmployeeRepository.getAllEmployeeList(showInactive);
return res.data; return res.data;
} else { } else {
if (!projectId) return [];
const res = await EmployeeRepository.getEmployeeListByproject(projectId); const res = await EmployeeRepository.getEmployeeListByproject(projectId);
return res.data; return res.data;
} }
@ -137,7 +139,7 @@ export const useEmployeesAllOrByProjectId = (projectId, showInactive) => {
} = useQuery({ } = useQuery({
queryKey, queryKey,
queryFn, queryFn,
enabled: isAllEmployees || !!projectId, enabled:typeof showInactive === "boolean" && (showAllEmployees || !!projectId),
}); });
return { return {

View File

@ -51,7 +51,7 @@ const EmployeeList = () => {
const { employees, loading, setLoading, error, recallEmployeeData } = const { employees, loading, setLoading, error, recallEmployeeData } =
useEmployeesAllOrByProjectId( useEmployeesAllOrByProjectId(
showAllEmployees ? null : selectedProjectId, showAllEmployees ,selectedProjectId,
showInactive showInactive
); );
@ -153,13 +153,7 @@ const EmployeeList = () => {
} }
}; };
const handleToggle = (e) => {
setShowInactive(e.target.checked);
recallEmployeeData(
e.target.checked,
showAllEmployees ? null : selectedProjectId
); // Use selectedProjectId here
};
const handleAllEmployeesToggle = (e) => { const handleAllEmployeesToggle = (e) => {
const isChecked = e.target.checked; const isChecked = e.target.checked;
@ -340,7 +334,7 @@ const EmployeeList = () => {
role="switch" role="switch"
id="inactiveEmployeesCheckbox" id="inactiveEmployeesCheckbox"
checked={showInactive} checked={showInactive}
onChange={handleToggle} onChange={()=> setShowInactive(e.target.checked)}
/> />
<label <label
className="form-check-label ms-0" className="form-check-label ms-0"

View File

@ -20,8 +20,11 @@ import showToast from "../../services/toastService";
import { getCachedData, cacheData } from "../../slices/apiDataManager"; import { getCachedData, cacheData } from "../../slices/apiDataManager";
import GlobalModel from "../../components/common/GlobalModel"; import GlobalModel from "../../components/common/GlobalModel";
import {formatNumber} from "../../utils/dateUtils"; import {formatNumber} from "../../utils/dateUtils";
import { setProjectId } from "../../slices/localVariablesSlice";
import { useDispatch } from "react-redux";
const ProjectListView = ({ projectData, recall }) => { const ProjectListView = ({ projectData, recall }) => {
const dispatch = useDispatch()
const [projectInfo, setProjectInfo] = useState(projectData); const [projectInfo, setProjectInfo] = useState(projectData);
const { projects_Details, loading, error, refetch } = useProjectDetails( const { projects_Details, loading, error, refetch } = useProjectDetails(
projectInfo?.id,false projectInfo?.id,false
@ -89,7 +92,10 @@ const ProjectListView = ({ projectData, recall }) => {
<td className="text-start" colSpan={5}> <td className="text-start" colSpan={5}>
<span <span
className="text-primary cursor-pointer" className="text-primary cursor-pointer"
onClick={() => navigate(`/projects/details`)} onClick={() => {
dispatch(setProjectId(projectInfo.id))
navigate(`/projects/details`)
}}
> >
{projectInfo.shortName {projectInfo.shortName
? `${projectInfo.name} (${projectInfo.shortName})` ? `${projectInfo.name} (${projectInfo.shortName})`