diff --git a/src/digital-components/modal/modal.vue b/src/digital-components/modal/modal.vue
index 37ebee18e..e412678ff 100644
--- a/src/digital-components/modal/modal.vue
+++ b/src/digital-components/modal/modal.vue
@@ -25,17 +25,17 @@
-
-
@@ -53,6 +53,7 @@ export default {
props: {
headerText: String,
footerButtonText: String,
+ suppressPageScroll: Boolean,
onModalOpenedCallback: {
type: Function,
},
@@ -107,8 +108,10 @@ export default {
onModalClosed() {
this.resetButtonStyle();
this.onModalClosedCallback?.();
+ if (this.suppressPageScroll) document.querySelector("body").classList.remove("prevent-modal-scroll");
},
openModal() {
+ if (this.suppressPageScroll) document.querySelector("body").classList.add("prevent-modal-scroll");
const modal = Modal.getOrCreateInstance(document.getElementById(this.modalId));
modal.show();
this.$emit("isModalOpened", true);
@@ -231,6 +234,29 @@ export default {
}
}
}
+.save-progress-modal-question {
+ p.modal-body {
+ padding: 0;
+ }
+ .modal-body {
+ display: flex;
+ flex-direction: column;
+ .textbox-question {
+ padding: .25rem 0;
+ label {
+ text-align: left;
+ font-weight: 600;
+ }
+ }
+ }
+ .modal-disclaimer {
+ font-size: .75rem;
+ order: 2;
+ }
+ .modal-footer {
+ padding: 1.5rem 0;
+ }
+}
body {
.modal-backdrop {
height: 100%;
diff --git a/src/fmg-components/layouts/questions-page-layout/questions-page-layout.vue b/src/fmg-components/layouts/questions-page-layout/questions-page-layout.vue
index 982738394..2c4d71803 100644
--- a/src/fmg-components/layouts/questions-page-layout/questions-page-layout.vue
+++ b/src/fmg-components/layouts/questions-page-layout/questions-page-layout.vue
@@ -25,7 +25,7 @@
-
+
+
+
diff --git a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.spec.js b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.spec.js
new file mode 100644
index 000000000..15fb1481d
--- /dev/null
+++ b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.spec.js
@@ -0,0 +1,51 @@
+import { mount, shallowMount } from "@vue/test-utils";
+import saveProgressModalQuestion from "./save-progress-modal-question";
+import { getMountOptions } from "@/helpers/unit-test-helper.js";
+
+jest.mock("@/digital-components/modal/modal", () => ({
+ methods: {
+ openModal: jest.fn(),
+ resetButtonStyle: jest.fn(),
+ },
+}));
+
+describe("save-progress-modal-question ", () => {
+ describe("when openModal is run ", () => {
+ test("the modal should open ", () => {
+ // Arrange
+ const { wrapper } = setupMocks({
+ props: {
+ modelValue: "",
+ modalWidgetName: "testModal",
+ },
+ });
+
+ // Act
+ wrapper.vm.openModal();
+
+ // Assert
+ expect(wrapper.vm.modal).not.toBeNull();
+ });
+ });
+});
+
+function setupMocks({ options, props }) {
+ const mountOptions = getMountOptions({
+ ...options,
+ });
+
+ const mockBaseMixin = {
+ methods: {
+ getCmsContent: jest.fn(),
+ dispatchStoreAction: jest.fn(),
+ },
+ };
+
+ if (props) mountOptions.propsData = props;
+
+ mountOptions.global.mixins = [mockBaseMixin];
+
+ const wrapper = mount(saveProgressModalQuestion, mountOptions);
+
+ return { wrapper };
+}
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
new file mode 100644
index 000000000..4ff6304f5
--- /dev/null
+++ b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue
@@ -0,0 +1,193 @@
+
+
+
+
+
+ {{ modalBodyText }}
+
+
+
+
+
+
+
+
+
diff --git a/src/fmg-components/save-progress-modal-question/save-progress-question/save-progress-question.spec.js b/src/fmg-components/save-progress-modal-question/save-progress-question/save-progress-question.spec.js
new file mode 100644
index 000000000..7cc3d100c
--- /dev/null
+++ b/src/fmg-components/save-progress-modal-question/save-progress-question/save-progress-question.spec.js
@@ -0,0 +1,40 @@
+import { shallowMount } from "@vue/test-utils";
+import saveProgressQuestion from "./save-progress-question";
+
+describe("save-progress-question.vue", () => {
+ it("Should get the modelValue", async () => {
+ // Arrange
+ const text = "test";
+ const wrapper = shallowMount(saveProgressQuestion, {
+ props: {
+ modelValue: text,
+ },
+ attachTo: document.body,
+ });
+
+ // Act
+ const modelValueText = wrapper.vm.value;
+ wrapper.vm.value = "test also";
+
+ // Assert
+ expect(modelValueText).toEqual("test");
+ });
+
+ it("Should emit to set value", async () => {
+ // Arrange
+ const text = "test";
+ const wrapper = shallowMount(saveProgressQuestion, {
+ props: {
+ modelValue: text,
+ },
+ attachTo: document.body,
+ });
+
+ // Act
+ const modelValueText = wrapper.vm.value;
+ wrapper.vm.value = "test also";
+
+ // Assert
+ expect(wrapper.emitted("update:modelValue")).toEqual([["test also"]]);
+ });
+});
diff --git a/src/fmg-components/save-progress-modal-question/save-progress-question/save-progress-question.vue b/src/fmg-components/save-progress-modal-question/save-progress-question/save-progress-question.vue
new file mode 100644
index 000000000..221aa3415
--- /dev/null
+++ b/src/fmg-components/save-progress-modal-question/save-progress-question/save-progress-question.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js
index 5e71bb5b7..4afc7e115 100644
--- a/src/helpers/heritage-integration/navigation-helper.js
+++ b/src/helpers/heritage-integration/navigation-helper.js
@@ -42,13 +42,10 @@ export async function getDirectNavigation(toRoute) {
return fmgPageValues.VEHICLE_DAMAGE;
}
- if (
- fmgPageValue === fmgPageValues.QUOTE ||
- fmgPageValue === fmgPageValues.INSURANCE_COMPANY
- ) {
+ if (fmgPageValue === fmgPageValues.QUOTE) {
const skipVin = await skipVinLookup();
- if (skipVin) {
+ if (skipVin || !store.getters.vehicle?.vin) {
return fmgPageValues.ESTIMATE;
} else {
return fmgPageValues.VIN_LOOKUP;
diff --git a/src/helpers/heritage-integration/navigation-helper.spec.js b/src/helpers/heritage-integration/navigation-helper.spec.js
index 2af724828..396b4eee1 100644
--- a/src/helpers/heritage-integration/navigation-helper.spec.js
+++ b/src/helpers/heritage-integration/navigation-helper.spec.js
@@ -400,26 +400,6 @@ describe("getPageToRouteExistingOrderTo", () => {
// Assert
expect(result).toBe(fmgPageValues.ESTIMATE);
});
-
- test("Replace navigation to `insurance-company` with `estimate`", async () => {
- // Arrange
- const toRoute = {
- query: {
- fmgPage: fmgPageValues.INSURANCE_COMPANY,
- },
- };
-
- store.commit(storeMutations.UPDATE_IS_VERIFIED_INSURANCE, true);
- store.commit(storeMutations.UPDATE_REFERRAL_NUMBER, "666666");
- store.commit(storeMutations.UPDATE_IS_REPAIR, true);
- store.commit(storeMutations.UPDATE_MAKE, "acura");
-
- // Act
- const result = await getPageToRouteExistingOrderTo(toRoute);
-
- // Assert
- expect(result).toBe(fmgPageValues.ESTIMATE);
- });
});
describe("Vin-Required", () => {
@@ -438,29 +418,7 @@ describe("getPageToRouteExistingOrderTo", () => {
store.commit(storeMutations.UPDATE_GLASS_TO_REPLACE, [
{ glassLocation: glassLocations.WINDSHIELD },
]);
-
- // Act
- const result = await getPageToRouteExistingOrderTo(toRoute);
-
- // Assert
- expect(result).toBe(fmgPageValues.VIN_LOOKUP);
- });
-
- test("Replace navigation to `insurance-company` with `vin-lookup`", async () => {
- // Arrange
- const toRoute = {
- query: {
- fmgPage: fmgPageValues.INSURANCE_COMPANY,
- },
- };
-
- store.commit(storeMutations.UPDATE_IS_VERIFIED_INSURANCE, true);
- store.commit(storeMutations.UPDATE_REFERRAL_NUMBER, "666666");
- store.commit(storeMutations.UPDATE_IS_REPAIR, false);
- store.commit(storeMutations.UPDATE_MAKE, "acura");
- store.commit(storeMutations.UPDATE_GLASS_TO_REPLACE, [
- { glassLocation: glassLocations.WINDSHIELD },
- ]);
+ store.commit(storeMutations.UPDATE_VEHICLE_VIN, "abcd1234");
// Act
const result = await getPageToRouteExistingOrderTo(toRoute);
diff --git a/src/layouts/capability-questions/capability-questions.vue b/src/layouts/capability-questions/capability-questions.vue
index 4d637c978..d189f0f44 100644
--- a/src/layouts/capability-questions/capability-questions.vue
+++ b/src/layouts/capability-questions/capability-questions.vue
@@ -12,13 +12,22 @@
@forwardButtonAction="forwardButtonAction"
@back-click="navigateBack"
:key="currentGlassIndex"
- :index="currentGlassIndex" />
+ :index="currentGlassIndex">
+
+
+
+
+
diff --git a/src/layouts/customer-details/customer-details.vue b/src/layouts/customer-details/customer-details.vue
index ccb77c184..6775e36da 100644
--- a/src/layouts/customer-details/customer-details.vue
+++ b/src/layouts/customer-details/customer-details.vue
@@ -87,6 +87,7 @@ import { required, regex } from "@/helpers/validation-rules";
import { Form, defineRule } from "vee-validate";
import { useField, validate } from "vee-validate";
import store from "@/store";
+import { paymentMethods } from "@/constants/payment-method-constants";
// DEFINE VALIDATION RULES
defineRule("first-name-required", required(errorMessages.FIRST_NAME_REQUIRED));
@@ -162,7 +163,7 @@ export default {
backButtonAction() {
this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route);
},
- forwardButtonAction() {
+ async forwardButtonAction() {
this.dispatchStoreAction(
this.storeActions.SAVE_CUSTOMER_DETAILS,
{
@@ -181,6 +182,17 @@ export default {
false
);
+ // if the user has resorted to using browser back/forward buttons we could have promises unresolved if they clicked back before pia work order submission.
+ // so attempt to wait for them to finish.
+ if (store.getters.order.payment.isPia) {
+ this.dispatchStoreAction(
+ storeActions.SAVE_PAYMENT_METHOD_CHOICE,
+ paymentMethods.NONE,
+ false
+ );
+ await store.getters.applicationUser.saveSessionPromise;
+ }
+
this.$router.navigateWithSaving(this.navigationScenarios.CLICKED_FORWARD, this.$route);
},
},
diff --git a/src/layouts/molding-questions/molding-questions.vue b/src/layouts/molding-questions/molding-questions.vue
index 00df8c04b..c314d7225 100644
--- a/src/layouts/molding-questions/molding-questions.vue
+++ b/src/layouts/molding-questions/molding-questions.vue
@@ -12,13 +12,22 @@
@forwardButtonAction="forwardButtonAction"
@back-click="navigateBack"
:key="currentGlassIndex"
- :index="currentGlassIndex" />
+ :index="currentGlassIndex">
+
+
+
+
+
diff --git a/src/layouts/part-questions/part-questions.vue b/src/layouts/part-questions/part-questions.vue
index bc1ec308e..199a39493 100644
--- a/src/layouts/part-questions/part-questions.vue
+++ b/src/layouts/part-questions/part-questions.vue
@@ -12,13 +12,22 @@
@forwardButtonAction="forwardButtonAction"
@back-click="navigateBack"
:key="currentGlassIndex"
- :index="currentGlassIndex" />
+ :index="currentGlassIndex">
+
+
+
+
+
diff --git a/src/layouts/payment/payment.spec.js b/src/layouts/payment/payment.spec.js
index 4290a97d4..7bc14f229 100644
--- a/src/layouts/payment/payment.spec.js
+++ b/src/layouts/payment/payment.spec.js
@@ -202,6 +202,9 @@ describe("payment.vue", () => {
jobMaxMinutes: "45",
},
},
+ applicationUser: {
+ loggingOption: false,
+ },
policy: {
currentDeductible: 1,
},
diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue
index 419ccbdd5..ce5e6bcbe 100644
--- a/src/layouts/payment/payment.vue
+++ b/src/layouts/payment/payment.vue
@@ -532,13 +532,53 @@ export default {
store.getters.order.payment.isPia !== null &&
(store.getters.order.payment.isPia || !!store.getters.order.payment.piaType);
- return (
+ const preReqResult =
serviceLocationReqs &&
isInsuranceSet &&
scheduleReqs &&
customerReqs &&
- paymentMethodReqs
- );
+ paymentMethodReqs;
+
+ // prettier-ignore
+ {
+ if (store.getters.applicationUser.loggingOption || !preReqResult) {
+ console.log("------------- payment.vue pagePrereqs start -----------------");
+ console.log(new Date() + "mobileReqs:" + mobileReqs);
+ console.log(new Date() + "serviceLocation.address:" + serviceLocation.address);
+ console.log(new Date() + "serviceLocation.city:" + serviceLocation.city);
+ console.log(new Date() + "serviceLocation.state:" + serviceLocation.state);
+ console.log(new Date() + "serviceLocation.zipCode:" + serviceLocation.zipCode);
+ console.log("");
+ console.log(new Date() + "dropOffInshopReqs:" + dropOffInshopReqs);
+ console.log(new Date() + "serviceLocationReqs:" + serviceLocationReqs);
+ console.log(new Date() + "providerLocation.streetAddress:" + providerLocation.streetAddress);
+ console.log(new Date() + "providerLocation.city:" + providerLocation.city);
+ console.log(new Date() + "providerLocation.state:" + providerLocation.state);
+ console.log(new Date() + "providerLocation.zipCode:" + providerLocation.zipCode);
+ console.log("");
+ console.log(new Date() + "isInsuranceSet:" + isInsuranceSet);
+ console.log("");
+ console.log(new Date() + "scheduleReqs:" + scheduleReqs);
+ console.log(new Date() + "schedule.date:" + schedule.date);
+ console.log(new Date() + "schedule.startTime:" + schedule.startTime);
+ console.log(new Date() + "schedule.endTime:" + schedule.endTime);
+ console.log(new Date() + "schedule.jobMaxMinutes:" + schedule.jobMaxMinutes);
+ console.log(new Date() + "schedule.jobMinMinutes:" + schedule.jobMinMinutes);
+ console.log("");
+ console.log(new Date() + "customerReqs:" + customerReqs);
+ console.log(new Date() + "customer.firstName:" + customer.firstName);
+ console.log(new Date() + "customer.lastName:" + customer.lastName);
+ console.log(new Date() + "customer.phoneNumber:" + customer.phoneNumber);
+ console.log(new Date() + "customer.emailAddress:" + customer.emailAddress);
+ console.log("");
+ console.log(new Date() + "paymentMethodReqs:" + paymentMethodReqs);
+ console.log(new Date() + "store.getters.order.payment.isPia:" + store.getters.order.payment.isPia);
+ console.log(new Date() + "store.getters.order.payment.piaType:" + store.getters.order.payment.piaType);
+ console.log("------------- payment.vue pagePrereqs end -------------------");
+ }
+ }
+
+ return preReqResult;
},
getWOrkOrderNumber() {
if (store.getters.order.workOrderNumber) {
diff --git a/src/layouts/quote/quote.spec.js b/src/layouts/quote/quote.spec.js
index 778ce0ce8..0d25eed9b 100644
--- a/src/layouts/quote/quote.spec.js
+++ b/src/layouts/quote/quote.spec.js
@@ -121,6 +121,9 @@ store.getters = {
isInsurance: false,
parentAccountNumber: applicationConfig.CASH_PARENT_ACCOUNT_NUMBER,
},
+ customer: {
+ emailAddress: "test@test.com",
+ }
},
};
@@ -136,6 +139,9 @@ afterEach(() => {
insuranceCoverage: {},
isInsurance: false,
},
+ customer: {
+ emailAddress: "test@test.com",
+ }
};
});
@@ -263,6 +269,9 @@ describe("quote.vue", () => {
glassParts: ["item", "item2"],
},
payment: {},
+ customer: {
+ emailAddress: "test@test.com",
+ },
serviceLocation: {
zipCode: "12345",
zipCodeCtu: "value",
@@ -309,6 +318,9 @@ describe("quote.vue", () => {
glassParts: ["item", "item2"],
},
payment: {},
+ customer: {
+ emailAddress: "test@test.com",
+ },
serviceLocation: {
zipCode: "12345",
zipCodeCtu: "value",
@@ -355,6 +367,9 @@ describe("quote.vue", () => {
payment: {
isInsurance: null,
},
+ customer: {
+ emailAddress: "test@test.com",
+ },
serviceLocation: {
state: null,
},
@@ -396,6 +411,9 @@ describe("quote.vue", () => {
payment: {
isInsurance: null,
},
+ customer: {
+ emailAddress: "test@test.com",
+ },
serviceLocation: {
state: null,
},
@@ -438,6 +456,9 @@ describe("quote.vue", () => {
payment: {
isInsurance: true,
},
+ customer: {
+ emailAddress: "test@test.com",
+ },
serviceLocation: {
state: null,
},
@@ -480,6 +501,9 @@ describe("quote.vue", () => {
payment: {
isInsurance: false,
},
+ customer: {
+ emailAddress: "test@test.com",
+ },
serviceLocation: {
state: null,
},
@@ -523,6 +547,9 @@ describe("quote.vue", () => {
payment: {
isInsurance: null, // Ensure that previous selection isn't overriding selection
},
+ customer: {
+ emailAddress: "test@test.com",
+ },
serviceLocation: {
state: null,
},
@@ -568,6 +595,9 @@ describe("quote.vue", () => {
payment: {
isInsurance: null, // Ensure that previous selection isn't overriding selection
},
+ customer: {
+ emailAddress: "test@test.com",
+ },
serviceLocation: {
state: null,
},
@@ -612,6 +642,9 @@ describe("quote.vue", () => {
payment: {
isInsurance: null,
},
+ customer: {
+ emailAddress: "test@test.com",
+ },
serviceLocation: {
state: "AZ",
},
@@ -717,6 +750,9 @@ describe("quote.vue", () => {
isInsurance: true,
inactivePromos: [],
},
+ customer: {
+ emailAddress: "test@test.com",
+ },
},
externalParameterState: { isExternalParameter: 1 },
externalParameterQuote: {
diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue
index c83e61b23..7fcb506ce 100644
--- a/src/layouts/quote/quote.vue
+++ b/src/layouts/quote/quote.vue
@@ -77,6 +77,11 @@
@back-clicked="backButtonAction"
@ForwardClicked="forwardButtonAction" />
+
+
-
@@ -105,6 +105,7 @@ import contentGroupModal from "@/fmg-components/content-group-modal/content-grou
import loadingModal from "@/fmg-components/loading-modal/loading-modal.vue";
import afterpayModalBanner from "@/layouts/quote/afterpay-modal-banner/afterpay-modal-banner";
import recalDisclaimer from "@/layouts/quote/recal-disclaimer/recal-disclaimer.vue";
+import saveProgressModalQuestion from "@/fmg-components/save-progress-modal-question/save-progress-modal-question";
// Supporting files
import baseMixin from "@/mixins/base-mixin.js";
@@ -189,6 +190,8 @@ export default {
];
const resultMap = await settleAllPromises(promiseResultMap);
+ const emailFromStore = store.getters.order.customer.emailAddress;
+
const lineItems = deepClone(store.getters.order.lineItems);
lineItems.vaps = lineItems.vaps ?? [];
const nullSafeGlassParts = lineItems.glassParts ?? [];
@@ -269,6 +272,7 @@ export default {
// Call the "next" function to complete the transition to this page.
next(async (vm) => {
vm.setCmsContent(resultMap.cmsContent);
+ vm.isEmailInStoreOnPageLoad = emailFromStore?.length > 0;
vm.addableVaps = addableVaps;
vm.lineItems = lineItems;
vm.availableLineItems = pricingResults;
@@ -415,6 +419,7 @@ export default {
servicePackage: null,
holdParentAccountNumber: null,
holdBillToAccountNumber: null,
+ isEmailInStoreOnPageLoad: null,
};
},
computed: {
@@ -504,6 +509,9 @@ export default {
backButtonAction() {
vehicleQuestionsMixin.methods.navigateBack(this);
},
+ saveProgress() {
+ saveQuote({ pageNameToLog: "quote" });
+ },
forwardButtonAction() {
this.dispatchStoreAction(
this.storeActions.SAVE_PAYMENT_TYPE,
@@ -689,6 +697,7 @@ export default {
afterpayModalBanner,
promoModalQuestion,
recalDisclaimer,
+ saveProgressModalQuestion,
},
};
diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue
index 18eee6988..1009b9713 100644
--- a/src/layouts/vehicle/vehicle.vue
+++ b/src/layouts/vehicle/vehicle.vue
@@ -402,7 +402,7 @@ export default {
!options.length ||
store.getters.payment?.insuranceCoverage?.isVerified ||
(store.getters.order.payment?.isInsurance &&
- getFunnelCookie().HasDelayedClaimRegistration)
+ getFunnelCookie()?.HasDelayedClaimRegistration)
) {
return true;
} else {
diff --git a/src/router/index.js b/src/router/index.js
index 53adc4613..da3c1914c 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -113,6 +113,7 @@ const routes = [
store.commit(storeMutations.UPDATE_AFFILIATE_COOKIES, affiliateCookies);
}
setupAdvertiserTracking();
+ log(" --load session start");
const loadSessionResponse = await loadSessionIfPresent(
to.query.isInsurance != null
? to.query.isInsurance == "true"
@@ -121,6 +122,7 @@ const routes = [
: null,
to.query.fmgPage
);
+ log(" --load session end");
//Update external parameter state but not when returning from heritage
if (!to.query.fmgPage?.startsWith("service-location")) {
@@ -155,7 +157,10 @@ const routes = [
// Reroute around pages that should not be available.
// Exception 1: Integrated Users should not see vehicle or quote pages.
- if (store.getters.payment?.insuranceCoverage?.isVerified) {
+ if (
+ store.getters.payment?.insuranceCoverage?.isVerified ||
+ store.getters.order?.referralNumber?.length === 6
+ ) {
if (to.query.fmgPage === fmgPageValues.VEHICLE) {
to.query.fmgPage = fmgPageValues.VEHICLE_DAMAGE;
} else if (
@@ -194,6 +199,13 @@ const routes = [
if (!arePagePrerequisitesValid(component)) {
console.log("Page prereq error: " + component.default.name);
+
+ if (to.query.fmgPage === fmgPageValues.PAYMENT) {
+ await store.getters.applicationUser.saveSessionPromise;
+ window.location = applicationConfig.PIA_CANCEL_URL;
+ return;
+ }
+
GoToFunnelStartOn404(next);
}
@@ -380,6 +392,8 @@ router.navigateWithSaving = (
};
router.navigateToExternalUrl = (url, optionalQuery = {}) => {
+ log("------------- router navigateToExternalUrl -----------------");
+ log("url:", url);
navigateToUrl(url, optionalQuery);
};
@@ -397,6 +411,13 @@ router.overrideNavigation = (
optionalParams = {},
optionalPageData
) => {
+ log("------------- router overrideNavigation -----------------");
+ log("scenario:", scenario);
+ log("currentRoute:", currentRoute);
+ log("isSavingNavigation:", isSavingNavigation);
+ log("optionalQuery:", optionalQuery);
+ log("optionalParams:", optionalParams);
+ log("optionalPageData:", optionalPageData);
navigate(
scenario,
currentRoute,
@@ -508,6 +529,9 @@ async function navigate(
// Get navigation map depending on the scenario and the current 'page' you're on.
function getNavigationMap(scenario, currentRoute) {
const fmgPageValue = currentRoute.query.fmgPage;
+ log("------------- router index.js getNavigationMap start -----------------");
+ log("fmgPage: " + fmgPageValue + " scenario: " + scenario, "");
+ log("------------- router index.js getNavigationMap end -----------------");
const matchedQueryValue = routingTable(store)
.filter(
(item) =>
@@ -525,7 +549,7 @@ function log(message, data) {
data = data ?? "";
const outData = typeof data === "object" ? JSON.stringify(data) : data;
- if (log === "true") {
+ if (log === "true" || store.getters.applicationUser.loggingOption) {
console.log(new Date() + message + outData);
}
}
diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js
index d1a89897d..3e3dbd4bf 100644
--- a/src/router/router-constants/routing-table.js
+++ b/src/router/router-constants/routing-table.js
@@ -470,6 +470,10 @@ const routingTable = function (store) {
scenario: navigationScenarios.CLICKED_FORWARD,
destinationFmgPageValue: fmgPageValues.PAYMENT_METHOD,
},
+ {
+ scenario: navigationScenarios.CLICKED_PAY_NOW,
+ destinationFmgPageValue: fmgPageValues.PAYMENT_METHOD,
+ },
],
},
{
diff --git a/src/store/index.js b/src/store/index.js
index 47fddba84..1ef9d7e59 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -2509,10 +2509,12 @@ export const actions = {
},
savePaymentMethodChoice(context, paymentMethod) {
- const isPia = paymentMethod !== paymentMethods.LATER;
+ var isPia = null;
+ if (paymentMethod !== paymentMethods.NONE) {
+ isPia = paymentMethod !== paymentMethods.LATER;
+ }
context.commit(storeMutations.UPDATE_IS_PIA, isPia);
-
context.commit(storeMutations.UPDATE_PIA_TYPE, isPia ? paymentMethod : null);
},
diff --git a/src/styles/common-styles.scss b/src/styles/common-styles.scss
index 002debed8..a378f881e 100644
--- a/src/styles/common-styles.scss
+++ b/src/styles/common-styles.scss
@@ -77,7 +77,7 @@ body {
}
}
}
-.modal-open {
+.modal-open:not(.prevent-modal-scroll) {
.container-fluid {
&.page-container-grouped-styles {
overflow: hidden;
diff --git a/src/ux-components/button-main/button-main.vue b/src/ux-components/button-main/button-main.vue
index 9cc61e051..848cf3866 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 ? 'has-loader' : '',
+ (isLoaderDisplayed && !suppressLoader) ? 'has-loader' : '',
]"
@click="clicked">
{{ this.buttonText }}
@@ -47,7 +47,7 @@ export default {
true
);
if (!this.isDisabled) {
- this.isLoaderDisplayed = true;
+ if (!this.suppressLoader) this.isLoaderDisplayed = true;
this.$emit("click-event");
}
},