diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index 189eb825b..9348a53a0 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -1369,6 +1369,69 @@ + + jobnoteadded + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + jobnotedeleted + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + jobnoteupdated + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + jobspartsorder false diff --git a/client/src/components/courtesy-cars-list/courtesy-cars-list.component.jsx b/client/src/components/courtesy-cars-list/courtesy-cars-list.component.jsx index d531606e5..000f56a3a 100644 --- a/client/src/components/courtesy-cars-list/courtesy-cars-list.component.jsx +++ b/client/src/components/courtesy-cars-list/courtesy-cars-list.component.jsx @@ -45,6 +45,10 @@ export default function CourtesyCarsList({ loading, courtesycars, refetch }) { text: t("courtesycars.status.out"), value: "courtesycars.status.out", }, + { + text: t("courtesycars.status.sold"), + value: "courtesycars.status.sold", + }, ], onFilter: (value, record) => value.includes(record.status), sortOrder: diff --git a/client/src/components/jobs-notes/jobs-notes.container.jsx b/client/src/components/jobs-notes/jobs-notes.container.jsx index 608c21ae4..7ac7af91c 100644 --- a/client/src/components/jobs-notes/jobs-notes.container.jsx +++ b/client/src/components/jobs-notes/jobs-notes.container.jsx @@ -10,8 +10,21 @@ import { QUERY_NOTES_BY_JOB_PK, } from "../../graphql/notes.queries"; import JobNotesComponent from "./jobs.notes.component"; +import { insertAuditTrail } from "../../redux/application/application.actions"; +import { connect } from "react-redux"; +import { createStructuredSelector } from "reselect"; +import AuditTrailMapping from "../../utils/AuditTrailMappings"; -export default function JobNotesContainer({ jobId }) { +const mapStateToProps = createStructuredSelector({ + //currentUser: selectCurrentUser +}); +const mapDispatchToProps = (dispatch) => ({ + insertAuditTrail: ({ jobid, operation }) => + dispatch(insertAuditTrail({ jobid, operation })), +}); +export default connect(mapStateToProps, mapDispatchToProps)(JobNotesContainer); + +export function JobNotesContainer({ jobId, insertAuditTrail }) { const { loading, error, data, refetch } = useQuery(QUERY_NOTES_BY_JOB_PK, { variables: { id: jobId }, fetchPolicy: "network-only", @@ -32,6 +45,10 @@ export default function JobNotesContainer({ jobId }) { notification["success"]({ message: t("notes.successes.deleted"), }); + insertAuditTrail({ + jobid: jobId, + operation: AuditTrailMapping.jobnotedeleted(), + }); }); setDeleteLoading(false); }; diff --git a/client/src/components/note-upsert-modal/note-upsert-modal.container.jsx b/client/src/components/note-upsert-modal/note-upsert-modal.container.jsx index 487de84b4..38d83a302 100644 --- a/client/src/components/note-upsert-modal/note-upsert-modal.container.jsx +++ b/client/src/components/note-upsert-modal/note-upsert-modal.container.jsx @@ -10,6 +10,8 @@ import { selectNoteUpsert } from "../../redux/modals/modals.selectors"; import { selectCurrentUser } from "../../redux/user/user.selectors"; import NoteUpsertModalComponent from "./note-upsert-modal.component"; import { logImEXEvent } from "../../firebase/firebase.utils"; +import { insertAuditTrail } from "../../redux/application/application.actions"; +import AuditTrailMapping from "../../utils/AuditTrailMappings"; const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, @@ -17,12 +19,15 @@ const mapStateToProps = createStructuredSelector({ }); const mapDispatchToProps = (dispatch) => ({ toggleModalVisible: () => dispatch(toggleModalVisible("noteUpsert")), + insertAuditTrail: ({ jobid, operation }) => + dispatch(insertAuditTrail({ jobid, operation })), }); export function NoteUpsertModalContainer({ currentUser, noteUpsertModal, toggleModalVisible, + insertAuditTrail, }) { const { t } = useTranslation(); const [insertNote] = useMutation(INSERT_NEW_NOTE); @@ -56,6 +61,10 @@ export function NoteUpsertModalContainer({ notification["success"]({ message: t("notes.successes.updated"), }); + insertAuditTrail({ + jobid: context.jobId, + operation: AuditTrailMapping.jobnoteupdated(), + }); }); if (refetch) refetch(); toggleModalVisible(); @@ -75,6 +84,10 @@ export function NoteUpsertModalContainer({ notification["success"]({ message: t("notes.successes.create"), }); + insertAuditTrail({ + jobid: context.jobId, + operation: AuditTrailMapping.jobnoteadded(), + }); }); } }; diff --git a/client/src/components/report-center-modal/report-center-modal.component.jsx b/client/src/components/report-center-modal/report-center-modal.component.jsx index f49836380..d51a6333d 100644 --- a/client/src/components/report-center-modal/report-center-modal.component.jsx +++ b/client/src/components/report-center-modal/report-center-modal.component.jsx @@ -153,7 +153,7 @@ export function ReportCenterModalComponent({ reportCenterModal }) { {t(`reportcenter.labels.groups.${key}`)} -