diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue index b060167cb..f9c1b6279 100644 --- a/src/digital-components/button-question/button-question.vue +++ b/src/digital-components/button-question/button-question.vue @@ -226,7 +226,7 @@ export default { if (this.buttonTypeString == "radio") { classes += " radio-button-container"; } else if (this.buttonTypeString == "servicePackageRadio") { - classes = "package-wrapper col-md-4"; + classes = "package-wrapper col"; } if (this.buttonTypeString == "listCard" && this.buttonsInfo.length > 2) { diff --git a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue index a25224f69..48973c2e5 100644 --- a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue +++ b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue @@ -99,9 +99,6 @@ export default { // hide save progress button; show success message alert this.isProgressSaved = true; - // communicate to parent the new status - this.$emit("save-progress-saved"); - this.modal.closeModal(); }, }, diff --git a/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue b/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue index 4ab1213c4..808163fe6 100644 --- a/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue +++ b/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue @@ -148,7 +148,7 @@ export default { position: relative; color: $black; border: none; - border-radius: .25rem; + border-radius: 0.25rem; font-weight: 900; font-size: 0.875rem; text-align: center; diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 221eae723..7256acc69 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -20,7 +20,7 @@
-
+
-
+
+ pageName="quote" /> 2) { + return "col-xl-8"; + } else { + return "col-xl-6"; + } + }, + currentNumberOfPackagesAction(packageNumber) { + this.packageNumber = packageNumber; + }, openModalAction(modalName) { this.$refs[modalName].openModal(); }, diff --git a/src/layouts/quote/service-package-question/service-package-question.vue b/src/layouts/quote/service-package-question/service-package-question.vue index 7df8dab5f..b39213267 100644 --- a/src/layouts/quote/service-package-question/service-package-question.vue +++ b/src/layouts/quote/service-package-question/service-package-question.vue @@ -150,6 +150,7 @@ export default { : "Special: Save $" + this.getServicePackageDiscountPrice(), }, })); + this.$emit("currentNumberOfPackages", modifiedAnswers.length); return modifiedAnswers; }, isServicePackageDiscountOnOrder() { diff --git a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue index 1ad393650..f16ff4821 100644 --- a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue +++ b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue @@ -141,6 +141,9 @@ export default { .package-main { .package-wrapper { margin: 1rem 0; + &:first-child { + margin: 1rem 0 0 0; + } &:last-child { margin: 1rem 0 0 0; } @@ -148,6 +151,12 @@ export default { margin: 1rem 0.5rem 0 0.5rem; display: flex; flex-direction: column; + &:first-child { + margin: 1rem 0.5rem 0 0; + } + &:last-child { + margin: 1rem 0 0 0.5rem; + } } label { diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 136c0ef14..6f7f67c6f 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -27,6 +27,9 @@ import store from "@/store"; import baseMixin from "@/mixins/base-mixin"; import { applicationConfig } from "../constants/application-config"; import { getFunnelCookie } from "@/helpers/heritage-integration/cookie-helper"; +import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; +import router from "@/router/index.js"; +import { getQuerystringParameter } from "@/helpers/querystring-helper"; export default { methods: { @@ -714,14 +717,19 @@ export default { // The sid cookie for analytics will expire every 30 minutes and get recreated in initSession. If this happens // and we also have the funnel cookie present, that indicates they have an existing session that is now expired // so route them to the return user page. + const fromHeritage = getQuerystringParameter(queryStrings.FROM_HERITAGE) === "true"; const funnelCookieLastTouched = getFunnelCookie()?.LastTouched; if ( this.noSession() && + !fromHeritage && funnelCookieLastTouched !== null && funnelCookieLastTouched !== undefined ) { await this.initSession(); - window.location.href = applicationConfig.RETURN_USER_PAGE; + router.push({ + path: "/", + query: { fmgPage: fmgPageValues.RETURN_USER }, + }); return; } diff --git a/src/router/index.js b/src/router/index.js index f04c0613d..118e39cd1 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -80,8 +80,9 @@ const routes = [ return; } - const fromHeritage = getQuerystringParameter(queryStrings.FROM_HERITAGE) === "true"; const fromReturnUser = from?.name === fmgPageValues.RETURN_USER; + const fromContentSite = getQuerystringParameter(queryStrings.START_TYPE) === "fmg"; + const toReturnUserPage = to.query?.fmgPage === fmgPageValues.RETURN_USER; // Intercept all navigation if a submitted order exists in storage if (window.sessionStorage.getItem("submittedOrder") !== null) { @@ -92,18 +93,20 @@ const routes = [ } // On entering the funnel "fresh", read cookie information, decide what to do next. else if (from.redirectedFrom === undefined || fromReturnUser) { - // if entering the funnel from non-funnel check and see if there is already a funnel cookie. - // if so, send them to return-user page + // 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 ( - to?.query?.fmgPage !== fmgPageValues.RETURN_USER && - !fromReturnUser && - !fromHeritage && + if (fromContentSite && funnelCookieLastTouched !== null && - funnelCookieLastTouched !== undefined + funnelCookieLastTouched !== undefined && + !toReturnUserPage ) { - log(" --navigate to return user"); - NavigateToReturnUser(next, to); + log(" --from content site navigate to return user"); + router.push({ + path: "/", + query: { fmgPage: fmgPageValues.RETURN_USER }, + }); + return; } // clear the saveSessionPromise - if it exists in the vuex store but a new instance was created @@ -651,42 +654,6 @@ function GetRouteInfoFromPageName(pageName) { return routeData; } -async function NavigateToReturnUser(next, to) { - const returnRoute = GetRouteInfoFromPageName(fmgPageValues.RETURN_USER); - log("--returnRoute:", returnRoute); - - if (router.hasRoute(to.query.fmgPage)) { - // Since our route is already in scope, we can grab the component from it and call the arePagePrerequisitesValid function. - let component = router - .getRoutes() - .filter((x) => x.name === fmgPageValues.RETURN_USER)[0].components; - - log("--return-user component:", component); - - // If the component hasn't been loaded fully, load it before we check prerequisites. - if (component.default.methods === undefined) { - component = await component.default(); - } - - log(" --has route for return-user:", fmgPageValues.RETURN_USER); - return next({ name: fmgPageValues.RETURN_USER, query: to.query, params: to.params }); - } else { - log(" --add route for return-user:", fmgPageValues.RETURN_USER); - router.addRoute({ - path: returnRoute[0].path, // Always the same path, because we control it with query strings. - name: returnRoute[0].name, - component: returnRoute[0].component, - }); - - next({ - name: returnRoute[0].name, - query: Object.assign(to.query, { fmgPage: returnRoute[0].name }), - params: to.params, - }); - return; - } -} - // Go to our start page on a 404. function GoToFunnelStartOn404(next, errorPayload = null) { if (errorPayload !== null) { diff --git a/src/ux-components/button-main/button-main.vue b/src/ux-components/button-main/button-main.vue index 848cf3866..7980adf99 100644 --- a/src/ux-components/button-main/button-main.vue +++ b/src/ux-components/button-main/button-main.vue @@ -5,7 +5,7 @@ :class="[ isPrimary ? 'btn-primary' : 'btn-secondary', isFloat ? 'float-end' : '', - (isLoaderDisplayed && !suppressLoader) ? 'has-loader' : '', + isLoaderDisplayed && !suppressLoader ? 'has-loader' : '', ]" @click="clicked"> {{ this.buttonText }}