@@ -119,7 +119,7 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) {
|
|||||||
<DataLabel label={t("jobs.labels.contracts")}>
|
<DataLabel label={t("jobs.labels.contracts")}>
|
||||||
{job.cccontracts.map((c, index) => (
|
{job.cccontracts.map((c, index) => (
|
||||||
<Space wrap>
|
<Space wrap>
|
||||||
<Link key={c.id} to={`/manage/courtesycars/contracts/${c.id}`}>
|
<Link key={index} to={`/manage/courtesycars/contracts/${c.id}`}>
|
||||||
{`${c.agreementnumber} - ${c.courtesycar.fleetnumber} ${c.courtesycar.year} ${c.courtesycar.make} ${c.courtesycar.model}`}
|
{`${c.agreementnumber} - ${c.courtesycar.fleetnumber} ${c.courtesycar.year} ${c.courtesycar.make} ${c.courtesycar.model}`}
|
||||||
{index !== job.cccontracts.length - 1 ? "," : null}
|
{index !== job.cccontracts.length - 1 ? "," : null}
|
||||||
</Link>
|
</Link>
|
||||||
@@ -222,10 +222,10 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) {
|
|||||||
}
|
}
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
<DataLabel key="2" label={t("vehicles.fields.plate_no")}>
|
<DataLabel key="222" label={t("vehicles.fields.plate_no")}>
|
||||||
{`${job.plate_no || t("general.labels.na")} (${`${job.plate_st || t("general.labels.na")}`})`}
|
{`${job.plate_no || t("general.labels.na")} (${`${job.plate_st || t("general.labels.na")}`})`}
|
||||||
</DataLabel>
|
</DataLabel>
|
||||||
<DataLabel key="4" label={t("vehicles.fields.v_vin")}>
|
<DataLabel key="444" label={t("vehicles.fields.v_vin")}>
|
||||||
<VehicleVinDisplay>{`${job.v_vin || t("general.labels.na")}`}</VehicleVinDisplay>
|
<VehicleVinDisplay>{`${job.v_vin || t("general.labels.na")}`}</VehicleVinDisplay>
|
||||||
{bodyshop.pbs_serialnumber || bodyshop.cdk_dealerid ? (
|
{bodyshop.pbs_serialnumber || bodyshop.cdk_dealerid ? (
|
||||||
job.v_vin?.length !== 17 ? (
|
job.v_vin?.length !== 17 ? (
|
||||||
|
|||||||
@@ -52,6 +52,19 @@ export default function TaskListContainer({bodyshop, titleTranslation ,query, r
|
|||||||
};
|
};
|
||||||
}, [refetch]);
|
}, [refetch]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const handleTaskUpdated = (event) => {
|
||||||
|
refetch();
|
||||||
|
};
|
||||||
|
|
||||||
|
window.addEventListener('taskUpdated', handleTaskUpdated);
|
||||||
|
|
||||||
|
// Clean up the event listener when the component is unmounted.
|
||||||
|
return () => {
|
||||||
|
window.removeEventListener('taskUpdated', handleTaskUpdated);
|
||||||
|
};
|
||||||
|
}, [refetch]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Toggle task completed mutation
|
* Toggle task completed mutation
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ export function TaskUpsertModalContainer({
|
|||||||
const {t} = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [insertTask] = useMutation(MUTATION_INSERT_NEW_TASK);
|
const [insertTask] = useMutation(MUTATION_INSERT_NEW_TASK);
|
||||||
const [updateTask] = useMutation(MUTATION_UPDATE_TASK);
|
const [updateTask] = useMutation(MUTATION_UPDATE_TASK);
|
||||||
|
|
||||||
const {open, context, actions} = taskUpsert;
|
const {open, context, actions} = taskUpsert;
|
||||||
const {jobid, existingTask, joblineid, billid, partsorderid} = context;
|
const {jobid, existingTask, joblineid, billid, partsorderid} = context;
|
||||||
const {refetch} = actions;
|
const {refetch} = actions;
|
||||||
@@ -55,6 +54,9 @@ export function TaskUpsertModalContainer({
|
|||||||
if (jobid || existingTask?.id) {
|
if (jobid || existingTask?.id) {
|
||||||
setSelectedJobId(jobid || existingTask.jobid);
|
setSelectedJobId(jobid || existingTask.jobid);
|
||||||
}
|
}
|
||||||
|
return () => {
|
||||||
|
setSelectedJobId(null);
|
||||||
|
};
|
||||||
}, [jobid, existingTask]);
|
}, [jobid, existingTask]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -105,7 +107,9 @@ export function TaskUpsertModalContainer({
|
|||||||
task: replaceUndefinedWithNull(values)
|
task: replaceUndefinedWithNull(values)
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
window.dispatchEvent( new CustomEvent('taskUpdated', {
|
||||||
|
detail: { message: 'A task has been created or edited.' },
|
||||||
|
}));
|
||||||
notification["success"]({
|
notification["success"]({
|
||||||
message: t("tasks.successes.updated"),
|
message: t("tasks.successes.updated"),
|
||||||
});
|
});
|
||||||
@@ -116,30 +120,36 @@ export function TaskUpsertModalContainer({
|
|||||||
variables: {
|
variables: {
|
||||||
taskInput: [
|
taskInput: [
|
||||||
{
|
{
|
||||||
...replaceUndefinedWithNull(values),
|
...values,
|
||||||
created_by: currentUser.email,
|
created_by: currentUser.email,
|
||||||
bodyshopid: bodyshop.id
|
bodyshopid: bodyshop.id
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
update(cache) {
|
|
||||||
cache.modify({
|
|
||||||
fields: {
|
|
||||||
tasks(existingTasks) {
|
|
||||||
return [{
|
|
||||||
...values,
|
|
||||||
created_by: currentUser.email,
|
|
||||||
bodyshopid: bodyshop.id
|
|
||||||
}, ...existingTasks]
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
|
// TODO: Consult Patrick, because this fails on relationship data, and an event emitter is just much easier to use
|
||||||
|
// update(cache) {
|
||||||
|
// cache.modify({
|
||||||
|
// fields: {
|
||||||
|
// tasks(existingTasks) {
|
||||||
|
// return [{
|
||||||
|
// ...values,
|
||||||
|
// jobid: selectedJobId || values.jobid,
|
||||||
|
// created_by: currentUser.email,
|
||||||
|
// bodyshopid: bodyshop.id
|
||||||
|
// }, ...existingTasks]
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
// },
|
||||||
|
|
||||||
|
});
|
||||||
if (refetch) await refetch();
|
if (refetch) await refetch();
|
||||||
form.resetFields();
|
form.resetFields();
|
||||||
toggleModalVisible();
|
toggleModalVisible();
|
||||||
|
window.dispatchEvent( new CustomEvent('taskUpdated', {
|
||||||
|
detail: { message: 'A task has been created or edited.' },
|
||||||
|
}));
|
||||||
notification["success"]({
|
notification["success"]({
|
||||||
message: t("tasks.successes.created"),
|
message: t("tasks.successes.created"),
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user