From 85f582e72441b6268afcadb5b99962b593fd1539 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Tue, 21 Nov 2023 17:08:30 -0500 Subject: [PATCH 1/2] CSR-1813: additional work to add 'front' or 'rear' desc to Add Vaps button label if needed --- .../add-vaps-modal-buttons.vue | 56 ++++++++++++------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue b/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue index cbbb51ceb..b1a96ef2a 100644 --- a/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue +++ b/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue @@ -62,6 +62,7 @@ import { defineRule } from "vee-validate"; import { required } from "@/helpers/validation-rules"; import { errorMessages } from "@/constants/error-messages"; import { processIfStatements } from "@/helpers/cms-content-helper"; +import { deepClone } from "@/helpers/object-helper"; // DEFINE VALIDATION RULES defineRule("checkbox-required", required(errorMessages.OPTION_REQUIRED)); @@ -198,6 +199,12 @@ export default { return null; } }, + getAnswerFromCms(name, answers) { + const answerIndex = answers.findIndex((answer) => { + return answer.Name === name; + }); + return answers[answerIndex]; + }, }, computed: { currentCartItems() { @@ -280,21 +287,17 @@ export default { } return result; }, + wipersModalDataFromCms() { + return this.getAnswerFromCms("WipersModal", this.answersCmsData); + }, + rainDefenseModalDataFromCms() { + return this.getAnswerFromCms("RainDefenseModal", this.answersCmsData); + }, buttonsToDisplay() { const buttons = []; if (!this.answersCmsData) return buttons; - const getAnswer = (name, answers) => { - const answerIndex = answers.findIndex((answer) => { - return answer.Name === name; - }); - return answers[answerIndex]; - }; - - const modalData = getAnswer("WipersModal", this.answersCmsData); - - // remove custom var for now - modalData.Text = modalData.Text?.replaceAll("{custom:WIPERTYPE}", ""); + const wipersModalData = deepClone(this.wipersModalDataFromCms); if (this.wipersOffered === wipersOfferedStrings.BOTH) { // NO REAR WIPERS or FRONT WIPERS IN CART; SHOW COMBO BUTTON @@ -303,27 +306,40 @@ export default { this.wipersModal?.totalRearPrice, ]; prices.sort((a, b) => a - b); - modalData.SubText = "+$" + prices[0] + " - $" + prices[prices.length - 1]; - buttons.push(modalData); + wipersModalData.SubText = "+$" + prices[0] + " - $" + prices[prices.length - 1]; + wipersModalData.Text = wipersModalData.Text?.replaceAll("{custom:WIPERTYPE}", ""); + buttons.push(wipersModalData); } if (this.wipersOffered === wipersOfferedStrings.FRONT) { // NO FRONT WIPERS IN CART; SHOW ONLY FRONT WIPERS BUTTON - modalData.SubText = "+$" + this.wipersModal?.totalFrontPrice; - buttons.push(modalData); + wipersModalData.SubText = "+$" + this.wipersModal?.totalFrontPrice; + if (this.rearWipersInCart) { + wipersModalData.Text = wipersModalData.Text?.replaceAll( + "{custom:WIPERTYPE}", + wipersOfferedStrings.FRONT.toLowerCase() + " " + ); + } + buttons.push(wipersModalData); } if (this.wipersOffered === wipersOfferedStrings.REAR) { // NO REAR WIPERS IN CART; SHOW ONLY REAR WIPERS BUTTON - modalData.SubText = "+$" + this.wipersModal?.totalRearPrice; - buttons.push(modalData); + wipersModalData.SubText = "+$" + this.wipersModal?.totalRearPrice; + if (this.frontWipersInCart) { + wipersModalData.Text = wipersModalData.Text?.replaceAll( + "{custom:WIPERTYPE}", + wipersOfferedStrings.REAR.toLowerCase() + " " + ); + } + buttons.push(wipersModalData); } if (!this.rainDefenseInCart) { // NO RAIN DEFENSE IN CART; SHOW RAIN DEFENSE BUTTON - const modalData = getAnswer("RainDefenseModal", this.answersCmsData); - modalData.SubText = "+$" + this.rainDefenseModal?.listPrice; - buttons.push(modalData); + const rainDefenseModalData = deepClone(this.rainDefenseModalDataFromCms); + rainDefenseModalData.SubText = "+$" + this.rainDefenseModal?.listPrice; + buttons.push(rainDefenseModalData); } return buttons; From b97238d10ac1eb75c158b142a77cfd964d453513 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Tue, 21 Nov 2023 17:12:49 -0500 Subject: [PATCH 2/2] CSR-1813: additional logic for improved button labels if only one kind is available --- .../add-vaps-modal-buttons/add-vaps-modal-buttons.vue | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue b/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue index b1a96ef2a..e637e56e6 100644 --- a/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue +++ b/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue @@ -319,6 +319,11 @@ export default { "{custom:WIPERTYPE}", wipersOfferedStrings.FRONT.toLowerCase() + " " ); + } else { + wipersModalData.Text = wipersModalData.Text?.replaceAll( + "{custom:WIPERTYPE}", + "" + ); } buttons.push(wipersModalData); } @@ -331,6 +336,11 @@ export default { "{custom:WIPERTYPE}", wipersOfferedStrings.REAR.toLowerCase() + " " ); + } else { + wipersModalData.Text = wipersModalData.Text?.replaceAll( + "{custom:WIPERTYPE}", + "" + ); } buttons.push(wipersModalData); }