From d5eee99b01dda8e592f52f7b8a1e0be40929474d Mon Sep 17 00:00:00 2001 From: Scott Kiener Date: Mon, 3 Feb 2025 10:53:31 -0500 Subject: [PATCH 1/6] CASH-183 | Update experiment logging for debugging in dev-qa These changes must be removed before any release --- src/layouts/vehicle/vehicle.vue | 10 +++++++--- src/router/index.js | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue index c81dfa2b0..79fad6313 100644 --- a/src/layouts/vehicle/vehicle.vue +++ b/src/layouts/vehicle/vehicle.vue @@ -80,7 +80,11 @@ import vehicleQuestion from "@/layouts/vehicle/vehicle-question/vehicle-question // Supporting files import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { experimentUniverses } from "@/constants/experiments"; -import { getSessionKeyValue, getUserIdValue, getDeviceIdValue } from "@/helpers/heritage-integration/cookie-helper"; +import { + getSessionKeyValue, + getUserIdValue, + getDeviceIdValue, +} from "@/helpers/heritage-integration/cookie-helper"; import { settleAllPromises } from "@/helpers/layout-helper"; import { Form, defineRule } from "vee-validate"; import { required } from "@/helpers/validation-rules"; @@ -188,10 +192,10 @@ export default { userId: getUserIdValue(), deviceId: getDeviceIdValue(), sessionKey: getSessionKeyValue(), - pageName: to.query.fmgPage, + pageName: "vehicle-logExposure", //to.query.fmgPage, experiment: experimentForLogging, }, - "vehicle", + "vehicle-logExposure", false ); } diff --git a/src/router/index.js b/src/router/index.js index 76d1203b7..918688a3c 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -810,7 +810,7 @@ async function runExperiments(nextPage) { { deviceId: getDeviceIdValue(), triggerEvent: experimentTriggers.PAGE_ENTRY, - triggerValue: nextPage, + triggerValue: nextPage == "vehicle" ? "vehicle-pageEntry" : nextPage, }, nextPage ); From 471cf1b14479a9b5cffc7eb02aad7f623e6bc319 Mon Sep 17 00:00:00 2001 From: Scott Kiener Date: Tue, 4 Feb 2025 08:03:29 -0500 Subject: [PATCH 2/6] Revert "Merge pull request #2271 from Safelite/feature/CASH-183" This reverts commit 2bf674dda79eb7b627417bb340cc52696ad7b360, reversing changes made to ae178c811ae11f209d46fa77def4c09a5d70b43b. --- src/layouts/vehicle/vehicle.vue | 10 +++------- src/router/index.js | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue index 79fad6313..c81dfa2b0 100644 --- a/src/layouts/vehicle/vehicle.vue +++ b/src/layouts/vehicle/vehicle.vue @@ -80,11 +80,7 @@ import vehicleQuestion from "@/layouts/vehicle/vehicle-question/vehicle-question // Supporting files import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { experimentUniverses } from "@/constants/experiments"; -import { - getSessionKeyValue, - getUserIdValue, - getDeviceIdValue, -} from "@/helpers/heritage-integration/cookie-helper"; +import { getSessionKeyValue, getUserIdValue, getDeviceIdValue } from "@/helpers/heritage-integration/cookie-helper"; import { settleAllPromises } from "@/helpers/layout-helper"; import { Form, defineRule } from "vee-validate"; import { required } from "@/helpers/validation-rules"; @@ -192,10 +188,10 @@ export default { userId: getUserIdValue(), deviceId: getDeviceIdValue(), sessionKey: getSessionKeyValue(), - pageName: "vehicle-logExposure", //to.query.fmgPage, + pageName: to.query.fmgPage, experiment: experimentForLogging, }, - "vehicle-logExposure", + "vehicle", false ); } diff --git a/src/router/index.js b/src/router/index.js index 918688a3c..76d1203b7 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -810,7 +810,7 @@ async function runExperiments(nextPage) { { deviceId: getDeviceIdValue(), triggerEvent: experimentTriggers.PAGE_ENTRY, - triggerValue: nextPage == "vehicle" ? "vehicle-pageEntry" : nextPage, + triggerValue: nextPage, }, nextPage ); From 53d08f0724332d3ef2f67240519adfc740ce2848 Mon Sep 17 00:00:00 2001 From: Chris Redelinghuys Date: Wed, 5 Feb 2025 14:28:33 -0500 Subject: [PATCH 3/6] CASH-69: MSR for ITAC. Remove Vehicle MSR Check. --- src/constants/store-mutations.js | 2 - .../service-location/service-location.spec.js | 3 -- .../service-location/service-location.vue | 11 ++---- src/layouts/vehicle/vehicle.vue | 8 ---- src/store/index.js | 37 +++---------------- 5 files changed, 9 insertions(+), 52 deletions(-) diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index 1ebf39b8d..0836beb06 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -16,8 +16,6 @@ const storeMutations = { UPDATE_VEHICLE_IMAGE_COLOR: "updateVehicleImageColor", UPDATE_VEHICLE_VIN: "updateVehicleVin", UPDATE_VEHICLE: "updateVehicle", - UPDATE_VEHICLE_MOBILE_STATIC_RECALIBRATION_APPLICABLE: - "updateIsMobileStaticRecalibrationApplicable", UPDATE_IS_REPAIR: "updateIsRepair", UPDATE_NUMBER_OF_CHIPS: "updateNumberOfChips", diff --git a/src/layouts/service-location/service-location.spec.js b/src/layouts/service-location/service-location.spec.js index 54f28a89c..68d2e948f 100644 --- a/src/layouts/service-location/service-location.spec.js +++ b/src/layouts/service-location/service-location.spec.js @@ -182,9 +182,6 @@ beforeEach(() => { zipCode: "43235", state: "OH", }, - vehicle: { - isMobileStaticRecalibrationApplicable: true, - }, }, damage: { isRepair: false, diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 9addea705..ef7a5491f 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -191,8 +191,6 @@ export default { isRecalibrationServiceableInshop: null, isGlassServiceableMobile: null, isRecalibrationServiceableMobile: null, - isVehicleMobileStaticRecalibrationApplicable: - this.getIsVehicleMobileStaticRecalibrationApplicableFromStore(), selectedAppointmentType: this.getSelectedAppointmentType(), selectedProvider: this.getSelectedProvider(), mobileFeePart: null, @@ -322,9 +320,8 @@ export default { isMobileStaticRecalibrationApplicable() { return ( this.displayMSR && - this.isVehicleMobileStaticRecalibrationApplicable && this.mobileFeePart?.partNumber == partNumberStrings.MOBILE_STATIC_RECAL_FEE && - (this.isInsurance ? this.mobileFeePart?.isInsurable : true) + (this.isInsurance && !this.isITAC ? this.mobileFeePart?.isInsurable : true) ); }, displayMSR() { @@ -401,6 +398,9 @@ export default { isInsurance() { return store.getters.payment.isInsurance; }, + isITAC() { + return store.getters.order.policy.isItac; + }, }, methods: { arePagePrerequisitesValid() { @@ -509,9 +509,6 @@ export default { getSelectedProvider() { return store.getters.order.serviceLocation.provider; }, - getIsVehicleMobileStaticRecalibrationApplicableFromStore() { - return store.getters.order.vehicle.isMobileStaticRecalibrationApplicable; - }, resetMobileLocation() { this.streetAddress = ""; this.apartmentNumberOrBusinessName = ""; diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue index fa7f5c036..728e1dcfd 100644 --- a/src/layouts/vehicle/vehicle.vue +++ b/src/layouts/vehicle/vehicle.vue @@ -121,7 +121,6 @@ export default { modelOptions: [], styleOptions: [], displayNoServiceAlert: false, - isMobileStaticRecalibrationApplicable: this.getIsMobileStaticRecalibrationApplicable(), }; }, @@ -444,8 +443,6 @@ export default { this.imageVifNumber = result?.data.imageVifNumber; this.imageVifColor = result?.data.imageVifColor; this.displayNoServiceAlert = !result?.data.canSafeliteService; - this.isMobileStaticRecalibrationApplicable = - result?.data.isMobileStaticRecalibrationApplicable; }, resetAlert() { this.displayNoServiceAlert = false; @@ -464,8 +461,6 @@ export default { imageUrl: this.imageUrl, imageVifNumber: this.imageVifNumber, imageVifColor: this.imageVifColor, - isMobileStaticRecalibrationApplicable: - this.isMobileStaticRecalibrationApplicable, }, false ); @@ -541,9 +536,6 @@ export default { getImageVifColorfromStore() { return store.getters.vehicle.imageVifColor; }, - getIsMobileStaticRecalibrationApplicable() { - return store.getters.vehicle.isMobileStaticRecalibrationApplicable; - }, }, components: { diff --git a/src/store/index.js b/src/store/index.js index c591d493d..c07fffbd3 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -68,7 +68,6 @@ const getDefaultState = () => { registration: { licensePlate: null, }, - isMobileStaticRecalibrationApplicable: false, }, serviceLocation: { address: null, @@ -226,10 +225,6 @@ export const mutations = { updateVehicleVin(state, vin) { state.order.vehicle.vin = vin; }, - updateIsMobileStaticRecalibrationApplicable(state, isMobileStaticRecalibrationApplicable) { - state.order.vehicle.isMobileStaticRecalibrationApplicable = - isMobileStaticRecalibrationApplicable; - }, updateIsRepair(state, isRepair) { state.order.damage.isRepair = isRepair; }, @@ -358,8 +353,6 @@ export const mutations = { state.order.vehicle.imageUrl = vehicleInfo.imageUrl; state.order.vehicle.imageVifNumber = vehicleInfo.imageVifNumber; state.order.vehicle.imageColor = vehicleInfo.imageVifColor; - state.order.vehicle.isMobileStaticRecalibrationApplicable = - vehicleInfo.isMobileStaticRecalibrationApplicable; }, updateRegistration(state, registrationInfo) { state.order.vehicle.registration.licensePlate = registrationInfo?.licensePlate; @@ -552,7 +545,6 @@ export const mutations = { state.order.vehicle.imageUrl = null; state.order.vehicle.imageVifNumber = null; state.order.vehicle.imageColor = null; - state.order.vehicle.isMobileStaticRecalibrationApplicable = false; }, resetDamageState(state) { state.order.damage.isRepair = null; @@ -1656,8 +1648,6 @@ export const actions = { const coverageStatus = coverageStatusEnum(order.payment?.insuranceCoverage?.coverageStatus); const coverageType = coverageTypeEnum(order.payment?.insuranceCoverage?.coverageType); const isItacOptimized = order.policy?.isItac ?? false; - const isMobileStaticRecalibrationApplicable = - order.vehicle?.isMobileStaticRecalibrationApplicable; const zipCode = serviceZipCode ?? order.serviceLocation?.provider?.address?.zipCode ?? @@ -1673,12 +1663,10 @@ export const actions = { var endPoint = `${endpoints.GetMobileFeePart.url}/?serviceType=${serviceType}&facilityType=${facilityType}&parentAccountNumber=${parentAccountNumber}&billToAccountNumber=${billToAccountNumber}&providerNumber=${providerNumber}&isItacOptimized=${isItacOptimized}&zipCode=${zipCode}`; - if (isMobileStaticRecalibrationApplicable) { - const recalPartNumber = getRecalPartNumber(order.lineItems?.glassParts[0]); - const carId = order.vehicle?.carId; - if (recalPartNumber && carId) { - endPoint = `${endPoint}&partNumbers=${recalPartNumber}&carId=${carId}`; - } + const recalPartNumber = getRecalPartNumber(order.lineItems?.glassParts[0]); + const carId = order.vehicle?.carId; + if (recalPartNumber && carId) { + endPoint = `${endPoint}&partNumbers=${recalPartNumber}&carId=${carId}`; } if (coverageStatus) { @@ -2281,18 +2269,7 @@ export const actions = { // Vehicle saveVehicle( context, - { - year, - make, - model, - style, - carId, - category, - imageUrl, - imageVifNumber, - imageVifColor, - isMobileStaticRecalibrationApplicable, - } + { year, make, model, style, carId, category, imageUrl, imageVifNumber, imageVifColor } ) { if ( context.state.order.vehicle.year != year || @@ -2313,10 +2290,6 @@ export const actions = { context.commit(storeMutations.UPDATE_VEHICLE_IMAGE_URL, imageUrl); context.commit(storeMutations.UPDATE_VEHICLE_IMAGE_VIF_NUMBER, imageVifNumber); context.commit(storeMutations.UPDATE_VEHICLE_IMAGE_COLOR, imageVifColor); - context.commit( - storeMutations.UPDATE_VEHICLE_MOBILE_STATIC_RECALIBRATION_APPLICABLE, - isMobileStaticRecalibrationApplicable - ); } }, From 6881ff35ec8cc27b1dc6e424f615099bf4b9bffb Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Mon, 10 Feb 2025 18:44:16 -0500 Subject: [PATCH 4/6] CASH-153: duplicate date-picker and begin styling --- .../date-picker/date-picker-2.vue | 1093 +++++++++++++++++ src/layouts/schedule/schedule.vue | 9 +- 2 files changed, 1098 insertions(+), 4 deletions(-) create mode 100644 src/digital-components/date-picker/date-picker-2.vue diff --git a/src/digital-components/date-picker/date-picker-2.vue b/src/digital-components/date-picker/date-picker-2.vue new file mode 100644 index 000000000..a1af80723 --- /dev/null +++ b/src/digital-components/date-picker/date-picker-2.vue @@ -0,0 +1,1093 @@ + + + + + diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 7800876cd..6c06cf727 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -10,6 +10,7 @@
+ selectedDate: {{ selectedDate }} - Date: Thu, 13 Feb 2025 19:33:12 -0500 Subject: [PATCH 5/6] CASH-153 - new styling --- .../date-picker/date-picker-2.vue | 92 +++++-------------- 1 file changed, 24 insertions(+), 68 deletions(-) diff --git a/src/digital-components/date-picker/date-picker-2.vue b/src/digital-components/date-picker/date-picker-2.vue index a1af80723..7a0f4e0cf 100644 --- a/src/digital-components/date-picker/date-picker-2.vue +++ b/src/digital-components/date-picker/date-picker-2.vue @@ -750,8 +750,7 @@ export default { .grid-item { text-align: center; - // margin: 10px 3px; - margin: 0; + margin: 0; font-size: 0.875rem; line-height: 1.5; @@ -810,50 +809,27 @@ export default { position: relative; display: flex; justify-content: center; - // align-items: center; - align-items: flex-start; + align-items: flex-start; outline: none; - // height: 1.5rem; - width: 100%; - height: 2.5rem; + width: 100%; opacity: 1; - transition: + transition: height ease 250ms, opacity ease 250ms; - color: $gray-500; - background-color: $gray-100; - + color: $gray-500; + background-color: $gray-100; input[type="radio"] { position: absolute; //override bootstrap height: 0; opacity: 0; - &:focus-visible + label { - box-shadow: 0 0 0 2.5px $blue; - } - - &:focus + label, - &:checked:focus + label { - box-shadow: - 0 0 0 3px #fff, - 0 0 0 5.5px #1574a1; - background-color: $blue; - color: $white; - &.current-day { - &:after { - background-color: $white; - } - .first-day { - color: $white; - } - } - } - &:checked + label { - color: $white; - background: $blue; + background: $blue-100; + border: 2px solid $blue; + border-radius: 4px; + &:after { background-color: $white; } @@ -882,29 +858,25 @@ export default { position: relative; cursor: pointer; display: flex; - flex-direction: column; + flex-direction: column; justify-content: center; align-items: center; min-width: 2.5rem; - // width: 2.5rem; - // height: 2.5rem; - min-height: 2.5rem; - width: 100%; - font-size: .75rem; - line-height: 1.2; - justify-content: flex-start; - padding: .25rem; - + height: 3rem; + width: 100%; + font-size: 0.75rem; + line-height: 1.2; + justify-content: flex-start; + padding: 0.25rem; span { - margin-top: .25rem; + margin-top: 0.25rem; &.small { font-size: 0.75rem; color: $gray-550; } } - // &:hover, &:checked { @include media-breakpoint-up(sm) { box-shadow: 0 0 0 4px transparent; @@ -930,30 +902,16 @@ export default { } &.selectable-day { - background-color: $white; + background-color: $white; label { color: $blue; - // background-color: $blue-100; - // border: 1px solid $blue; - // min-width: 2.5rem; - // width: 2.5rem; - // border-radius: 50%; - - span { - // text-underline-offset: 4px; - text-decoration: underline; - } + span { + text-decoration: underline; + } } } - // &.unavailable-day { - // label { - // color: $gray-500; - // background-color: $gray-100; - // border: none; - // pointer-events: none; - // } - // } + &.unavailable-day:not(&.sunday) { label { &::before { @@ -974,13 +932,11 @@ export default { &:after { content: ""; - margin-top: .2rem; + margin-top: 0.2rem; width: 0.25rem; height: 0.25rem; border-radius: 50%; background-color: $black; - // position: absolute; - // top: 28px; } .first-day { color: $blue; From 881ad6345824e0969f15ada65a98522a171572b4 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Thu, 13 Feb 2025 19:46:26 -0500 Subject: [PATCH 6/6] CASH-153 - cleanup and more css tweaks --- src/digital-components/date-picker/date-picker-2.vue | 6 +++--- src/layouts/schedule/schedule.vue | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/digital-components/date-picker/date-picker-2.vue b/src/digital-components/date-picker/date-picker-2.vue index 7a0f4e0cf..50ea6f0fb 100644 --- a/src/digital-components/date-picker/date-picker-2.vue +++ b/src/digital-components/date-picker/date-picker-2.vue @@ -39,7 +39,6 @@ date.dayClasses, date.isSelectable ? 'selectable-day' : '', ]"> -
- selectedDate: {{ selectedDate }}