Compare commits

...

7 Commits

Author SHA1 Message Date
Pramod Mahajan
20c9dca759 added formatNumber at globally for reusable 2025-07-04 11:29:24 +05:30
Pramod Mahajan
5949e7c277 improved empty state UI when no projects are found 2025-07-04 11:10:22 +05:30
Pramod Mahajan
a107041153 chnanged status color, becuase Active status is hold success color, therefor chnages success to primary for In-progress status 2025-07-04 10:53:53 +05:30
Pramod Mahajan
ca476d6f6e removed unused code 2025-07-04 10:52:07 +05:30
Pramod Mahajan
2e54ed1dd9 display project Name at header when location have project details 2025-07-04 10:51:41 +05:30
Pramod Mahajan
4c6e0b5c9e added project status - 'In-Progress' 2025-07-04 10:50:57 +05:30
Pramod Mahajan
9961b4aba7 removed unused code 2025-07-04 10:49:35 +05:30
7 changed files with 24 additions and 70 deletions

View File

@ -183,7 +183,6 @@ const Header = () => {
<> <>
<i <i
className="rounded-circle bx bx-building-house bx-sm-lg bx-md" className="rounded-circle bx bx-building-house bx-sm-lg bx-md"
></i> ></i>
<div className="btn-group"> <div className="btn-group">
<button <button
@ -231,6 +230,7 @@ const Header = () => {
)} )}
</div> </div>
)} )}
{isProjectPath && (<span className=" fs-5 align-items-center"><i className="rounded-circle bx bx-building-house bx-sm-lg bx-md me-2"></i>{displayText}</span>)}
<ul className="navbar-nav flex-row align-items-center ms-md-auto"> <ul className="navbar-nav flex-row align-items-center ms-md-auto">
<li className="nav-item dropdown-shortcuts navbar-dropdown dropdown me-2 me-xl-0"> <li className="nav-item dropdown-shortcuts navbar-dropdown dropdown me-2 me-xl-0">

View File

