diff --git a/src/digital-components/modal/modal.vue b/src/digital-components/modal/modal.vue
index 461d144ae..58260e831 100644
--- a/src/digital-components/modal/modal.vue
+++ b/src/digital-components/modal/modal.vue
@@ -27,17 +27,17 @@
-
+
+
@@ -173,7 +173,7 @@ export default {
}
}
.modal-footer {
- padding: 1rem 0;
+ padding: 1rem 1.5rem;
position: sticky;
width: 100%;
bottom: 0;
diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js
index 4afc7e115..2fc557a16 100644
--- a/src/helpers/heritage-integration/navigation-helper.js
+++ b/src/helpers/heritage-integration/navigation-helper.js
@@ -76,6 +76,10 @@ export async function getImplicitNavigation(toRoute) {
const skipVin = await skipVinLookup();
+ if (store.getters.order.payment.insuranceCoverage?.isVerified) {
+ return fmgPageValues.HERITAGE;
+ }
+
if (quoteComponent.methods.arePagePrerequisitesValid()) {
// Do not send to quote if verified insurance user.
if (store.getters.requiresVerifiedRedirecting) {
diff --git a/src/layouts/capability-questions/capability-questions.vue b/src/layouts/capability-questions/capability-questions.vue
index 1896513a1..57567e128 100644
--- a/src/layouts/capability-questions/capability-questions.vue
+++ b/src/layouts/capability-questions/capability-questions.vue
@@ -64,7 +64,9 @@ export default {
// Call the "next" function to complete the transition to this page.
next(async (vm) => {
vm.setCmsContent(resultMap.cmsContent);
- vm.showSaveProgressModal = !(emailFromStore?.length > 0);
+ // turned off Save Your Progress for 1/23/25 release
+ // to restore, uncomment line below
+ // vm.showSaveProgressModal = !(emailFromStore?.length > 0);
if (store.getters.externalParameterState?.isExternalParameter) {
if (store.getters.externalParameterServiceZip.zipCode) {
await baseMixin.methods.dispatchStoreAction(
diff --git a/src/layouts/molding-questions/molding-questions.vue b/src/layouts/molding-questions/molding-questions.vue
index 1bcc3d7a8..4da3588d7 100644
--- a/src/layouts/molding-questions/molding-questions.vue
+++ b/src/layouts/molding-questions/molding-questions.vue
@@ -64,7 +64,9 @@ export default {
// Call the "next" function to complete the transition to this page.
next(async (vm) => {
vm.setCmsContent(resultMap.cmsContent);
- vm.showSaveProgressModal = !(emailFromStore?.length > 0);
+ // turned off Save Your Progress for 1/23/25 release
+ // to restore, uncomment line below
+ // vm.showSaveProgressModal = !(emailFromStore?.length > 0);
if (store.getters.externalParameterState?.isExternalParameter) {
if (store.getters.externalParameterServiceZip.zipCode) {
await baseMixin.methods.dispatchStoreAction(
diff --git a/src/layouts/part-questions/part-questions.vue b/src/layouts/part-questions/part-questions.vue
index f905e86c7..37f005d48 100644
--- a/src/layouts/part-questions/part-questions.vue
+++ b/src/layouts/part-questions/part-questions.vue
@@ -64,7 +64,9 @@ export default {
// Call the "next" function to complete the transition to this page.
next(async (vm) => {
vm.setCmsContent(resultMap.cmsContent);
- vm.showSaveProgressModal = !(emailFromStore?.length > 0);
+ // turned off Save Your Progress for 1/23/25 release
+ // to restore, uncomment line below
+ // vm.showSaveProgressModal = !(emailFromStore?.length > 0);
if (store.getters.externalParameterState?.isExternalParameter) {
if (store.getters.externalParameterServiceZip.zipCode) {
const serviceState = store.getters.order.serviceLocation.state;
diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue
index 7256acc69..f3590cbc3 100644
--- a/src/layouts/quote/quote.vue
+++ b/src/layouts/quote/quote.vue
@@ -293,8 +293,12 @@ export default {
// Call the "next" function to complete the transition to this page.
next(async (vm) => {
vm.setCmsContent(resultMap.cmsContent);
- vm.showSaveProgressPopup = showSaveProgressPopup;
- vm.showSaveProgressModal = showSaveProgressModal;
+
+ // turned off Save Your Progress for 1/23/25 release
+ // to restore, uncomment the 2 lines below
+ // vm.showSaveProgressPopup = showSaveProgressPopup;
+ // vm.showSaveProgressModal = showSaveProgressModal;
+
vm.addableVaps = addableVaps;
vm.lineItems = lineItems;
vm.availableLineItems = pricingResults;
diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue
index fd9b90b79..43f66c376 100644
--- a/src/layouts/vehicle-parts/vehicle-parts.vue
+++ b/src/layouts/vehicle-parts/vehicle-parts.vue
@@ -94,7 +94,10 @@ export default {
// Call the "next" function to complete the transition to this page.
next((vm) => {
vm.setCmsContent(resultMap.cmsContent);
- vm.showSaveProgressModal = !(emailFromStore?.length > 0);
+ // turned off Save Your Progress for 1/23/25 release
+ // to restore, uncomment line below
+ // vm.showSaveProgressModal = !(emailFromStore?.length > 0);
+
// Glass Part Question dynamic component
Object.keys(vm.$refs)
.filter((r) => r.includes(vm.RefPrefix) && vm.$refs[r][0] !== undefined)
diff --git a/src/router/index.js b/src/router/index.js
index 118e39cd1..d956af773 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -83,6 +83,8 @@ const routes = [
const fromReturnUser = from?.name === fmgPageValues.RETURN_USER;
const fromContentSite = getQuerystringParameter(queryStrings.START_TYPE) === "fmg";
const toReturnUserPage = to.query?.fmgPage === fmgPageValues.RETURN_USER;
+ log(" --fromReturnUser ", fromReturnUser);
+ log(" --to.query.fmgPage ", to.query?.fmgPage);
// Intercept all navigation if a submitted order exists in storage
if (window.sessionStorage.getItem("submittedOrder") !== null) {
@@ -96,15 +98,24 @@ const routes = [
// if entering the funnel from the content site, check and see if there is already a funnel cookie.
// if so, send them to return-user page.
const funnelCookieLastTouched = getFunnelCookie()?.LastTouched;
- if (fromContentSite &&
+ if (
+ fromContentSite &&
funnelCookieLastTouched !== null &&
funnelCookieLastTouched !== undefined &&
!toReturnUserPage
) {
log(" --from content site navigate to return user");
+ var qso = {
+ fmgPage: fmgPageValues.RETURN_USER,
+ };
+ const lg = getQuerystringParameter(queryStrings.LOG);
+ if (lg) {
+ qso[queryStrings.LOG] = true;
+ }
+
router.push({
path: "/",
- query: { fmgPage: fmgPageValues.RETURN_USER },
+ query: Object.assign({}, qso),
});
return;
}
@@ -155,21 +166,27 @@ const routes = [
log(" --load session end");
//Update external parameter state but not when returning from heritage
- if (!to.query.fmgPage?.startsWith("service-location")) {
+ if (!to.query.fmgPage?.startsWith("service-location") && !fromReturnUser) {
updateExternalParameterState();
}
// clear part related state because heritage selected a new vehicle
if (
to.query.fmgPage === fmgPageValues.VEHICLE &&
- eval(getFunnelCookie()?.HasDelayedClaimRegistration)
+ eval(getFunnelCookie()?.HasDelayedClaimRegistration &&
+ !fromReturnUser)
) {
store.commit(storeMutations.RESET_GLASS_PARTS_STATE);
}
// if coming from the return user page, clear the destination page so implicit navigation runs
+ log(" --to.query ", JSON.stringify(to.query));
if (fromReturnUser && to.query) {
- to.query[queryStrings.FMG_PAGE] = "";
+ log( " --clear to.query");
+ delete to.query[queryStrings.FMG_PAGE];
+
+ //to.query[queryStrings.FMG_PAGE] = "";
+ log(" --to.query cleared ", JSON.stringify(to.query));
}
const pageToRedirectTo = await getPageToRouteExistingOrderTo(to);
@@ -549,7 +566,7 @@ async function navigate(
const pageError = getQuerystringParameter(queryStrings.PAGE_ERROR);
const logQs = getQuerystringParameter(queryStrings.LOG);
baseMixin.methods.dispatchStoreAction(storeActions.SAVE_LOGGING_OPTION, logQs, false);
-
+
log("------------- router index.js navigate start -----------------");
log(" --scenario: ", scenario);
log(" --isSavingNavigation: ", isSavingNavigation);
@@ -613,6 +630,8 @@ function getNavigationMap(scenario, currentRoute) {
function log(message, data) {
const log = getQuerystringParameter(queryStrings.LOG);
+ baseMixin.methods.dispatchStoreAction(storeActions.SAVE_LOGGING_OPTION, log, false);
+
data = data ?? "";
const outData = typeof data === "object" ? JSON.stringify(data) : data;
diff --git a/src/ux-components/list-button-horizontal/list-button-horizontal.vue b/src/ux-components/list-button-horizontal/list-button-horizontal.vue
index 8bcd7bd3a..4b66023e0 100644
--- a/src/ux-components/list-button-horizontal/list-button-horizontal.vue
+++ b/src/ux-components/list-button-horizontal/list-button-horizontal.vue
@@ -83,7 +83,6 @@ export default {
.list-button-horizontal-content {
outline: none;
position: relative;
- background: $white;
transition: all 150ms linear;
border: 1px solid $gray-500;
border-radius: 0;
@@ -110,8 +109,8 @@ export default {
}
.list-button-horizontal-content:hover {
- background-color: $blue-700;
- color: $white;
+ background-color: transparent;
+ color: $blue;
box-shadow: none;
}
@@ -220,4 +219,121 @@ export default {
}
}
}
+// Special styles when there are multiple list-button-horizontal buttons
+// (number of chips, pay w/cash/insurance)
+.windshield-chip-count-question {
+ fieldset {
+ .d-flex {
+ .col {
+ &:first-child {
+ label {
+ &.list-group.list-button-horizontal {
+ z-index: 2;
+ &:hover {
+ background-color: $white;
+ border-top-left-radius: 0.5rem;
+ border-bottom-left-radius: 0.5rem;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ fieldset {
+ .d-flex {
+ .col {
+ label {
+ &.list-group.list-button-horizontal {
+ &:hover {
+ background-color: $white;
+ border-radius: 0;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ fieldset {
+ .d-flex {
+ .col {
+ &:last-child {
+ label {
+ &.list-group.list-button-horizontal {
+ z-index: 2;
+ &:hover {
+ background-color: $white;
+ border-top-right-radius: 0.5rem;
+ border-bottom-right-radius: 0.5rem;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+//NOT Windshiled Chip Count
+fieldset {
+ .d-flex {
+ .col {
+ &:first-child {
+ label {
+ &.list-group.list-button-horizontal {
+ z-index: 6;
+ &:hover {
+ background-color: $white;
+ border-top-left-radius: 0.5rem;
+ border-bottom-left-radius: 0.5rem;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+fieldset {
+ .d-flex {
+ .col {
+ label {
+ &.list-group.list-button-horizontal {
+ &:hover {
+ background-color: $white;
+ border-radius: 0;
+ }
+ }
+ }
+ }
+ }
+}
+
+fieldset {
+ .d-flex {
+ .col {
+ &:last-child {
+ label {
+ &.list-group.list-button-horizontal {
+ z-index: 6;
+ &:hover {
+ background-color: $white;
+ border-top-right-radius: 0.5rem;
+ border-bottom-right-radius: 0.5rem;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ }
+ }
+ }
+ }
+ }
+}