diff --git a/src/layouts/address-lookup/customer-questions/customer-questions.vue b/src/layouts/address-lookup/customer-questions/customer-questions.vue index 2bb20d286..e8a1ab4d6 100644 --- a/src/layouts/address-lookup/customer-questions/customer-questions.vue +++ b/src/layouts/address-lookup/customer-questions/customer-questions.vue @@ -27,7 +27,7 @@ v-model="customerModel.emailAddress" ref="emailAddress" customInputId="emailAddress" - validationRules="email-address-format" /> + validationRules="email-address-required|email-address-format" />
diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.vue b/src/layouts/license-plate-lookup/license-plate-lookup.vue index e1ff79cdc..cffe8248f 100644 --- a/src/layouts/license-plate-lookup/license-plate-lookup.vue +++ b/src/layouts/license-plate-lookup/license-plate-lookup.vue @@ -33,7 +33,7 @@ cmsWidgetName="EmailAddressQuestionWidget" v-model="email" customInputId="email" - validationRules="email-address-format" /> + validationRules="email-address-required|email-address-format" />
diff --git a/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue b/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue index 159994079..c4fbd4b50 100644 --- a/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue +++ b/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue @@ -55,6 +55,13 @@ import { PREMIUM_FEE_PART_TYPE, RouteCodeFlags, } from "@/constants/schedule-constants"; +const cmsWidgetFieldMappings = { + MODAL_CLOSE_BUTTON: "FooterText", + SUPPLEMENTAL_INFORMATION: "BodyText", + TIME_SLOT_BUTTON: "HeaderText", + DISCLAIMER: "FooterText", + DURATION: "SubheaderText", +}; // Validation for the modal button defineRule("time-slot-required", required(errorMessages.OPTION_REQUIRED)); @@ -124,30 +131,60 @@ export default { ); } } - return this.getCmsContent(appointmentTypeCmsWidgetName, "BodyText"); + return this.getCmsContent( + appointmentTypeCmsWidgetName, + cmsWidgetFieldMappings.SUPPLEMENTAL_INFORMATION + ); }, footerCloseButtonText() { - return this.getCmsContent(this.cmsWidgetName, "FooterText"); + return this.getCmsContent( + this.cmsWidgetName, + cmsWidgetFieldMappings.MODAL_CLOSE_BUTTON + ); }, premiumAppointmentButtonText() { - return this.getCmsContent(this.mobilePremiumCmsWidgetName, "HeaderText"); + return this.getCmsContent( + this.mobilePremiumCmsWidgetName, + cmsWidgetFieldMappings.TIME_SLOT_BUTTON + ); }, dropoffButtonText() { - return this.getCmsContent(this.dropoffCmsWidgetName, "HeaderText"); + return this.getCmsContent( + this.dropoffCmsWidgetName, + cmsWidgetFieldMappings.TIME_SLOT_BUTTON + ); + }, + sameDayDropoffButtonText() { + return this.getCmsContent( + this.sameDayDropOffCmsWidgetName, + cmsWidgetFieldMappings.TIME_SLOT_BUTTON + ); }, overnightDropoffButtonText() { - return this.getCmsContent(this.overnightDropOffCmsWidgetName, "HeaderText"); + return this.getCmsContent( + this.overnightDropOffCmsWidgetName, + cmsWidgetFieldMappings.TIME_SLOT_BUTTON + ); }, dropoffDisclaimerText() { - return this.getCmsContent(this.dropoffCmsWidgetName, "FooterText"); + return this.getCmsContent(this.dropoffCmsWidgetName, cmsWidgetFieldMappings.DISCLAIMER); + }, + sameDayDropOffDisclaimerText() { + return this.getCmsContent( + this.sameDayDropOffCmsWidgetName, + cmsWidgetFieldMappings.DISCLAIMER + ); }, overnightDropOffDisclaimerText() { - return this.getCmsContent(this.overnightDropOffCmsWidgetName, "FooterText"); + return this.getCmsContent( + this.overnightDropOffCmsWidgetName, + cmsWidgetFieldMappings.DISCLAIMER + ); }, disclaimerTextBlockCopy() { if (this.appointmentType === AppointmentTypeStrings.DROP_OFF) { if (this.isSameDay) { - return null; + return this.sameDayDropOffDisclaimerText; } else if (this.selectedTimeSlotId?.includes(RouteCodeFlags.ALL_DAY_DROP_OFF)) { return this.dropoffDisclaimerText; } else if (this.selectedTimeSlotId?.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF)) { @@ -160,15 +197,24 @@ export default { } }, dropOffDurationText() { - return this.getCmsContent(this.dropoffCmsWidgetName, "SubheaderText"); + return this.getCmsContent(this.dropoffCmsWidgetName, cmsWidgetFieldMappings.DURATION); + }, + sameDayDropoffDurationText() { + return this.getCmsContent( + this.sameDayDropOffCmsWidgetName, + cmsWidgetFieldMappings.DURATION + ); }, overnightDropoffDurationText() { - return this.getCmsContent(this.overnightDropOffCmsWidgetName, "SubheaderText"); + return this.getCmsContent( + this.overnightDropOffCmsWidgetName, + cmsWidgetFieldMappings.DURATION + ); }, inshopDurationText() { const inshopDurationTextWithoutTime = this.getCmsContent( this.cmsWidgetName, - "SubheaderText" + cmsWidgetFieldMappings.DURATION ); const inshopDurationTime = this.getDisplayTextForDurationLength( this.estimatedServiceMinutesMinimum, @@ -185,15 +231,16 @@ export default { if (this.selectedTimeSlotId?.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF)) { return this.overnightDropoffDurationText; } else if (this.selectedTimeSlotId?.includes(RouteCodeFlags.ALL_DAY_DROP_OFF)) { - return this.dropOffDurationText; + if (this.isSameDay) { + return this.sameDayDropoffDurationText; + } else { + return this.dropOffDurationText; + } } else { return null; } } }, - shouldShowDropoffDisclaimerText() { - return this.appointmentType === AppointmentTypeStrings.DROP_OFF && !this.isSameDay; - }, isSameDay() { if (!this.dateAndTimeSlotData) { return false; @@ -202,7 +249,6 @@ export default { const todaysDate = new Date().toISOString().split("T")[0]; return selectedDate === todaysDate; }, - dateSelectedReadableDate() { if (!this.dateAndTimeSlotData) { return null; @@ -303,9 +349,14 @@ export default { }, getAvailableTimeSlotsForDropOff(timeSlotsForSelectedDate) { const availableTimeSlots = timeSlotsForSelectedDate.map((timeSlot) => { - const buttonLabelValue = timeSlot.id.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF) - ? this.overnightDropoffButtonText - : this.dropoffButtonText; + let buttonLabelValue; + if (timeSlot.id.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF)) { + buttonLabelValue = this.overnightDropoffButtonText; + } else if (this.isSameDay) { + buttonLabelValue = this.sameDayDropoffButtonText; + } else { + buttonLabelValue = this.dropoffButtonText; + } return { value: timeSlot.id, buttonLabel: buttonLabelValue, diff --git a/src/layouts/service-location/shop-question/shop-question.vue b/src/layouts/service-location/shop-question/shop-question.vue index 929c779af..f588f6422 100644 --- a/src/layouts/service-location/shop-question/shop-question.vue +++ b/src/layouts/service-location/shop-question/shop-question.vue @@ -108,7 +108,7 @@ export default { additionalButtonData() { const startDate = new Date(); const endDate = new Date(); - endDate.setDate(startDate.getDate() + 7); + endDate.setDate(startDate.getDate() + 6); const formattedStartDate = startDate.toISOString().split("T")[0]; const formattedEndDate = endDate.toISOString().split("T")[0]; diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index 36acfeeab..709029459 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -59,7 +59,7 @@ v-model="emailAddress" customInputId="emailAddress" isRequired - validationRules="email-address-format" /> + validationRules="email-address-required|email-address-format" />
@@ -79,7 +79,7 @@ :manualHeadline="AlertPerfectMatchInsuranceVerifiedHeader" :manualCopy="AlertPerfectMatchInsuranceVerifiedBody" v-model="customAlertData" - v-if="vinPopulatedOnPageLoad && isInsuranceVerified" + v-if="vinPopulatedOnPageLoad && isInsuranceVerified && !displayInvalidZipAlert" alertClass="alert-success" />