From 94678ed7ba922c8a91a92ff9de00fa55de6f0c66 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Tue, 31 Mar 2026 12:57:19 -0400 Subject: [PATCH 1/9] CASH-2491 pass querystring on init to send to logapp CASH-2491 pass querystring on init to send to logapp --- src/store/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/store/index.js b/src/store/index.js index 94128a402..023466b89 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1597,6 +1597,7 @@ export const actions = { operatorId: "WEB", userName: "SafeliteConceptFunnel", referrer: referrer, + clientData: window.location.search, }; return globalMethods From a4e853e528799f38defcbdf950745bcfae9dc13a Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 1 Apr 2026 13:49:06 -0400 Subject: [PATCH 2/9] CASH-2508 check externalparameterstate correctly CASH-2508 check externalparameterstate correctly. It should check more than the flag because parms can be optional. So make sure we're checking damage options stored in external params so the continue button is properly enabled --- src/layouts/vehicle-damage/vehicle-damage.vue | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index abad0da7d..e93e0fbd0 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -100,6 +100,7 @@ import store from "@/store"; import baseMixin from "@/mixins/base-mixin"; import { nextTick } from "vue"; import { getBoolFromString } from "@/helpers/boolean-helper"; +import { externalParameterStatus } from "@/constants/external-parameters"; // DEFINE VALIDATION RULES defineRule("replace-options-required", required(errorMessages.REPLACE_OPTIONS_REQUIRED)); @@ -143,7 +144,9 @@ export default { vm.$refs.backGlassOptions.initializeComponent( resultMap.damageOptions.backGlassOptions.availableReplacementOptions ); - if (store.getters.externalParameterState?.isExternalParameter) { + if (store.getters.externalParameterState?.isExternalParameter && + store.getters.externalParameterState?.isExternalParameter === externalParameterStatus.ACTIVE && + store.getters.externalParameterState.vehicleDamage?.damageType) { await nextTick(); const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); debugLog(`**** vehicle-damage is form valid: ${isValid} ****`); @@ -355,7 +358,9 @@ export default { ) { windShieldOptions.selectedWindshieldDamageType = damageLocationsSelected.REPLACE; - if (!store.getters.externalParameterState.isExternalParameter) { + if (!store.getters.externalParameterState.isExternalParameter || + store.getters.externalParameterState?.isExternalParameter !== externalParameterStatus.ACTIVE || + !store.getters.externalParameterState.vehicleDamage?.damageType) { windShieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.SINGLE ); @@ -666,12 +671,20 @@ export default { return this.$store.getters.requiresVerifiedRedirecting; }, isContinueEnabled() { - return ( + var isEnabled = ( this.isAnyDamageSelected && this.isWindshieldValid && this.isRearGlassValid && this.isSideGlassValid ); + if (!isEnabled) { + debugLog(`************************ isContinueEnabled: ${isEnabled} *****************************`); + debugLog(`**** this.isAnyDamageSelected: ${this.isAnyDamageSelected} ****`); + debugLog(`**** this.isWindshieldValid: ${this.isWindshieldValid} ****`); + debugLog(`**** this.isRearGlassValid: ${this.isRearGlassValid} ****`); + debugLog(`**** this.isSideGlassValid: ${this.isSideGlassValid} ****`); + } + return isEnabled; }, isAnyDamageSelected() { return this.selectedDamageLocations != null && this.selectedDamageLocations.length != 0; From a33149c621c5748515c7cc4246b92d42b5d7b4b7 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 1 Apr 2026 14:10:48 -0400 Subject: [PATCH 3/9] prettier --- src/layouts/vehicle-damage/vehicle-damage.vue | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index e93e0fbd0..ee8d3e074 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -144,9 +144,12 @@ export default { vm.$refs.backGlassOptions.initializeComponent( resultMap.damageOptions.backGlassOptions.availableReplacementOptions ); - if (store.getters.externalParameterState?.isExternalParameter && - store.getters.externalParameterState?.isExternalParameter === externalParameterStatus.ACTIVE && - store.getters.externalParameterState.vehicleDamage?.damageType) { + if ( + store.getters.externalParameterState?.isExternalParameter && + store.getters.externalParameterState?.isExternalParameter === + externalParameterStatus.ACTIVE && + store.getters.externalParameterState.vehicleDamage?.damageType + ) { await nextTick(); const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); debugLog(`**** vehicle-damage is form valid: ${isValid} ****`); @@ -358,9 +361,12 @@ export default { ) { windShieldOptions.selectedWindshieldDamageType = damageLocationsSelected.REPLACE; - if (!store.getters.externalParameterState.isExternalParameter || - store.getters.externalParameterState?.isExternalParameter !== externalParameterStatus.ACTIVE || - !store.getters.externalParameterState.vehicleDamage?.damageType) { + if ( + !store.getters.externalParameterState.isExternalParameter || + store.getters.externalParameterState?.isExternalParameter !== + externalParameterStatus.ACTIVE || + !store.getters.externalParameterState.vehicleDamage?.damageType + ) { windShieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.SINGLE ); @@ -671,14 +677,15 @@ export default { return this.$store.getters.requiresVerifiedRedirecting; }, isContinueEnabled() { - var isEnabled = ( + var isEnabled = this.isAnyDamageSelected && this.isWindshieldValid && this.isRearGlassValid && - this.isSideGlassValid - ); + this.isSideGlassValid; if (!isEnabled) { - debugLog(`************************ isContinueEnabled: ${isEnabled} *****************************`); + debugLog( + `************************ isContinueEnabled: ${isEnabled} *****************************` + ); debugLog(`**** this.isAnyDamageSelected: ${this.isAnyDamageSelected} ****`); debugLog(`**** this.isWindshieldValid: ${this.isWindshieldValid} ****`); debugLog(`**** this.isRearGlassValid: ${this.isRearGlassValid} ****`); From b7dcd92c9e0e23971c760f5fa48ca2e869156307 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 1 Apr 2026 15:20:49 -0400 Subject: [PATCH 4/9] CASH-2508 tests CASH-2508 tests --- src/layouts/vehicle-damage/vehicle-damage.spec.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/layouts/vehicle-damage/vehicle-damage.spec.js b/src/layouts/vehicle-damage/vehicle-damage.spec.js index 7ea899fda..3b8e46d22 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.spec.js +++ b/src/layouts/vehicle-damage/vehicle-damage.spec.js @@ -17,6 +17,7 @@ import store from "@/store"; import { validate } from "vee-validate"; import { damageLocationsSelected } from "@/constants/damage-locations-selected.js"; import * as cookieHelper from "@/helpers/heritage-integration/cookie-helper"; +import { externalParameterStatus } from "@/constants/external-parameters"; // Mock our module for promises. jest.mock("@/helpers/layout-helper.js", () => ({ @@ -817,7 +818,11 @@ describe("vehicle-damage.vue", () => { describe("vehicle-damage.vue", () => { test("should call forwardButtonAction if isExternalParameter is true and form is valid", async () => { // Set up the store with isExternalParameter as true - store.getters.externalParameterState = { isExternalParameter: true }; + store.getters.externalParameterState = { + isExternalParameter: true, + isExternalParameter: externalParameterStatus.ACTIVE, + vehicleDamage: { damageType: "windshieldReplace" }, + }; store.getters.externalParameterDamage = { damageType: "windshieldReplace", isRepair: false, From 59d9921dae6327ddf11d7a0d0058d0e361d7d1eb Mon Sep 17 00:00:00 2001 From: credelinghuys Date: Thu, 2 Apr 2026 15:22:42 -0400 Subject: [PATCH 5/9] CASH-1684: Alert message UI updates --- src/layouts/schedule/schedule.vue | 1 + src/ux-components/alert/alert.vue | 38 +++++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 8068ac6c1..f5462fb9e 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -85,6 +85,7 @@ ref="alertMSRNotCoveredByInsurance" class="mt-5 mb-5" v-if="isMSRFeeNotCoveredByInsurance" + :leftAlignCopy="true" :manualHeadline="MSRFeeAlertHeadlineText" :manualCopy="MSRFeeAlertBodyText" :showWarningIcon="true" diff --git a/src/ux-components/alert/alert.vue b/src/ux-components/alert/alert.vue index deb7bca8b..2ea618f9a 100644 --- a/src/ux-components/alert/alert.vue +++ b/src/ux-components/alert/alert.vue @@ -1,6 +1,6 @@