- Progress Commit

Signed-off-by: Dave Richer <dave@imexsystems.ca>
This commit is contained in:
Dave Richer
2024-04-02 15:01:51 -04:00
parent 282dbd0913
commit 90814f41a2
11 changed files with 116 additions and 39 deletions

View File

@@ -26,20 +26,17 @@ import {setModalContext} from '../../redux/modals/modals.actions';
* @constructor
*/
const DueDateRecord = ({dueDate}) => {
if (dueDate) {
const dueDateDayjs = dayjs(dueDate);
const relativeDueDate = dueDateDayjs.fromNow();
const today = dayjs();
if (!dueDate) return <></>;
if (dueDateDayjs.isBefore(today)) {
return <div title={relativeDueDate} style={{color: 'red'}}>
<DateFormatter>{dueDate}</DateFormatter></div>;
} else {
return <div title={relativeDueDate}><DateFormatter>{dueDate}</DateFormatter></div>;
}
} else {
return <div>N/A</div>;
}
const dueDateDayjs = dayjs(dueDate);
const relativeDueDate = dueDateDayjs.fromNow();
const isBeforeToday = dueDateDayjs.isBefore(dayjs());
return (
<div title={relativeDueDate} style={{color: isBeforeToday ? 'red' : 'black'}}>
<DateFormatter>{dueDate}</DateFormatter>
</div>
);
}
/**
@@ -81,6 +78,7 @@ const mapStateToProps = (state) => ({
export default connect(mapStateToProps, mapDispatchToProps)(TaskListComponent);
function TaskListComponent({
bodyshop,
loading,
tasks,
total,
@@ -117,9 +115,13 @@ function TaskListComponent({
title: t("tasks.fields.assigned_to"),
dataIndex: "assigned_to",
key: "assigned_to",
width: '10%',
width: '8%',
sorter: true,
sortOrder: sortcolumn === "assigned_to" && sortorder,
render: (text, record) => {
const employee = bodyshop?.employees?.find(e => e.user_email === record.assigned_to);
return employee ? `${ employee.first_name} ${ employee.last_name}` : t("general.labels.na");
}
}
);
}
@@ -129,12 +131,46 @@ function TaskListComponent({
title: t("tasks.fields.job.ro_number"),
dataIndex: ["job", "ro_number"],
key: "job.ro_number",
width: '5%',
render: (text, record) => (
<Link to={`/manage/jobs/${record.job.id}`}>
{record.job.ro_number}
</Link>
),
width: '8%',
render: (text, record) =>
record.job
? <Link to={`/manage/jobs/${record.job.id}`}>{record.job.ro_number || t("general.labels.na")}</Link>
: t("general.labels.na")
},
{
title: t("tasks.fields.jobline"),
dataIndex: ["jobline", "id"],
key: "jobline.id",
width: '8%',
render: (text, record) => record?.jobline?.line_desc || ''
},
{
title: t("tasks.fields.parts_order"),
dataIndex: ["parts_order", "id"],
key: "part_order.id",
width: '8%',
render: (text, record) =>
record.parts_order
? <Link to={`/manage/jobs/${record.job.id}?partsorderid=${record.parts_order.id}&tab=partssublet`}>
{record.parts_order.order_number && record.parts_order.vendor && record.parts_order.vendor.name
? `${record.parts_order.order_number} - ${record.parts_order.vendor.name}`
: t("general.labels.na")}
</Link>
: ''
},
{
title: t("tasks.fields.bill"),
dataIndex: ["bill", "id"],
key: "bill.id",
width: '8%',
render: (text, record) =>
record.bill
? <Link to={`/manage/jobs/${record.job.id}?billid=${record.bill.id}&tab=partssublet`}>
{record.bill.invoice_number && record.bill.vendor && record.bill.vendor.name
? `${record.bill.invoice_number} - ${record.bill.vendor.name}`
: t("general.labels.na")}
</Link>
: ''
},
{
title: t("tasks.fields.title"),
@@ -143,13 +179,6 @@ function TaskListComponent({
sorter: true,
sortOrder: sortcolumn === "title" && sortorder,
},
{
title: t("tasks.fields.description"),
dataIndex: "description",
key: "description",
sorter: true,
sortOrder: sortcolumn === "description" && sortorder,
},
{
title: t("tasks.fields.due_date"),
dataIndex: "due_date",
@@ -159,6 +188,15 @@ function TaskListComponent({
width: '8%',
render: (text, record) => <DueDateRecord dueDate={record.due_date} />,
},
{
title: t("tasks.fields.remind_at"),
dataIndex: "remind_at",
key: "remind_at",
sorter: true,
sortOrder: sortcolumn === "remind_at" && sortorder,
width: '8%',
render: (text, record) => <DueDateRecord dueDate={record.remind_at} />,
},
{
title: t("tasks.fields.priority"),
dataIndex: "priority",
@@ -229,6 +267,12 @@ function TaskListComponent({
}
history({search: queryString.stringify(search)});
};
const expandableRow = (record) => {
return <Card title={t('tasks.fields.description')} size='small'>
{record.description}
</Card>
};
/**
* Extra actions for the tasks
@@ -279,16 +323,21 @@ function TaskListComponent({
<Table
loading={loading}
pagination={{
position: "top",
pageSize: pageLimit,
current: parseInt(page || 1),
total: total,
responsive: true,
showQuickJumper: true,
}}
columns={columns}
rowKey="id"
scroll={{x: true}}
dataSource={tasks}
onChange={handleTableChange}
expandable={{
expandedRowRender: expandableRow,
rowExpandable: record => record.description,
}}
/>
</Card>
);