From 3fd51f014024ec917cbcf762e7af5bdbe8cbaee8 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Tue, 19 May 2026 16:01:38 -0700 Subject: [PATCH 1/6] IO-3710 Visual Board - Vehicle Color Signed-off-by: Allan Carr --- .../production-board-kanban-card.component.jsx | 8 ++++---- .../production-list-columns.data.jsx | 12 +++++------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/client/src/components/production-board-kanban/production-board-kanban-card.component.jsx b/client/src/components/production-board-kanban/production-board-kanban-card.component.jsx index c12a7c6c9..e4a1981a5 100644 --- a/client/src/components/production-board-kanban/production-board-kanban-card.component.jsx +++ b/client/src/components/production-board-kanban/production-board-kanban-card.component.jsx @@ -80,14 +80,14 @@ const ModelInfoToolTip = ({ metadata, cardSettings }) => - {metadata.v_model_yr || metadata.v_make_desc || metadata.v_model_desc ? ( - `${metadata.v_model_yr || ""} ${metadata.v_make_desc || ""} ${metadata.v_model_desc || ""}` + {metadata.v_model_yr || metadata.v_make_desc || metadata.v_model_desc || metadata.v_color ? ( + `${metadata.v_model_yr || ""} ${metadata.v_color || ""} ${metadata.v_make_desc || ""} ${metadata.v_model_desc || ""}` ) : (   )} diff --git a/client/src/components/production-list-columns/production-list-columns.data.jsx b/client/src/components/production-list-columns/production-list-columns.data.jsx index ff7b4c517..cca63edb6 100644 --- a/client/src/components/production-list-columns/production-list-columns.data.jsx +++ b/client/src/components/production-list-columns/production-list-columns.data.jsx @@ -140,13 +140,11 @@ const productionListColumnsData = ({ technician, state, activeStatuses, data, bo sortOrder: state.sortedInfo.columnKey === "vehicle" && state.sortedInfo.order, render: (text, record) => technician ? ( - <>{`${record.v_model_yr || ""} ${record.v_make_desc || ""} ${record.v_model_desc || ""} ${ - record.v_color || "" - } ${record.plate_no || ""}`} + <>{`${record.v_model_yr || ""} ${record.v_color || ""}${record.v_make_desc || ""} ${record.v_model_desc || ""} ${record.plate_no || ""}`} ) : ( - {`${record.v_model_yr || ""} ${record.v_make_desc || ""} ${ - record.v_model_desc || "" - } ${record.v_color || ""} ${record.plate_no || ""}`} + {`${record.v_model_yr || ""} ${record.v_color || ""} ${record.v_make_desc || ""} ${record.v_model_desc || ""} ${record.plate_no || ""}`} ) }, { @@ -621,7 +619,7 @@ const productionListColumnsData = ({ technician, state, activeStatuses, data, bo sortOrder: state.sortedInfo.columnKey === "dms_id" && state.sortedInfo.order } ] - : []), + : []) ]; }; export default productionListColumnsData; From de9d47272c358429ca3cbbeb22bd627c7a1b2bef Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Tue, 19 May 2026 18:34:19 -0700 Subject: [PATCH 2/6] IO-3707 Deduct from Labor Enhanced Payroll Signed-off-by: Allan Carr --- client/src/components/bill-form/bill-form.lines.component.jsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/client/src/components/bill-form/bill-form.lines.component.jsx b/client/src/components/bill-form/bill-form.lines.component.jsx index 541608ec4..ceb735948 100644 --- a/client/src/components/bill-form/bill-form.lines.component.jsx +++ b/client/src/components/bill-form/bill-form.lines.component.jsx @@ -495,7 +495,9 @@ export function BillEnterModalLinesComponent({ {Enhanced_Payroll.treatment === "on" ? ( {t("joblines.fields.assigned_team", { name: employeeTeamName?.name })} - {`${jobline.mod_lb_hrs} units/${t(`joblines.fields.lbr_types.${jobline.mod_lbr_ty}`)}`} + {jobline + ? `${jobline.mod_lb_hrs} units/${t(`joblines.fields.lbr_types.${jobline.mod_lbr_ty}`)}` + : null} ) : null} From 72c96f14eb3b75d70331df32780bc74d7aa28985 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Tue, 19 May 2026 18:35:26 -0700 Subject: [PATCH 3/6] IO-3707 Prettier Run Signed-off-by: Allan Carr --- .../bill-form/bill-form.lines.component.jsx | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/client/src/components/bill-form/bill-form.lines.component.jsx b/client/src/components/bill-form/bill-form.lines.component.jsx index ceb735948..e29e88a2c 100644 --- a/client/src/components/bill-form/bill-form.lines.component.jsx +++ b/client/src/components/bill-form/bill-form.lines.component.jsx @@ -435,9 +435,9 @@ export function BillEnterModalLinesComponent({ rules: [{ required: true }] }), formInput: () => ( - ({ value: loc, label: loc }))} @@ -508,10 +508,7 @@ export function BillEnterModalLinesComponent({ rules={[{ required: true }]} name={[record.name, "lbr_adjustment", "mod_lbr_ty"]} > - {Enhanced_Payroll.treatment === "on" ? ( From 3a12597c456d846fd5ab74e6bb0f1d7493b9cd66 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Tue, 19 May 2026 18:43:44 -0700 Subject: [PATCH 4/6] IO-3699 Alt Part # Exposed Signed-off-by: Allan Carr --- .../job-lines-upsert-modal.component.jsx | 3 +++ server/job/job-totals-USA.js | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/client/src/components/job-lines-upsert-modal/job-lines-upsert-modal.component.jsx b/client/src/components/job-lines-upsert-modal/job-lines-upsert-modal.component.jsx index 17f626c0d..8d6a4b601 100644 --- a/client/src/components/job-lines-upsert-modal/job-lines-upsert-modal.component.jsx +++ b/client/src/components/job-lines-upsert-modal/job-lines-upsert-modal.component.jsx @@ -143,6 +143,9 @@ export function JobLinesUpsertModalComponent({ bodyshop, open, jobLine, handleCa + + + 1 ? job.cieca_pfl["LAB"].lbr_adjp From 297d8afa8a3eadad3a9c906e5ffe00487ef45b1e Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Tue, 19 May 2026 18:44:36 -0700 Subject: [PATCH 5/6] IO-3699 Prettier Run Signed-off-by: Allan Carr --- .../job-lines-upsert-modal.component.jsx | 60 ++++++++++--------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/client/src/components/job-lines-upsert-modal/job-lines-upsert-modal.component.jsx b/client/src/components/job-lines-upsert-modal/job-lines-upsert-modal.component.jsx index 8d6a4b601..c2ae3d1a7 100644 --- a/client/src/components/job-lines-upsert-modal/job-lines-upsert-modal.component.jsx +++ b/client/src/components/job-lines-upsert-modal/job-lines-upsert-modal.component.jsx @@ -67,22 +67,25 @@ export function JobLinesUpsertModalComponent({ bodyshop, open, jobLine, handleCa - @@ -128,17 +131,20 @@ export function JobLinesUpsertModalComponent({ bodyshop, open, jobLine, handleCa - From 771573409f4a6950b6a84d5bdbc4fab4201c8797 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Wed, 20 May 2026 10:48:56 -0700 Subject: [PATCH 6/6] IO-3712 Disable analytics in client side. --- client/src/App/App.jsx | 16 +++---- client/src/firebase/firebase.utils.js | 66 ++++++++++++++------------- client/src/index.jsx | 16 +++---- client/src/redux/user/user.sagas.js | 34 +++++++------- 4 files changed, 66 insertions(+), 66 deletions(-) diff --git a/client/src/App/App.jsx b/client/src/App/App.jsx index 2bbda1a43..67e176604 100644 --- a/client/src/App/App.jsx +++ b/client/src/App/App.jsx @@ -1,6 +1,6 @@ import { useSplitClient } from "@splitsoftware/splitio-react"; import { Button, Result } from "antd"; -import LogRocket from "logrocket"; +//import LogRocket from "logrocket"; import { lazy, Suspense, useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; @@ -101,13 +101,13 @@ export function App({ client.setAttribute("imexshopid", bodyshop.imexshopid); if (client.getTreatment("LogRocket_Tracking") === "on") { - console.log("LR Start"); - LogRocket.init( - InstanceRenderMgr({ - imex: "gvfvfw/bodyshopapp", - rome: "rome-online/rome-online" - }) - ); + // console.log("LR Start"); + // LogRocket.init( + // InstanceRenderMgr({ + // imex: "gvfvfw/bodyshopapp", + // rome: "rome-online/rome-online" + // }) + // ); } } }, [bodyshop, client, currentUser.authorized]); diff --git a/client/src/firebase/firebase.utils.js b/client/src/firebase/firebase.utils.js index 30f758fe6..6af307d12 100644 --- a/client/src/firebase/firebase.utils.js +++ b/client/src/firebase/firebase.utils.js @@ -1,9 +1,9 @@ -import { getAnalytics, logEvent } from "@firebase/analytics"; +//import { getAnalytics, logEvent } from "@firebase/analytics"; import { initializeApp } from "@firebase/app"; import { getAuth, updatePassword, updateProfile } from "@firebase/auth"; import { getFirestore } from "@firebase/firestore"; import { getMessaging, getToken, onMessage } from "@firebase/messaging"; -import { store } from "../redux/store"; +//import { store } from "../redux/store"; //import * as amplitude from '@amplitude/analytics-browser'; // import posthog from 'posthog-js' @@ -12,7 +12,7 @@ initializeApp(config); export const auth = getAuth(); export const firestore = getFirestore(); -export const analytics = getAnalytics(); +//export const analytics = getAnalytics(); //export default firebase; export const getCurrentUser = () => { @@ -72,34 +72,36 @@ onMessage(messaging, (payload) => { // ... }); -export const logImEXEvent = (eventName, additionalParams, stateProp = null) => { - try { - const state = stateProp || store.getState(); +// eslint-disable-next-line no-unused-vars +export const logImEXEvent = (eventName, additionalParams, _stateProp = null) => { + // Disabled as a part of IO-3712. + // try { + // const state = stateProp || store.getState(); - const eventParams = { - shop: (state.user && state.user.bodyshop && state.user.bodyshop.shopname) || null, - user: (state.user && state.user.currentUser && state.user.currentUser.email) || null, - partsManagementOnly: state?.user?.partsManagementOnly, - ...additionalParams - }; - // axios.post("/ioevent", { - // useremail: (state.user && state.user.currentUser && state.user.currentUser.email) || null, - // bodyshopid: (state.user && state.user.bodyshop && state.user.bodyshop.id) || null, - // operationName: eventName, - // variables: additionalParams, - // dbevent: false, - // env: `master-AIO|${import.meta.env.VITE_APP_GIT_SHA_DATE}` - // }); - // console.log( - // "%c[Analytics]", - // "background-color: green ;font-weight:bold;", - // eventName, - // eventParams - // ); - logEvent(analytics, eventName, eventParams); - //amplitude.track(eventName, eventParams); - //posthog.capture(eventName, eventParams); - } finally { - //If it fails, just keep going. - } + // const eventParams = { + // shop: (state.user && state.user.bodyshop && state.user.bodyshop.shopname) || null, + // user: (state.user && state.user.currentUser && state.user.currentUser.email) || null, + // partsManagementOnly: state?.user?.partsManagementOnly, + // ...additionalParams + // }; + // // axios.post("/ioevent", { + // // useremail: (state.user && state.user.currentUser && state.user.currentUser.email) || null, + // // bodyshopid: (state.user && state.user.bodyshop && state.user.bodyshop.id) || null, + // // operationName: eventName, + // // variables: additionalParams, + // // dbevent: false, + // // env: `master-AIO|${import.meta.env.VITE_APP_GIT_SHA_DATE}` + // // }); + // // console.log( + // // "%c[Analytics]", + // // "background-color: green ;font-weight:bold;", + // // eventName, + // // eventParams + // // ); + // logEvent(analytics, eventName, eventParams); + // //amplitude.track(eventName, eventParams); + // //posthog.capture(eventName, eventParams); + // } finally { + // //If it fails, just keep going. + // } }; diff --git a/client/src/index.jsx b/client/src/index.jsx index 49abd60eb..ef78ec1fe 100644 --- a/client/src/index.jsx +++ b/client/src/index.jsx @@ -14,8 +14,8 @@ import reportWebVitals from "./reportWebVitals"; import "./translations/i18n"; import "./utils/CleanAxios"; // import * as amplitude from "@amplitude/analytics-browser"; -import { PostHogProvider } from "posthog-js/react"; -import posthog from "posthog-js"; +//import { PostHogProvider } from "posthog-js/react"; +//import posthog from "posthog-js"; import { StrictMode } from "react"; window.global ||= window; @@ -44,11 +44,11 @@ Dinero.globalRoundingMode = "HALF_EVEN"; // // } // }); -posthog.init(import.meta.env.VITE_PUBLIC_POSTHOG_KEY, { - autocapture: false, - capture_exceptions: true, - api_host: import.meta.env.VITE_PUBLIC_POSTHOG_HOST -}); +// posthog.init(import.meta.env.VITE_PUBLIC_POSTHOG_KEY, { +// autocapture: false, +// capture_exceptions: true, +// api_host: import.meta.env.VITE_PUBLIC_POSTHOG_HOST +// }); const sentryCreateBrowserRouter = Sentry.wrapCreateBrowserRouterV6(createBrowserRouter); @@ -70,9 +70,7 @@ function App() { return ( } persistor={persistor}> - - ); diff --git a/client/src/redux/user/user.sagas.js b/client/src/redux/user/user.sagas.js index 83a65f0bd..8c754e6a9 100644 --- a/client/src/redux/user/user.sagas.js +++ b/client/src/redux/user/user.sagas.js @@ -1,5 +1,5 @@ import FingerprintJS from "@fingerprintjs/fingerprintjs"; -import { setUserId, setUserProperties } from "@firebase/analytics"; +//import { setUserId, setUserProperties } from "@firebase/analytics"; import { checkActionCode, confirmPasswordReset, @@ -13,10 +13,10 @@ import * as Sentry from "@sentry/react"; import { notification } from "antd"; import axios from "axios"; import i18next from "i18next"; -import LogRocket from "logrocket"; +//import LogRocket from "logrocket"; import { all, call, delay, put, select, takeLatest } from "redux-saga/effects"; import { - analytics, + //analytics, auth, firestore, getCurrentUser, @@ -49,7 +49,7 @@ import { validatePasswordResetSuccess } from "./user.actions"; import UserActionTypes from "./user.types"; -import posthog from "posthog-js"; +//import posthog from "posthog-js"; import { bodyshopHasDmsKey, determineDMSTypeByBodyshop, DMS_MAP } from "../../utils/dmsUtils"; const fpPromise = FingerprintJS.load(); @@ -91,9 +91,9 @@ export function* isUserAuthenticated() { return; } - LogRocket.identify(user.email); + //LogRocket.identify(user.email); //amplitude.setUserId(user.email); - posthog.identify(user.email); + //posthog.identify(user.email); const eulaQuery = yield client.query({ query: QUERY_EULA, @@ -234,7 +234,7 @@ export function* onSignInSuccess() { } export function* signInSuccessSaga({ payload }) { - LogRocket.identify(payload.email); + //LogRocket.identify(payload.email); try { window.$crisp?.push(["set", "user:nickname", [payload.displayName || payload.email]]); @@ -279,17 +279,17 @@ export function* signInSuccessSaga({ payload }) { console.log("Error updating Crisp settings.", error); } - try { - Sentry.setUser({ - email: payload.email, - username: payload.displayName || payload.email - }); - } catch (error) { - console.log("Error setting Sentry user.", error); - } + // try { + // Sentry.setUser({ + // email: payload.email, + // username: payload.displayName || payload.email + // }); + // } catch (error) { + // console.log("Error setting Sentry user.", error); + // } - setUserId(analytics, payload.email); - setUserProperties(analytics, payload); + // setUserId(analytics, payload.email); + // setUserProperties(analytics, payload); yield; }