created new projectListView component
This commit is contained in:
parent
d4fed67912
commit
1cdfb47c39
196
src/pages/project/ProjectListView.jsx
Normal file
196
src/pages/project/ProjectListView.jsx
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
import React from "react";
|
||||||
|
import moment from "moment";
|
||||||
|
import { useProjects } from "../../hooks/useProjects";
|
||||||
|
|
||||||
|
const ProjectListView = () => {
|
||||||
|
const { projects } = useProjects();
|
||||||
|
|
||||||
|
const getProgress = (planned, completed) => {
|
||||||
|
return (completed * 100) / planned + "%";
|
||||||
|
};
|
||||||
|
const getProgressInNumber = (planned, completed) => {
|
||||||
|
return (completed * 100) / planned;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getProjectStatusName = (statusId) => {
|
||||||
|
switch (statusId) {
|
||||||
|
case 1:
|
||||||
|
return "Active";
|
||||||
|
case 2:
|
||||||
|
return "On Hold";
|
||||||
|
// case 3:
|
||||||
|
// return "Suspended";
|
||||||
|
case 3:
|
||||||
|
return "Inactive";
|
||||||
|
case 4:
|
||||||
|
return "Completed";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const getProjectStatusColor = (statusId) => {
|
||||||
|
switch (statusId) {
|
||||||
|
case 1:
|
||||||
|
return "bg-label-success";
|
||||||
|
case 2:
|
||||||
|
return "bg-label-warning";
|
||||||
|
case 3:
|
||||||
|
return "bg-label-info";
|
||||||
|
case 4:
|
||||||
|
return "bg-label-secondary";
|
||||||
|
case 5:
|
||||||
|
return "bg-label-dark";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="table-responsive text-nowrap py-2 overflow-auto">
|
||||||
|
<table className="table px-2">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th className="text-start" colSpan={5}>
|
||||||
|
Project Name
|
||||||
|
</th>
|
||||||
|
<th className="mx-2">Project Manger</th>
|
||||||
|
<th className="mx-2">START DATE</th>
|
||||||
|
<th className="mx-2">DEADLINE</th>
|
||||||
|
<th className="mx-2">Task</th>
|
||||||
|
<th className="mx-2">Progress</th>
|
||||||
|
<th className="mx-2">
|
||||||
|
<div class="dropdown">
|
||||||
|
<a
|
||||||
|
class="dropdown-toggle hide-arrow cursor-pointer"
|
||||||
|
data-bs-toggle="dropdown"
|
||||||
|
aria-expanded="false"
|
||||||
|
|
||||||
|
>
|
||||||
|
Status <i class="bx bx-filter"></i>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu px-3 py-2">
|
||||||
|
<li>
|
||||||
|
<div class="form-check form-check-success mb-1">
|
||||||
|
<input
|
||||||
|
name="statusRadio"
|
||||||
|
class="form-check-input"
|
||||||
|
type="radio"
|
||||||
|
value="active"
|
||||||
|
id="statusActive"
|
||||||
|
checked
|
||||||
|
/>
|
||||||
|
<label class="form-check-label text-success" for="statusActive">
|
||||||
|
Active
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="form-check form-check-warning mb-1">
|
||||||
|
<input
|
||||||
|
name="statusRadio"
|
||||||
|
class="form-check-input"
|
||||||
|
type="radio"
|
||||||
|
value="onhold"
|
||||||
|
id="statusOnHold"
|
||||||
|
checked
|
||||||
|
/>
|
||||||
|
<label class="form-check-label text-warning" for="statusOnHold">
|
||||||
|
On-Hold
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="form-check form-check-info mb-1">
|
||||||
|
<input
|
||||||
|
name="statusRadio"
|
||||||
|
class="form-check-input"
|
||||||
|
type="radio"
|
||||||
|
value="inactive"
|
||||||
|
id="statusInactive"
|
||||||
|
checked
|
||||||
|
/>
|
||||||
|
<label class="form-check-label text-info" for="statusInactive">
|
||||||
|
Inactive
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="form-check form-check-secondary mb-1">
|
||||||
|
<input
|
||||||
|
name="customRadioSecondary" class="form-check-input" type="radio" value="" id="customRadioSecondary" checked
|
||||||
|
/>
|
||||||
|
<label class="form-check-label text-secondary" for="statusCompleted">
|
||||||
|
Completed
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
<th className="mx-2">Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody className="table-border-bottom-0">
|
||||||
|
{projects.map((project) => (
|
||||||
|
<tr className="py-8">
|
||||||
|
<td className="text-start" colSpan={5}>
|
||||||
|
<strong className="text-primary"> {project.name}</strong>
|
||||||
|
</td>
|
||||||
|
<td className="text-start">{project.contactPerson}</td>
|
||||||
|
<td className="small text-start">
|
||||||
|
<small>
|
||||||
|
{" "}
|
||||||
|
{project.startDate
|
||||||
|
? moment(project.startDate).format("DD-MMM-YYYY")
|
||||||
|
: "NA"}
|
||||||
|
</small>
|
||||||
|
</td>
|
||||||
|
<td className="mx-2 text-start">
|
||||||
|
{project.endDate
|
||||||
|
? moment(project.endDate).format("DD-MMM-YYYY")
|
||||||
|
: "NA"}
|
||||||
|
</td>
|
||||||
|
<td className="mx-2 text-start">{project.plannedWork}</td>
|
||||||
|
|
||||||
|
<td className="py-6 mx-2 text-start">
|
||||||
|
<div
|
||||||
|
className="progress rounded align-items-center"
|
||||||
|
style={{ height: "8px" }}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="progress-bar rounded"
|
||||||
|
role="progressbar"
|
||||||
|
style={{
|
||||||
|
width: getProgress(
|
||||||
|
project.plannedWork,
|
||||||
|
project.completedWork
|
||||||
|
),
|
||||||
|
}}
|
||||||
|
aria-valuenow={project.completedWork}
|
||||||
|
aria-valuemin="0"
|
||||||
|
aria-valuemax={project.plannedWork}
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="mx-6 ">
|
||||||
|
<p className="mb-0">
|
||||||
|
<span
|
||||||
|
className={
|
||||||
|
`badge ` + getProjectStatusColor(project.projectStatusId)
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{getProjectStatusName(project.projectStatusId)}
|
||||||
|
</span>
|
||||||
|
</p>{" "}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td className="mx-2 ">
|
||||||
|
{" "}
|
||||||
|
<i className="bx bx-dots-vertical-rounded bx-sm text-muted"></i>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
))}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ProjectListView;
|
Loading…
x
Reference in New Issue
Block a user