From 90814f41a2b14d4d40eb21baa60850fee21692e9 Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Tue, 2 Apr 2024 15:01:51 -0400 Subject: [PATCH] - Progress Commit Signed-off-by: Dave Richer --- .../jobs-list/jobs-list.component.jsx | 5 - .../task-list/task-list.component.jsx | 105 +++++++++++++----- .../task-list/task-list.container.jsx | 1 + .../task-upsert-modal.component.jsx | 2 +- client/src/graphql/tasks.queries.js | 18 +++ .../src/pages/tasks/allTasksPageContainer.jsx | 2 +- .../src/pages/tasks/myTasksPageContainer.jsx | 2 +- .../src/pages/tasks/tasks.page.component.jsx | 2 +- client/src/translations/en_us/common.json | 4 + client/src/translations/es/common.json | 7 +- client/src/translations/fr/common.json | 7 +- 11 files changed, 116 insertions(+), 39 deletions(-) diff --git a/client/src/components/jobs-list/jobs-list.component.jsx b/client/src/components/jobs-list/jobs-list.component.jsx index e952d8fda..591bcae8b 100644 --- a/client/src/components/jobs-list/jobs-list.component.jsx +++ b/client/src/components/jobs-list/jobs-list.component.jsx @@ -176,11 +176,6 @@ export function JobsList({ bodyshop, setJoyRideSteps }) { [], onFilter: (value, record) => value.includes(record.status) }, - { - title: t('jobs.fields.active_tasks'), - key: 'activetasks', - render: (text, record) => {record.tasks_aggregate.aggregate.count}, - }, { title: t("jobs.fields.vehicle"), dataIndex: "vehicle", diff --git a/client/src/components/task-list/task-list.component.jsx b/client/src/components/task-list/task-list.component.jsx index a331612b7..7f2b5d75d 100644 --- a/client/src/components/task-list/task-list.component.jsx +++ b/client/src/components/task-list/task-list.component.jsx @@ -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
- {dueDate}
; - } else { - return
{dueDate}
; - } - } else { - return
N/A
; - } + const dueDateDayjs = dayjs(dueDate); + const relativeDueDate = dueDateDayjs.fromNow(); + const isBeforeToday = dueDateDayjs.isBefore(dayjs()); + + return ( +
+ {dueDate} +
+ ); } /** @@ -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) => ( - - {record.job.ro_number} - - ), + width: '8%', + render: (text, record) => + record.job + ? {record.job.ro_number || t("general.labels.na")} + : 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 + ? + {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")} + + : '' + }, + { + title: t("tasks.fields.bill"), + dataIndex: ["bill", "id"], + key: "bill.id", + width: '8%', + render: (text, record) => + record.bill + ? + {record.bill.invoice_number && record.bill.vendor && record.bill.vendor.name + ? `${record.bill.invoice_number} - ${record.bill.vendor.name}` + : t("general.labels.na")} + + : '' }, { 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) => , }, + { + title: t("tasks.fields.remind_at"), + dataIndex: "remind_at", + key: "remind_at", + sorter: true, + sortOrder: sortcolumn === "remind_at" && sortorder, + width: '8%', + render: (text, record) => , + }, { title: t("tasks.fields.priority"), dataIndex: "priority", @@ -229,6 +267,12 @@ function TaskListComponent({ } history({search: queryString.stringify(search)}); }; + + const expandableRow = (record) => { + return + {record.description} + + }; /** * Extra actions for the tasks @@ -279,16 +323,21 @@ function TaskListComponent({ record.description, + }} /> ); diff --git a/client/src/components/task-list/task-list.container.jsx b/client/src/components/task-list/task-list.container.jsx index d2b24ffcb..191b8a8b1 100644 --- a/client/src/components/task-list/task-list.container.jsx +++ b/client/src/components/task-list/task-list.container.jsx @@ -136,6 +136,7 @@ export default function TaskListContainer({bodyshop, titleTranslation ,query, r return (