From b5f180099f00bc6ecffd2cf8e644996940d05d88 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Fri, 14 Jun 2024 15:21:11 -0400 Subject: [PATCH 01/68] WIP CSR-2115 remove recal glass only --- src/layouts/payment-method/payment-method.vue | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 29f36306d..f4a4b060c 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -45,6 +45,20 @@ v-bind:isDismissible="false" /> +
+ + +
+ +
+ + From b0377459d54950fc201c5d7957e929c41b118436 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Fri, 21 Jun 2024 13:40:13 -0400 Subject: [PATCH 08/68] WIP uncomment lines at end of testing. --- src/layouts/payment-method/payment-method.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 4f08d86df..a1224353d 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -45,7 +45,7 @@ v-bind:isDismissible="false" /> - +
- + Date: Fri, 21 Jun 2024 15:58:11 -0400 Subject: [PATCH 09/68] WIP add store info. --- src/layouts/payment-method/payment-method.vue | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index a1224353d..c9e8ffcdf 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -53,8 +53,13 @@
- - + +
@@ -332,7 +337,7 @@ export default { availableVaps: [], paymentMethodInternalModel: this.getPaymentMethodFromStore(), inactivePromos: this.getInactivePromosFromStore(), - isRecalAckOptIn: this.getIsRecalAckOptInFromStore(), + isRecalAck: this.getIsRecalAckFromStore(), }; }, methods: { @@ -402,8 +407,8 @@ export default { return serviceLocationReqs && isInsuranceSet && scheduleReqs && customerReqs; }, - getIsRecalAckOptInFromStore() { - return store.getters.order.customer.isRecalAckOptIn; + getIsRecalAckFromStore() { + return store.getters.order.customer.isRecalAck; }, getPaymentMethodFromStore() { const piaType = store.getters.order.payment.piaType; From 4db562212b1339b6d824e58e26dc686df23d4e70 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 24 Jun 2024 15:29:25 -0400 Subject: [PATCH 10/68] WIP add store actions for recal ack. --- src/constants/store-actions.js | 1 + src/layouts/payment-method/payment-method.vue | 37 ++++++++++++------- src/store/index.js | 4 ++ 3 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js index bd772cafe..6b3adc110 100644 --- a/src/constants/store-actions.js +++ b/src/constants/store-actions.js @@ -81,6 +81,7 @@ const storeActions = { SAVE_CAPABILITY_QUESTION_ANSWERS: "saveCapabilityQuestionAnswers", SAVE_PAYMENT_TYPE: "savePaymentType", SAVE_PAYMENT_METHOD_CHOICE: "savePaymentMethodChoice", + SAVE_RECAL_ACK_CHOICE: "saveRecalAckChoice", SAVE_PARENT_ACCOUNT_NUMBER: "saveParentAccountNumber", SAVE_BILL_TO_ACCOUNT_NUMBER: "saveBillToAccountNumber", SAVE_SUPPORTING_ITEMS: "saveSupportingItems", diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index c9e8ffcdf..0b0ce2af4 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -84,7 +84,9 @@ @back-clicked="backButtonAction" @ForwardClicked="forwardButtonAction" /> - + @@ -489,6 +491,13 @@ export default { false ); + // save recalibration acknowledgement checkbox + await this.dispatchStoreAction( + storeActions.SAVE_RECAL_ACK_CHOICE, + this.paymentMethod, + false + ); + // save lineitems as they now have salestax added await this.dispatchStoreAction( storeActions.SAVE_GLASS_PARTS_SUPPRESSING_STATE_RESETTING, @@ -733,18 +742,20 @@ export default { margin: 0; } .payment-method { - :deep(.modal-body) { - display: flex; - flex-direction: column; - h5 { - text-align: center; - order: 1; - } - p { - order: 3 - } - img { - order: 2; + .recal-modal { + :deep(.modal-body) { + display: flex; + flex-direction: column; + h5 { + text-align: center; + order: 1; + } + p { + order: 3 + } + img { + order: 2; + } } } } diff --git a/src/store/index.js b/src/store/index.js index 3ccfa4c01..fc4557458 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -2222,6 +2222,10 @@ export const actions = { context.commit(storeMutations.UPDATE_BILL_TO_ACCT_NUMBER, billToAccountNumber); }, + saveRecalAckChoice(context, recalAckChoice) { + context.commit(storeMutations.SAVE_RECAL_ACK_CHOICE, recalAckChoice); + }, + saveSupportingItems(context, supportingItems) { syncLineItemIds(supportingItems, context.state.order.lineItems.supportingItems); if (!supportingItemsEqual(supportingItems, context.state.order.lineItems.supportingItems)) { From dce4c0726034683339c542530ea71f8668a247f5 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 25 Jun 2024 10:26:17 -0400 Subject: [PATCH 11/68] Revert "WIP add store actions for recal ack." This reverts commit 4db562212b1339b6d824e58e26dc686df23d4e70. --- src/constants/store-actions.js | 1 - src/layouts/payment-method/payment-method.vue | 37 +++++++------------ src/store/index.js | 4 -- 3 files changed, 13 insertions(+), 29 deletions(-) diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js index 6b3adc110..bd772cafe 100644 --- a/src/constants/store-actions.js +++ b/src/constants/store-actions.js @@ -81,7 +81,6 @@ const storeActions = { SAVE_CAPABILITY_QUESTION_ANSWERS: "saveCapabilityQuestionAnswers", SAVE_PAYMENT_TYPE: "savePaymentType", SAVE_PAYMENT_METHOD_CHOICE: "savePaymentMethodChoice", - SAVE_RECAL_ACK_CHOICE: "saveRecalAckChoice", SAVE_PARENT_ACCOUNT_NUMBER: "saveParentAccountNumber", SAVE_BILL_TO_ACCOUNT_NUMBER: "saveBillToAccountNumber", SAVE_SUPPORTING_ITEMS: "saveSupportingItems", diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 0b0ce2af4..c9e8ffcdf 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -84,9 +84,7 @@ @back-clicked="backButtonAction" @ForwardClicked="forwardButtonAction" /> - + @@ -491,13 +489,6 @@ export default { false ); - // save recalibration acknowledgement checkbox - await this.dispatchStoreAction( - storeActions.SAVE_RECAL_ACK_CHOICE, - this.paymentMethod, - false - ); - // save lineitems as they now have salestax added await this.dispatchStoreAction( storeActions.SAVE_GLASS_PARTS_SUPPRESSING_STATE_RESETTING, @@ -742,20 +733,18 @@ export default { margin: 0; } .payment-method { - .recal-modal { - :deep(.modal-body) { - display: flex; - flex-direction: column; - h5 { - text-align: center; - order: 1; - } - p { - order: 3 - } - img { - order: 2; - } + :deep(.modal-body) { + display: flex; + flex-direction: column; + h5 { + text-align: center; + order: 1; + } + p { + order: 3 + } + img { + order: 2; } } } diff --git a/src/store/index.js b/src/store/index.js index fc4557458..3ccfa4c01 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -2222,10 +2222,6 @@ export const actions = { context.commit(storeMutations.UPDATE_BILL_TO_ACCT_NUMBER, billToAccountNumber); }, - saveRecalAckChoice(context, recalAckChoice) { - context.commit(storeMutations.SAVE_RECAL_ACK_CHOICE, recalAckChoice); - }, - saveSupportingItems(context, supportingItems) { syncLineItemIds(supportingItems, context.state.order.lineItems.supportingItems); if (!supportingItemsEqual(supportingItems, context.state.order.lineItems.supportingItems)) { From f2f8c2bead9c2e2d42ba0501ba6ef9be2c4bc796 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 25 Jun 2024 10:26:37 -0400 Subject: [PATCH 12/68] Revert "WIP add store info." This reverts commit b24b33e5ed50b380c1bba5af96c2f45afd2b6f27. --- src/layouts/payment-method/payment-method.vue | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index c9e8ffcdf..a1224353d 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -53,13 +53,8 @@
- - + +
@@ -337,7 +332,7 @@ export default { availableVaps: [], paymentMethodInternalModel: this.getPaymentMethodFromStore(), inactivePromos: this.getInactivePromosFromStore(), - isRecalAck: this.getIsRecalAckFromStore(), + isRecalAckOptIn: this.getIsRecalAckOptInFromStore(), }; }, methods: { @@ -407,8 +402,8 @@ export default { return serviceLocationReqs && isInsuranceSet && scheduleReqs && customerReqs; }, - getIsRecalAckFromStore() { - return store.getters.order.customer.isRecalAck; + getIsRecalAckOptInFromStore() { + return store.getters.order.customer.isRecalAckOptIn; }, getPaymentMethodFromStore() { const piaType = store.getters.order.payment.piaType; From 60a63891df0dfca825a2d1a25a2ce4c2308fc5be Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 25 Jun 2024 10:31:12 -0400 Subject: [PATCH 13/68] Revert "WIP uncomment lines at end of testing." This reverts commit b0377459d54950fc201c5d7957e929c41b118436. --- src/layouts/payment-method/payment-method.vue | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index a1224353d..2a293957f 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -53,8 +53,13 @@
- - + +
@@ -79,7 +84,10 @@ @back-clicked="backButtonAction" @ForwardClicked="forwardButtonAction" /> - + @@ -728,18 +736,20 @@ export default { margin: 0; } .payment-method { - :deep(.modal-body) { - display: flex; - flex-direction: column; - h5 { - text-align: center; - order: 1; - } - p { - order: 3 - } - img { - order: 2; + .recal-modal { + :deep(.modal-body) { + display: flex; + flex-direction: column; + h5 { + text-align: center; + order: 1; + } + p { + order: 3 + } + img { + order: 2; + } } } } From 9d3a6c9c821a1ecdf429b8149f0d87f72f94d298 Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Wed, 26 Jun 2024 06:16:35 -0400 Subject: [PATCH 14/68] Corrected logic for whether to display PIA message --- src/layouts/payment-method/payment-method.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 29f36306d..32a6185a7 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -51,7 +51,7 @@ validationRules="option-required" /> 0; } else { isEnabled = piaExperience === "PIA Optional" || piaExperience === "PIA Required"; } From 7d410749492727d4b92a5a019d53a5bb5b177e54 Mon Sep 17 00:00:00 2001 From: Sneha Date: Wed, 26 Jun 2024 17:45:28 +0530 Subject: [PATCH 15/68] CSR-2128 --- src/fmg-components/cart/cart.spec.js | 43 ------------------- src/fmg-components/cart/cart.vue | 41 ------------------ .../service-package-question.vue | 2 +- .../mobile-location-modal-questions.vue | 21 --------- .../service-location/service-location.vue | 10 ++++- 5 files changed, 10 insertions(+), 107 deletions(-) diff --git a/src/fmg-components/cart/cart.spec.js b/src/fmg-components/cart/cart.spec.js index 10207c8bb..3e1e9760f 100644 --- a/src/fmg-components/cart/cart.spec.js +++ b/src/fmg-components/cart/cart.spec.js @@ -263,49 +263,6 @@ describe("cart.vue", () => { expect(found).toBe(true); }); - // Mobile Fee Cart Item - test("if there is mobile fee on the order, a mobile fee cart item should be added to the cart", () => { - // Arrange - const lineItems = { - glassParts: [], - supportingItems: [ - { - description: null, - id: "9ff98501-03a4-432b-884e-e4e28f884a2f", - kitPrice: 0, - laborAmount: 34.98, - partNumber: "MOBILE FEE", - partType: "MOBILE FEE", - salesTax: 2.62, - sellingPrice: 0, - }, - ], - vaps: [], - promos: [], - }; - - const availableVaps = []; - - // Act - const { wrapper } = setupMocks({ - props: { - modelValue: lineItems, - availableVaps: availableVaps, - }, - }); - - // Assert - expect(wrapper.vm.mobileFeeCartItem).not.toBeNull(); - expect(wrapper.vm.mobileFeeCartItem.subTotal).toEqual(34.98); - expect(wrapper.vm.mobileFeeCartItem.salesTax).toEqual(2.62); - - const found = - wrapper.vm.cartItems.findIndex( - (cartItem) => cartItem == wrapper.vm.mobileFeeCartItem - ) >= 0; - expect(found).toBe(true); - }); - // Service package discount Fee Cart Item test("if there is service package discount fee on the order, a service package discount cart item should be added to the cart", () => { // Arrange diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index 649dc2db0..33090f172 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -376,9 +376,6 @@ export default { cartItems.push(this.suppliesRepairCartItem); } - if (this.mobileFeeCartItem) { - cartItems.push(this.mobileFeeCartItem); - } if (this.servicePackageDiscountCartItem) { cartItems.push(this.servicePackageDiscountCartItem); } @@ -744,44 +741,6 @@ export default { return cartItem; }, - mobileFeeCartItemName() { - return this.getCmsContent("MobileServiceTextWidget", "Text"); - }, - mobileFeeCartItem() { - let cartItem = null; - - const mobileFeeLineItem = this.supportingItems.find( - (lineItem) => lineItem.partType == partTypeStrings.MOBILE_FEE - ); - - if (mobileFeeLineItem) { - cartItem = { - name: this.mobileFeeCartItemName, - category: cartItemCategories.SUPPORTING_ITEMS, - cartItemType: cartItemTypes.MOBILE_FEE, - isDisplayed: true, - isRemovable: false, - subTotal: 0, - salesTax: 0, - lineItems: [], - isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( - cartItemTypes.MOBILE_FEE - ), - }; - - mobileFeeLineItem.cartItemType = cartItem.cartItemType; - cartItem.lineItems.push(mobileFeeLineItem); - - cartItem.subTotal += - (mobileFeeLineItem.kitPrice ?? 0) + - (mobileFeeLineItem.laborAmount ?? 0) + - (mobileFeeLineItem.sellingPrice ?? 0); - - cartItem.salesTax += mobileFeeLineItem.salesTax ?? 0; - } - - return cartItem; - }, servicePackageDiscountCartItemName() { return this.getCmsContent("ServicePackageDiscountTextWidget", "Text"); }, 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 5f72d6d16..1bd1302c3 100644 --- a/src/layouts/quote/service-package-question/service-package-question.vue +++ b/src/layouts/quote/service-package-question/service-package-question.vue @@ -235,7 +235,7 @@ export default { getPackagePrice(packageName, { discountedPrice = false, servicePackageDiscount = false }) { var lineItemsToPrice = [...this.nullSafeAvailableLineItems]; if (this.isRecalibrationOnOrder) { - lineItemsToPrice = this.nullSafeAvailableLineItems.filter((item) => { + lineItemsToPrice = lineItemsToPrice.filter((item) => { return item.partType != partTypeStrings.RECALIBRATION; }); } diff --git a/src/layouts/service-location/mobile-location-modal-questions/mobile-location-modal-questions.vue b/src/layouts/service-location/mobile-location-modal-questions/mobile-location-modal-questions.vue index 4558c3294..96b12d240 100644 --- a/src/layouts/service-location/mobile-location-modal-questions/mobile-location-modal-questions.vue +++ b/src/layouts/service-location/mobile-location-modal-questions/mobile-location-modal-questions.vue @@ -24,11 +24,6 @@ {{ errorMessage }} - +
@@ -81,7 +87,6 @@ v-if="selectedAppointmentType === 'Mobile'" v-model="mobileLocationQuestions" :mobileFeePart="mobileFeePart" - :mobileFeeApplies="mobileFeeApplies" @updated-mobile-fee-part="setMobileFeePart" @updated-serviceability="setServiceabilityDetails" @updated-contains-military-base="setContainsMilitaryBase" @@ -355,6 +360,9 @@ export default { recalibrationInformationModal() { return this.$refs.recalibrationInformationModal; }, + isInsurance() { + return store.getters.payment.isInsurance; + }, }, methods: { arePagePrerequisitesValid() { From da89f0929f9caca62442a80c0670ca73f078e02b Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Wed, 26 Jun 2024 11:27:20 -0400 Subject: [PATCH 16/68] WIP CSR-2115 --- src/constants/error-messages.js | 1 + .../checkbox-question/checkbox-question.vue | 32 ++++++++ src/layouts/payment-method/payment-method.vue | 79 ++++++++++--------- src/main.js | 10 +-- 4 files changed, 79 insertions(+), 43 deletions(-) diff --git a/src/constants/error-messages.js b/src/constants/error-messages.js index 71c782856..4326a5412 100644 --- a/src/constants/error-messages.js +++ b/src/constants/error-messages.js @@ -24,6 +24,7 @@ const errorMessages = { VIN_FORMAT: "Invalid VIN. Please make sure that you entered the correct 17-digit, alpha-numeric number. VINs do not contain the letters I, O, or Q", OPTION_REQUIRED: "Please select an option", + RECAL_ACK_REQUIRED: "Please acknowledge recalibration alert", VEHICLE_REQUIRED: "Please select a vehicle", MOBILE_LOCATION_REQUIRED: "Please enter your service address", DATE_REQUIRED: "Please select a date", diff --git a/src/digital-components/checkbox-question/checkbox-question.vue b/src/digital-components/checkbox-question/checkbox-question.vue index fc95555e4..c256fd0aa 100644 --- a/src/digital-components/checkbox-question/checkbox-question.vue +++ b/src/digital-components/checkbox-question/checkbox-question.vue @@ -10,6 +10,7 @@ type="checkbox" aria-checked="false" :name="checkboxName" + :validationRules="validationRules" :id="buttonID" :tabindex="tabIndex" :aria-required="isRequired" /> @@ -20,6 +21,10 @@ - + From b3a41f828d2b16f4e0e7129445cfd3ea85902ba0 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 8 Jul 2024 14:08:15 -0400 Subject: [PATCH 31/68] Add comment. --- src/styles/common-styles.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/styles/common-styles.scss b/src/styles/common-styles.scss index 0743f8322..be01f3ed8 100644 --- a/src/styles/common-styles.scss +++ b/src/styles/common-styles.scss @@ -37,6 +37,7 @@ body { max-width: 100%; } } + // Quote page desktop &.quote { .col-md-6, .col-lg-4 { From bcbf9359b8628d544ec3ea103ff3e2b8d6b753cd Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 8 Jul 2024 14:23:32 -0400 Subject: [PATCH 32/68] Format code. --- .../service-package-radio/service-package-radio.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 d637fd21c..1b4468230 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 @@ -12,7 +12,9 @@ ]" for="testradio">
-
+

@@ -136,7 +138,6 @@ export default { From 5c3e9e6789ae5582bc7ec0ef522793f0d797ec0a Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Fri, 12 Jul 2024 16:18:01 -0400 Subject: [PATCH 59/68] WIP --- src/layouts/quote/quote.vue | 2 +- .../service-package-radio/service-package-radio.vue | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index fb5980219..2fdb1b0ef 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -49,7 +49,7 @@ :lineItems="lineItems" /> Date: Fri, 12 Jul 2024 16:23:00 -0400 Subject: [PATCH 60/68] WIP align promo code copy. --- src/layouts/quote/quote.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 2fdb1b0ef..6549ebaa5 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -56,7 +56,7 @@ alertClass="alert-info" /> Date: Fri, 12 Jul 2024 18:40:42 -0400 Subject: [PATCH 61/68] CSR-2140 WIP added styles for spacing. --- src/layouts/quote/quote.vue | 6 +++--- .../service-package-radio/service-package-radio.vue | 2 +- src/styles/common-styles.scss | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 6549ebaa5..9cfbd38a7 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -49,14 +49,14 @@ :lineItems="lineItems" /> + class="mt-6" /> 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 057bcb0bd..56c5abfd0 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 @@ -317,7 +317,7 @@ export default { div.discount-price { color: #469d2a; font-weight: 600; - font-size: 26px; + font-size: 1.625rem; } @include media-breakpoint-up(md) { position: absolute; diff --git a/src/styles/common-styles.scss b/src/styles/common-styles.scss index 197655db1..730712297 100644 --- a/src/styles/common-styles.scss +++ b/src/styles/common-styles.scss @@ -37,6 +37,10 @@ body { max-width: 100%; } } + //Quote page max-width for service packages + .col-xl-8 { + max-width: 1200px; + } //END set max-width on columns } .pointer { From 6fec862fbf2671a0c49e9861a0c653e75352bb55 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Mon, 15 Jul 2024 10:21:36 -0400 Subject: [PATCH 62/68] CSR-2130 flag applePay for backend CSR-2130 flag applePay for backend --- src/constants/payment-method-constants.js | 1 + .../payment-pia-return/payment-pia-return.vue | 55 ++++++++++++------- src/layouts/payment/payment.vue | 34 +++++++++++- src/store/index.js | 1 + 4 files changed, 70 insertions(+), 21 deletions(-) diff --git a/src/constants/payment-method-constants.js b/src/constants/payment-method-constants.js index 8e01c2794..4f4c83e1a 100644 --- a/src/constants/payment-method-constants.js +++ b/src/constants/payment-method-constants.js @@ -6,4 +6,5 @@ export const paymentMethods = { AFTERPAY: "Afterpay", PAY_NOW: "PayNow", INSURANCE: "Insurance", + APPLE_PAY: "ApplePay", }; diff --git a/src/layouts/payment-pia-return/payment-pia-return.vue b/src/layouts/payment-pia-return/payment-pia-return.vue index 490405595..3d5231e36 100644 --- a/src/layouts/payment-pia-return/payment-pia-return.vue +++ b/src/layouts/payment-pia-return/payment-pia-return.vue @@ -26,6 +26,7 @@ export default { console.log("Error during payment: " + piaError); const paymentPageNavScenario = store.getters.order.payment.piaType === paymentMethods.CREDIT_CARD || + store.getters.order.payment.piaType === paymentMethods.APPLE_PAY || store.getters.order.payment.piaType === paymentMethods.AFTERPAY; if (paymentPageNavScenario) { this.$router.navigateWithoutSaving( @@ -45,13 +46,41 @@ export default { ); } } else { - const card_expirationMonth = getQuerystringParameter( - queryStrings.CARD_EXPIRATION_MONTH - ); - if (card_expirationMonth) { - await this.processCreditCardResponse(); - } else { - await this.processPaypalResponse(); + switch (store.getters.order.payment.piaType) { + case paymentMethods.CREDIT_CARD: + case paymentMethods.APPLE_PAY: + case paymentMethods.AFTERPAY: + await this.processCreditCardResponse(); + break; + case paymentMethods.PAYPAL: + await this.processPaypalResponse(); + break; + default: { + // If we're here, the payment-method did not get properly set in + // payment.vue method handleIFrameContentWindowMessage, we will look and see if + // if we can default it to credit card. The payment method type is most likely still + // set to PayNow originally set in payment-method.vue + const lastFour = getQuerystringParameter(queryStrings.LAST_FOUR); + if (lastFour) { + console.log(new Date() + ": Payment method credit card selected by default"); + this.dispatchStoreAction( + storeActions.SAVE_PAYMENT_METHOD_CHOICE, + paymentMethods.CREDIT_CARD, + false + ); + await this.processCreditCardResponse(); + } + else { + var msg = "Unknown Pia type: " + store.getters.order.payment.piaType; + console.log(msg); + this.$router.navigateWithoutSaving( + this.navigationScenarios.PIA_ERROR, + this.$route, + {}, + { [routerParams.DISPLAY_PIA_ALERT]: true } + ); + } + } } } }, @@ -60,12 +89,6 @@ export default { return true; }, async processPaypalResponse() { - await this.dispatchStoreAction( - storeActions.SAVE_PAYMENT_METHOD_CHOICE, - paymentMethods.PAYPAL, - false - ); - const token = getQuerystringParameter(queryStrings.TOKEN); const payerId = getQuerystringParameter(queryStrings.PAYERID); @@ -79,12 +102,6 @@ export default { await this.saveAndSubmitWorkOrder(); }, async processCreditCardResponse() { - await this.dispatchStoreAction( - storeActions.SAVE_PAYMENT_METHOD_CHOICE, - paymentMethods.CREDIT_CARD, - false - ); - const subscriptionID = getQuerystringParameter(queryStrings.SUBSCRIPTIONID); const referralSeqNum = getQuerystringParameter(queryStrings.REFERRAL_SEQ_NUM); diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index 2d596a8b2..14cc738d9 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -669,12 +669,15 @@ export default { if (iframe.contentWindow) { if (isApplePayAvailable) { iframe.contentWindow.postMessage("hybrid-with-applepay", "*"); + console.log(new Date() + ": Sent applepay"); } if (this.paymentType == "cc") { iframe.contentWindow.postMessage("CreditCardChosen", "*"); + console.log(new Date() + ": Sent creditcard"); } else if (this.paymentType == "ap") { iframe.contentWindow.postMessage("afterpay", "*"); + console.log(new Date() + ": Sent afterpay"); } } }; @@ -698,10 +701,37 @@ export default { this.backButtonAction(); } if (event.data.indexOf("creditCardSubmit") > -1) { + console.log(new Date() + ": Payment method credit card selected"); + this.dispatchStoreAction( + storeActions.SAVE_PAYMENT_METHOD_CHOICE, + paymentMethods.CREDIT_CARD, + false + ); this.setUIBlock(true); } - if (event.data.indexOf("hybrid") > -1) { - this.setUIBlock(true); + if (event.data.indexOf("afterpayPaymentReceived") > -1) { + console.log(new Date() + ": Payment method afterpay selected"); + this.dispatchStoreAction( + storeActions.SAVE_PAYMENT_METHOD_CHOICE, + paymentMethods.AFTERPAY, + false + ); + } + if (event.data.indexOf("applepayOpened") > -1) { + console.log(new Date() + ": Payment method applepay selected"); + this.dispatchStoreAction( + storeActions.SAVE_PAYMENT_METHOD_CHOICE, + paymentMethods.APPLE_PAY, + false + ); + } + if (event.data.indexOf("showLoaderForPaypal") > -1) { + console.log(new Date() + ": Payment method paypal selected"); + this.dispatchStoreAction( + storeActions.SAVE_PAYMENT_METHOD_CHOICE, + paymentMethods.PAYPAL, + false + ); } } }, diff --git a/src/store/index.js b/src/store/index.js index c449a61c5..5a8782ccd 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1778,6 +1778,7 @@ export const actions = { order.payment.piaType == paymentMethods.CREDIT_CARD ? true : false, isPaypal: order.payment.piaType == paymentMethods.PAYPAL ? true : false, isAfterPay: order.payment.piaType == paymentMethods.AFTERPAY ? true : false, + isApplePay: order.payment.piaType == paymentMethods.APPLE_PAY ? true : false, paypalToken: order.payment.paypalToken, nextGenSettledAmount: order.payment.nextGenSettledAmount, ccToken: { From 1b6c6b141c6a447c081ca3466e4e1cb8eb82ccae Mon Sep 17 00:00:00 2001 From: CarlNation Date: Mon, 15 Jul 2024 10:27:22 -0400 Subject: [PATCH 63/68] CSR-2130 prettier CSR-2130 prettier --- src/layouts/payment-pia-return/payment-pia-return.vue | 11 ++++++----- src/store/index.js | 3 ++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/layouts/payment-pia-return/payment-pia-return.vue b/src/layouts/payment-pia-return/payment-pia-return.vue index 3d5231e36..9e6e76c56 100644 --- a/src/layouts/payment-pia-return/payment-pia-return.vue +++ b/src/layouts/payment-pia-return/payment-pia-return.vue @@ -56,21 +56,22 @@ export default { await this.processPaypalResponse(); break; default: { - // If we're here, the payment-method did not get properly set in + // If we're here, the payment-method did not get properly set in // payment.vue method handleIFrameContentWindowMessage, we will look and see if // if we can default it to credit card. The payment method type is most likely still // set to PayNow originally set in payment-method.vue const lastFour = getQuerystringParameter(queryStrings.LAST_FOUR); if (lastFour) { - console.log(new Date() + ": Payment method credit card selected by default"); + console.log( + new Date() + ": Payment method credit card selected by default" + ); this.dispatchStoreAction( storeActions.SAVE_PAYMENT_METHOD_CHOICE, paymentMethods.CREDIT_CARD, false ); await this.processCreditCardResponse(); - } - else { + } else { var msg = "Unknown Pia type: " + store.getters.order.payment.piaType; console.log(msg); this.$router.navigateWithoutSaving( @@ -78,7 +79,7 @@ export default { this.$route, {}, { [routerParams.DISPLAY_PIA_ALERT]: true } - ); + ); } } } diff --git a/src/store/index.js b/src/store/index.js index 5a8782ccd..6a6c60cde 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1778,7 +1778,8 @@ export const actions = { order.payment.piaType == paymentMethods.CREDIT_CARD ? true : false, isPaypal: order.payment.piaType == paymentMethods.PAYPAL ? true : false, isAfterPay: order.payment.piaType == paymentMethods.AFTERPAY ? true : false, - isApplePay: order.payment.piaType == paymentMethods.APPLE_PAY ? true : false, + isApplePay: + order.payment.piaType == paymentMethods.APPLE_PAY ? true : false, paypalToken: order.payment.paypalToken, nextGenSettledAmount: order.payment.nextGenSettledAmount, ccToken: { From d9de8e58b2f444c157a6b364c9097628f1f6ab0f Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 15 Jul 2024 15:08:36 -0400 Subject: [PATCH 64/68] CSR-2140 css updates. --- src/layouts/quote/quote.vue | 2 +- .../service-package-radio.vue | 22 +++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 9cfbd38a7..a85fd7d29 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -37,7 +37,7 @@ v-on="{ 'buttonEvent.openModal': openModalAction }" validationRules="option-required" isRequired /> -

+
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 56c5abfd0..60d232b85 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 @@ -140,7 +140,7 @@ export default { .package-wrapper { margin: 0.5rem 0; @include media-breakpoint-up(md) { - margin: 1rem .5rem; + margin: 1rem 0.5rem; display: flex; flex-direction: column; align-self: flex-end; @@ -150,7 +150,11 @@ export default { display: block; @include media-breakpoint-up(md) { display: flex; - min-height: 276px; + min-height: 320px; + } + @include media-breakpoint-up(xl) { + display: flex; + min-height: 276px; } } @@ -178,7 +182,7 @@ export default { } &.has-text { border-radius: 0 0 0.5rem 0.5rem; - border: 1px solid #469d2a !important; + border: 1px solid #469d2a;//Temp color } &:before { @@ -277,7 +281,7 @@ export default { font-size: 0.875rem; @include media-breakpoint-up(md) { position: absolute; - bottom: .75rem; + bottom: 0.75rem; left: 0; width: 100%; text-align: center; @@ -301,27 +305,27 @@ export default { } span { &.service-package-discount { - color: #469d2a; + color: #469d2a;//Temp color text-align: end; font-weight: 500; font-size: 13px; div.strikethrough-discount-price { text-decoration: line-through; margin-right: 0; - font-weight: 500; + font-weight: 400; font-size: 0.875rem; line-height: 20px; color: $gray-500; padding-right: 2px; } div.discount-price { - color: #469d2a; + color: #469d2a;//Temp color font-weight: 600; font-size: 1.625rem; } @include media-breakpoint-up(md) { position: absolute; - bottom: .75rem; + bottom: 0.75rem; left: 0; width: 100%; text-align: center; @@ -365,7 +369,7 @@ export default { display: flex; border-top-right-radius: 0.5rem; border-top-left-radius: 0.5rem; - background-color: #469d2a; + background-color: #469d2a;//Temp color align-items: center; justify-content: center; width: 100%; From a9683b824aa1b6060e645f22cf1e9ca02cc74a06 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 15 Jul 2024 15:11:28 -0400 Subject: [PATCH 65/68] Format code. --- .../service-package-radio/service-package-radio.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 60d232b85..867baded2 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 @@ -182,7 +182,7 @@ export default { } &.has-text { border-radius: 0 0 0.5rem 0.5rem; - border: 1px solid #469d2a;//Temp color + border: 1px solid #469d2a; //Temp color } &:before { @@ -305,7 +305,7 @@ export default { } span { &.service-package-discount { - color: #469d2a;//Temp color + color: #469d2a; //Temp color text-align: end; font-weight: 500; font-size: 13px; @@ -319,7 +319,7 @@ export default { padding-right: 2px; } div.discount-price { - color: #469d2a;//Temp color + color: #469d2a; //Temp color font-weight: 600; font-size: 1.625rem; } @@ -369,7 +369,7 @@ export default { display: flex; border-top-right-radius: 0.5rem; border-top-left-radius: 0.5rem; - background-color: #469d2a;//Temp color + background-color: #469d2a; //Temp color align-items: center; justify-content: center; width: 100%; From 00357cd94434f6f8453e50e05c97730ce8d6ea71 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 16 Jul 2024 15:38:48 -0400 Subject: [PATCH 66/68] CSR-2140 QA updates. --- .../service-package-radio/service-package-radio.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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 867baded2..b3002cee4 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 @@ -259,20 +259,20 @@ export default { .package-footer { color: $red; + font-weight: 600; } .package-specs { display: flex; flex-direction: column; width: 100%; - max-height: 0; transition: all 0.5s ease; @include media-breakpoint-up(md) { max-height: 500px; } p { - font-weight: 500; + font-weight: 600; display: flex; justify-content: space-between; span { @@ -339,6 +339,7 @@ export default { margin-bottom: 0.5rem; font-size: 0.875rem; line-height: 1.714; + color: $gray-550; a { line-height: 1.714; padding: 0; @@ -374,6 +375,10 @@ export default { justify-content: center; width: 100%; color: white; + text-transform: uppercase; + font-size: .875rem; + font-weight: 600; + letter-spacing: .75px; } } } From 953ed047f5dc6e01cbb8c7a8fcd2466d39b590fd Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 16 Jul 2024 15:39:51 -0400 Subject: [PATCH 67/68] Format code. --- .../service-package-radio/service-package-radio.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 b3002cee4..eb72aeedc 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 @@ -376,9 +376,9 @@ export default { width: 100%; color: white; text-transform: uppercase; - font-size: .875rem; + font-size: 0.875rem; font-weight: 600; - letter-spacing: .75px; + letter-spacing: 0.75px; } } } From 6d7f68ab7eb358099adb58372c420cd33ddf7bb4 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 17 Jul 2024 08:45:52 -0400 Subject: [PATCH 68/68] CSR-977 revert suppressvincapture decommission CSR-977 revert suppressvincapture decommission --- src/constants/experiments.js | 1 + .../heritage-integration/navigation-helper.js | 15 +++++++++++++-- .../navigation-helper.spec.js | 10 ++++++++++ src/layouts/service-zip/service-zip.spec.js | 13 +++++++++++++ 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/constants/experiments.js b/src/constants/experiments.js index ee83ec447..eb7fed508 100644 --- a/src/constants/experiments.js +++ b/src/constants/experiments.js @@ -4,6 +4,7 @@ const experimentUniverses = { const experimentSettings = { GOOGLE_CUSTOM_DIMENSION_INDEX: "Google Custom Dimension Index", + SUPPRESS_VIN_CAPTURE: "SuppressVinCapture", DISPLAY_AVAILABILITY_INDICATORS: "DisplayAvailabilityIndicators", PIA_EXPERIENCE: "PIA Experience", PIA_INSURANCE: "DisplayPIAInsurance", diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js index a0d3bb92c..21585b247 100644 --- a/src/helpers/heritage-integration/navigation-helper.js +++ b/src/helpers/heritage-integration/navigation-helper.js @@ -5,6 +5,9 @@ import { lazyLoadComponent } from "@/router/dynamic-routing/component-loader.js" import { saveSession } from "@/helpers/heritage-integration/order-helper.js"; import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; import { storeActions } from "@/constants/store-actions.js"; +import { settleAllPromises } from "@/helpers/layout-helper"; +import experimentMixin from "@/mixins/experiment-mixin"; +import { experimentSettings } from "@/constants/experiments"; import { includesWindshieldReplacement } from "@/helpers/damage-helper"; import store from "@/store"; import router from "@/router"; @@ -139,7 +142,11 @@ export async function skipVinLookup() { ? await store.dispatch(storeActions.IS_VIN_OPTIONAL_VEHICLE) : false; - return isVinOptionalVehicle || !includesWindshieldReplacement(); + return ( + isVinOptionalVehicle || + !includesWindshieldReplacement() || + experimentMixin.methods.hasSettingEqualTo(experimentSettings.SUPPRESS_VIN_CAPTURE, "true") + ); } export async function skipVinLookupNotRepair() { @@ -151,7 +158,11 @@ export async function skipVinLookupNotRepair() { ? await store.dispatch(storeActions.IS_VIN_OPTIONAL_VEHICLE) : false; - return isVinOptionalVehicle || !includesWindshieldReplacement(); + return ( + isVinOptionalVehicle || + !includesWindshieldReplacement() || + experimentMixin.methods.hasSettingEqualTo(experimentSettings.SUPPRESS_VIN_CAPTURE, "true") + ); } async function getLazyLoadedComponent(pageName) { diff --git a/src/helpers/heritage-integration/navigation-helper.spec.js b/src/helpers/heritage-integration/navigation-helper.spec.js index 671a1b46e..2af724828 100644 --- a/src/helpers/heritage-integration/navigation-helper.spec.js +++ b/src/helpers/heritage-integration/navigation-helper.spec.js @@ -115,6 +115,16 @@ describe("getPageToRouteExistingOrderTo", () => { store.commit(storeMutations.UPDATE_IS_REPAIR, false); store.commit(storeMutations.UPDATE_MAKE, "acura"); + const mockExperimentsList = [ + { + universeName: "ConceptFunnel", + settings: { + SuppressVinCapture: false, + }, + }, + ]; + store.commit(storeMutations.UPDATE_EXPERIMENTS, mockExperimentsList); + // Mock out the lazy load calls for all components. mockLazyLoadComponentReturnValues({ [fmgPageValues.VEHICLE]: true, diff --git a/src/layouts/service-zip/service-zip.spec.js b/src/layouts/service-zip/service-zip.spec.js index 6b1597da7..54afc6545 100644 --- a/src/layouts/service-zip/service-zip.spec.js +++ b/src/layouts/service-zip/service-zip.spec.js @@ -10,6 +10,7 @@ import router from "@/router"; import { navigationScenarios } from "@/router/router-constants/navigation-scenarios"; import { saveSession } from "@/helpers/heritage-integration/order-helper.js"; import vinPagesMixin from "@/mixins/vin-pages-mixin"; +import { experimentSettings } from "../../constants/experiments"; // Constants @@ -23,6 +24,16 @@ let mockCmsContent = { let mockStoreActionData = {}; let mockStoreData = {}; +let mockExperimentSettings = { + experiments: [ + { + universeName: "ConceptFunnel", + settings: { + SuppressVinCapture: false, + }, + }, + ], +}; function resetMockStoreData() { mockStoreData = { @@ -159,12 +170,14 @@ function resetMockStoreData() { function applyMockStoreDataToGetters() { store.getters = { + experimentSettings: mockExperimentSettings, order: mockStoreData, damage: mockStoreData.damage, payment: mockStoreData.payment, policy: mockStoreData.policy, }; store.state.order = mockStoreData; + store.state.applicationUser.experiments = mockExperimentSettings; } async function mockDispatchStoreAction(actionName) {