Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management
This commit is contained in:
commit
69cc3b9383
@ -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">
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user