Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management

This commit is contained in:
ashutosh.nehete 2025-09-22 13:13:22 +05:30
commit 69cc3b9383
3 changed files with 83 additions and 98 deletions

View File

@ -54,7 +54,7 @@ const Teams = () => {
projectEmployees, projectEmployees,
loading: employeeLodaing, loading: employeeLodaing,
refetch, refetch,
} = useEmployeesByProjectAllocated(projectId,selectedService); } = useEmployeesByProjectAllocated(projectId, selectedService);
const { const {
mutate: submitAllocations, mutate: submitAllocations,
isPending, isPending,
@ -154,34 +154,34 @@ const Teams = () => {
setEmpJobRoles(data); setEmpJobRoles(data);
} }
}, [data]); }, [data]);
const filterAndSearchEmployees = useCallback(() => { const filterAndSearchEmployees = useCallback(() => {
const statusFiltered = employees.filter((emp) => const statusFiltered = employees.filter((emp) =>
activeEmployee ? emp.isActive : !emp.isActive activeEmployee ? emp.isActive : !emp.isActive
);
if (searchTerm === "") {
setFilteredEmployees(statusFiltered);
return;
}
const lowercasedSearchTerm = searchTerm.toLowerCase();
const searchedAndFiltered = statusFiltered.filter((item) => {
const fullName = `${item.firstName} ${item.middleName} ${item.lastName}`.toLowerCase();
const roleName = getRole(item.jobRoleId).toLowerCase();
const orgName = (item.organizationName || "").toLowerCase();
const serviceName = (item.serviceName || "").toLowerCase();
return (
fullName.includes(lowercasedSearchTerm) ||
roleName.includes(lowercasedSearchTerm) ||
orgName.includes(lowercasedSearchTerm) ||
serviceName.includes(lowercasedSearchTerm)
); );
});
setFilteredEmployees(searchedAndFiltered); if (searchTerm === "") {
}, [employees, activeEmployee, searchTerm, getRole]); setFilteredEmployees(statusFiltered);
return;
}
const lowercasedSearchTerm = searchTerm.toLowerCase();
const searchedAndFiltered = statusFiltered.filter((item) => {
const fullName = `${item.firstName} ${item.middleName} ${item.lastName}`.toLowerCase();
const roleName = getRole(item.jobRoleId).toLowerCase();
const orgName = (item.organizationName || "").toLowerCase();
const serviceName = (item.serviceName || "").toLowerCase();
return (
fullName.includes(lowercasedSearchTerm) ||
roleName.includes(lowercasedSearchTerm) ||
orgName.includes(lowercasedSearchTerm) ||
serviceName.includes(lowercasedSearchTerm)
);
});
setFilteredEmployees(searchedAndFiltered);
}, [employees, activeEmployee, searchTerm, getRole]);
useEffect(() => { useEffect(() => {
@ -269,17 +269,17 @@ const filterAndSearchEmployees = useCallback(() => {
<div className="row d-flex justify-content-between mb-4"> <div className="row d-flex justify-content-between mb-4">
<div className="col-md-6 col-12 d-flex align-items-center"> <div className="col-md-6 col-12 d-flex align-items-center">
<div className="dataTables_length text-start py-1 px-0 col-md-4 col-12"> <div className="dataTables_length text-start py-1 px-0 col-md-4 col-12">
{servicesLoading ? null : assignedServices && assignedServices.length > 0 ? ( {!servicesLoading && assignedServices?.length > 0 && (
assignedServices.length > 1 ? ( assignedServices.length > 1 ? (
<label> <label>
<select <select
name="serviceFilter" name="DataTables_Table_0_length"
aria-controls="DataTables_Table_0" aria-controls="DataTables_Table_0"
className="form-select form-select-sm" className="form-select form-select-sm"
aria-label="Select Service" aria-label="Select Service"
value={selectedService} value={selectedService}
onChange={handleServiceChange} onChange={handleServiceChange}
style={{ fontSize: "0.875rem", height: "32px", width: "190px" }} style={{ fontSize: "0.875rem", height: "35px", width: "190px" }}
> >
<option value="">All Services</option> <option value="">All Services</option>
{assignedServices.map((service) => ( {assignedServices.map((service) => (
@ -290,18 +290,10 @@ const filterAndSearchEmployees = useCallback(() => {
</select> </select>
</label> </label>
) : ( ) : (
<div> <h5>{assignedServices[0].name}</h5>
<h5>{assignedServices[0].name}</h5>
</div>
) )
) : (
<div>
</div>
)} )}
</div> </div>
</div> </div>
<div className="col-md-6 col-12 d-flex justify-content-end align-items-center"> <div className="col-md-6 col-12 d-flex justify-content-end align-items-center">
<div className="form-check form-switch me-2 mt-2"> <div className="form-check form-switch me-2 mt-2">

View File

@ -167,45 +167,34 @@ const DailyTask = () => {
{!selectedProject && (<div className="text-center text-muted">Please Select Project</div>)} {!selectedProject && (<div className="text-center text-muted">Please Select Project</div>)}
<div className="d-flex align-items-center justify-content-between mb-2"> <div className="d-flex align-items-center justify-content-between mb-2">
{/* --- Left: Service Dropdown + Filter Icon --- */} {/* --- Left: Service Dropdown + Filter Icon --- */}
<div className="d-flex align-items-center gap-6"> <div className="d-flex align-items-center gap-6">
<div className="me-3"> <div className="me-3">
{servicesLoading ? ( {!servicesLoading && assignedServices?.length > 0 && (
<span></span> assignedServices.length > 1 ? (
) : assignedServices?.length > 1 ? ( <label>
<select <select
name="serviceSelect" name="DataTables_Table_0_length"
className="form-select form-select-sm" aria-controls="DataTables_Table_0"
value={selectedService} className="form-select form-select-sm"
onChange={handleServiceChange} aria-label="Select Service"
style={{ fontSize: "0.875rem", height: "32px", minWidth: "190px" }} value={selectedService}
> onChange={handleServiceChange}
{assignedServices.map((service) => ( style={{ fontSize: "0.875rem", height: "35px", width: "190px" }}
<option key={service.id} value={service.id}> >
{service.name} <option value="">All Services</option>
</option> {assignedServices.map((service) => (
))} <option key={service.id} value={service.id}>
</select> {service.name}
) : ( </option>
<div ))}
className="ms-4 mt-2" </select>
> </label>
{assignedServices?.length === 1 ) : (
? <h5>{assignedServices[0].name}</h5> <h5>{assignedServices[0].name}</h5>
: "No service available"} )
</div>
)} )}
</div> </div>
{/* <FilterIcon
taskListData={TaskList}
onApplyFilters={setFilters}
currentSelectedBuilding={filters.selectedBuilding}
currentSelectedFloors={filters.selectedFloors}
currentSelectedActivities={filters.selectedActivities}
selectedProject={selectedProject}
/> */}
</div> </div>
{/* --- Right: DateRangePicker --- */} {/* --- Right: DateRangePicker --- */}
@ -291,7 +280,6 @@ const DailyTask = () => {
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -38,30 +38,35 @@ const TaskPlannng = () => {
<div className="card"> <div className="card">
<div className="card-body"> <div className="card-body">
{/* Service Dropdown */} {/* Service Dropdown */}
<div className="mb-1 ms-2">
{assignedServices?.length > 1 ? ( <div
<select className="dataTables_length text-start py-2 px-5 col-md-4 col-12"
id="serviceSelect" id="DataTables_Table_0_length"
className="form-select" >
value={selectedService} {!servicesLoading && assignedServices?.length > 0 && (
onChange={handleServiceChange} assignedServices.length > 1 ? (
style={{ fontSize: "0.875rem", height: "35px", width: "190px" }} <label>
> <select
{assignedServices.map((service) => ( name="DataTables_Table_0_length"
<option key={service.id} value={service.id}> aria-controls="DataTables_Table_0"
{service.name} className="form-select form-select-sm"
</option> aria-label="Select Service"
))} value={selectedService}
</select> onChange={handleServiceChange}
) : ( style={{ fontSize: "0.875rem", height: "35px", width: "190px" }}
<div >
className="text-start" <option value="">All Services</option>
> {assignedServices.map((service) => (
{assignedServices?.length === 1 <option key={service.id} value={service.id}>
? <h5>{ assignedServices[0].name}</h5> {service.name}
: "No service available"} </option>
</div> ))}
</select>
</label>
) : (
<h5>{assignedServices[0].name}</h5>
)
)} )}
</div> </div>