@ -13,6 +13,7 @@ import FilterIcon from "../../components/common/FilterIcon";
import GlobalModel from "../../components/common/GlobalModel"; import GlobalModel from "../../components/common/GlobalModel";
import AssignTask from "../../components/Project/AssignTask"; import AssignTask from "../../components/Project/AssignTask";
import SubTask from "../../components/Activities/SubTask"; import SubTask from "../../components/Activities/SubTask";
import {formatNumber} from "../../utils/dateUtils";
const DailyTask = () => { const DailyTask = () => {
const [searchParams] = useSearchParams(); const [searchParams] = useSearchParams();
@ -147,10 +148,6 @@ const DailyTask = () => {
}; };
const formatNumber = (num) => {
if (num == null || isNaN(num)) return "NA";
return Number.isInteger(num) ? num : num.toFixed(2);
};
return ( return (
<> <>
{isModalOpen && <GlobalModel isOpen={isModalOpen} size="md" closeModal={handlecloseModal} > {isModalOpen && <GlobalModel isOpen={isModalOpen} size="md" closeModal={handlecloseModal} >

View File

@ -198,9 +198,6 @@ const handleAllEmployeesToggle = (e) => {
setShowInactive(false); setShowInactive(false);
setShowAllEmployees(isChecked); setShowAllEmployees(isChecked);
if (!isChecked) {
setSelectedProject(selectedProjectId || "");
}
}; };
const handleEmployeeModel = (id) => { const handleEmployeeModel = (id) => {

View File

@ -42,7 +42,8 @@ const ProjectList = () => {
"b74da4c2-d07e-46f2-9919-e75e49b12731", "b74da4c2-d07e-46f2-9919-e75e49b12731",
"603e994b-a27f-4e5d-a251-f3d69b0498ba", "603e994b-a27f-4e5d-a251-f3d69b0498ba",
"ef1c356e-0fe0-42df-a5d3-8daee355492d", "ef1c356e-0fe0-42df-a5d3-8daee355492d",
"33deaef9-9af1-4f2a-b443-681ea0d04f81", "cdad86aa-8a56-4ff4-b633-9c629057dfef",
"33deaef9-9af1-4f2a-b443-681ea0d04f81",
]); ]);
const handleShow = () => setShowModal(true); const handleShow = () => setShowModal(true);
@ -207,6 +208,10 @@ const ProjectList = () => {
id: "b74da4c2-d07e-46f2-9919-e75e49b12731", id: "b74da4c2-d07e-46f2-9919-e75e49b12731",
label: "Active", label: "Active",
}, },
{
id: "cdad86aa-8a56-4ff4-b633-9c629057dfef",
label:"In Progress"
},
{ {
id: "603e994b-a27f-4e5d-a251-f3d69b0498ba", id: "603e994b-a27f-4e5d-a251-f3d69b0498ba",
label: "On Hold", label: "On Hold",
@ -263,11 +268,11 @@ const ProjectList = () => {
{listView ? ( {listView ? (
<div className="card cursor-pointer"> <div className="card cursor-pointer">
<div className="card-body p-2"> <div className="card-body p-2">
<div className="table-responsive text-nowrap py-2 "> <div className="table-responsive text-nowrap py-2 " style={{minHeight:"400px"}}>
<table className="table m-3"> <table className="table m-3">
<thead> <thead>
<tr> <tr>
<th className="text-start" colSpan={5}> <th className="text-start" colSpan={5} >
Project Name Project Name
</th> </th>
<th className="mx-2 text-start">Contact Person</th> <th className="mx-2 text-start">Contact Person</th>
@ -290,6 +295,10 @@ const ProjectList = () => {
id: "b74da4c2-d07e-46f2-9919-e75e49b12731", id: "b74da4c2-d07e-46f2-9919-e75e49b12731",
label: "Active", label: "Active",
}, },
{
id: "cdad86aa-8a56-4ff4-b633-9c629057dfef",
label:"In Progress"
},
{ {
id: "603e994b-a27f-4e5d-a251-f3d69b0498ba", id: "603e994b-a27f-4e5d-a251-f3d69b0498ba",
label: "On Hold", label: "On Hold",
@ -331,8 +340,8 @@ const ProjectList = () => {
</thead> </thead>
<tbody className="table-border-bottom-0 overflow-auto "> <tbody className="table-border-bottom-0 overflow-auto ">
{currentItems.length === 0 ? ( {currentItems.length === 0 ? (
<tr> <tr className="text-center">
<td colSpan="12" className="text-center py-4"> <td colSpan="12" rowSpan='12'style={{height:"200px"}} >
No projects found No projects found
</td> </td>
</tr> </tr>

View File

@ -19,6 +19,7 @@ import ManageProjectInfo from "../../components/Project/ManageProjectInfo";
import showToast from "../../services/toastService"; 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";
const ProjectListView = ({ projectData, recall }) => { const ProjectListView = ({ projectData, recall }) => {
const [projectInfo, setProjectInfo] = useState(projectData); const [projectInfo, setProjectInfo] = useState(projectData);
@ -73,63 +74,8 @@ const ProjectListView = ({ projectData, recall }) => {
} }
}; };
// const handleFormSubmit = (updatedProject) => {
// if (projectInfo?.id) {
// ProjectRepository.updateProject(projectInfo.id, updatedProject)
// .then((response) => {
// const updatedProjectData = {
// ...projectInfo,
// ...response.data,
// building: projectDetails?.building,
// };
// setProjectInfo(updatedProjectData);
// if (getCachedData(`projectinfo-${projectInfo.id}`)) {
// cacheData(`projectinfo-${projectInfo.id}`, updatedProjectData);
// }
// const projects_list = getCachedData("projectslist");
// if (projects_list) {
// const updatedProjectsList = projects_list.map((project) =>
// project.id === projectInfo.id
// ? {
// ...project,
// ...response.data,
// // tenant: project.tenant
// }
// : project
// );
// cacheData("projectslist", updatedProjectsList);
// }
// recall(getCachedData("projectslist"));
// showToast("Project updated successfully.", "success");
// setShowModal(false);
// })
// .catch((error) => {
// showToast(error.message, "error");
// });
// }
// };
return ( return (
<> <>
{/* {showModal && projects_Details && (
<tr>
<td
className="modal fade show"
tabIndex="-1"
role="dialog"
style={{ display: "block" }}
aria-hidden="false"
>
<ManageProjectInfo
project={projects_Details}
handleSubmitForm={handleFormSubmit}
onClose={handleClose}
/>
</td>
</tr>
)} */}
{showModal && projects_Details && ( {showModal && projects_Details && (
<GlobalModel isOpen={showModal} closeModal={handleClose}> <ManageProjectInfo <GlobalModel isOpen={showModal} closeModal={handleClose}> <ManageProjectInfo
project={projects_Details} project={projects_Details}
@ -162,7 +108,7 @@ const ProjectListView = ({ projectData, recall }) => {
? moment(projectInfo.endDate).format("DD-MMM-YYYY") ? moment(projectInfo.endDate).format("DD-MMM-YYYY")
: "NA"} : "NA"}
</td> </td>
<td className="mx-2 text-center small">{projectInfo.plannedWork}</td> <td className="mx-2 text-center small">{formatNumber(projectInfo.plannedWork)}</td>
<td className="py-6 mx-2 text-start small align-items-center"> <td className="py-6 mx-2 text-start small align-items-center">
<ProgressBar <ProgressBar
plannedWork={projectInfo.plannedWork} plannedWork={projectInfo.plannedWork}

View File

@ -61,3 +61,8 @@ export const checkIfCurrentDate = (dateString) => {
return currentDate.getTime() === inputDate.getTime(); return currentDate.getTime() === inputDate.getTime();
}; };
export const formatNumber = (num) => {
if (num == null || isNaN(num)) return "NA";
return Number.isInteger(num) ? num : num.toFixed(2);
};

View File

@ -24,7 +24,7 @@ export const getProjectStatusColor = (statusId) => {
case "33deaef9-9af1-4f2a-b443-681ea0d04f81": case "33deaef9-9af1-4f2a-b443-681ea0d04f81":
return "bg-label-secondary"; return "bg-label-secondary";
case "cdad86aa-8a56-4ff4-b633-9c629057dfef": case "cdad86aa-8a56-4ff4-b633-9c629057dfef":
return "bg-label-success"; return "bg-label-primary";
} }
}; };