Merge branch 'release/2023.12.07' into feature/CSR-1856

This commit is contained in:
Chloe Herd 2023-12-01 15:26:40 -05:00
commit 8d74711519
7 changed files with 47 additions and 26 deletions

View file

@ -5,7 +5,7 @@
body { body {
font-family: Roboto; font-family: Roboto;
font-weight: 400; font-weight: 400;
color: #4D5151; color: #000;
margin: 0; margin: 0;
background-color: white; background-color: white;
padding: 8px; padding: 8px;
@ -33,6 +33,7 @@ body .headerlinecontainer .headerline1 {
line-height: 32px; line-height: 32px;
font-weight: 400; font-weight: 400;
margin: 24px 0; margin: 24px 0;
text-align: center;
} }
body input, body input,
body select { body select {
@ -42,6 +43,8 @@ body input {
border-radius: 8px; border-radius: 8px;
border: 1px solid #8E9292; border: 1px solid #8E9292;
padding: 16px; padding: 16px;
font-size: 16px;
color: #000;
} }
body input:focus, body input:focus-visible { body input:focus, body input:focus-visible {
box-shadow: 0 0 0 2.5px #1574a1; box-shadow: 0 0 0 2.5px #1574a1;

View file

@ -5,7 +5,7 @@
body { body {
font-family: Roboto; font-family: Roboto;
font-weight: 400; font-weight: 400;
color: #4D5151; color: #000;
margin: 0; margin: 0;
background-color: white; background-color: white;
padding: 8px; padding: 8px;
@ -39,6 +39,7 @@ body {
line-height: 32px; line-height: 32px;
font-weight: 400; font-weight: 400;
margin: 24px 0; margin: 24px 0;
text-align: center;
} }
} }
@ -51,6 +52,8 @@ body {
border-radius: 8px; border-radius: 8px;
border: 1px solid #8E9292; border: 1px solid #8E9292;
padding: 16px; padding: 16px;
font-size: 16px;
color: #000;
&:focus, &:focus,
&:focus-visible { &:focus-visible {
box-shadow: 0 0 0 2.5px #1574a1; box-shadow: 0 0 0 2.5px #1574a1;

View file

@ -16,8 +16,7 @@
<div class="price-table"> <div class="price-table">
<div class="service-type"> <div class="service-type">
<textBlock :cmsWidgetName="servicePackageTitleWidget" /> <textBlock :cmsWidgetName="servicePackageTitleWidget" />
<span tabindex="0"> <span>
<span class="sr-only"> {{ screenReaderPackagePriceText }} </span>
{{ getFormattedAmount("", packagePrice) }} {{ getFormattedAmount("", packagePrice) }}
</span> </span>
</div> </div>
@ -64,40 +63,25 @@
<span v-else-if="cartItem == recycleFeeCartItem"> <span v-else-if="cartItem == recycleFeeCartItem">
{{ recycleFeeCartItem.name }} {{ recycleFeeCartItem.name }}
</span> </span>
<span tabindex="0" <span>{{ getFormattedAmount(cartItem.category, cartItem.subTotal) }}</span>
><span class="sr-only">{{ screenReaderRecycleFeeText }}</span
>{{ getFormattedAmount(cartItem.category, cartItem.subTotal) }}</span
>
</div> </div>
<!-- Sub total, sales tax, total columns --> <!-- Sub total, sales tax, total columns -->
<div class="sub-total"> <div class="sub-total">
<span>{{ subtotalText }}</span <span>{{ subtotalText }}</span
><span tabindex="0" ><span>{{ getFormattedAmount("", subTotal) }}</span>
><span class="sr-only">{{ screenReaderSubTotalText }}</span
>{{ getFormattedAmount("", subTotal) }}</span
>
</div> </div>
<div class="sales-tax"> <div class="sales-tax">
<span>{{ salesTaxText }}</span <span>{{ salesTaxText }}</span
><span tabindex="0" ><span>{{ getFormattedAmount("", salesTax) }}</span>
><span class="sr-only">{{ screenReaderSalesTaxText }}</span
>{{ getFormattedAmount("", salesTax) }}</span
>
</div> </div>
<div v-if="showAsPaid" class="amount-paid"> <div v-if="showAsPaid" class="amount-paid">
<span>{{ amountPaidText }}</span <span>{{ amountPaidText }}</span
><span tabindex="0" ><span>{{ getFormattedAmount("", amountPaid) }}</span>
><span class="sr-only">{{ screenReaderAmountPaidText }}</span
>{{ getFormattedAmount("", amountPaid) }}</span
>
</div> </div>
<div class="amount-due"> <div class="amount-due">
<span>{{ amountDueText }}</span <span>{{ amountDueText }}</span
><span tabindex="0" ><span>{{ getFormattedAmount("", amountDue) }}</span>
><span class="sr-only">{{ screenReaderTotalAmountDueText }}</span
>{{ getFormattedAmount("", amountDue) }}</span
>
</div> </div>
</div> </div>
</div> </div>

View file

@ -300,7 +300,7 @@ export default {
return serviceLocationReqs && scheduleReqs && customerReqs; return serviceLocationReqs && scheduleReqs && customerReqs;
}, },
forwardButtonAction() { forwardButtonAction() {
window.location.assign("//www.safelite.com/"); window.location.assign(location.protocol + "//" + location.host);
}, },
}, },
components: { components: {

View file

@ -532,7 +532,7 @@ export default {
} }
cartItems.forEach((item) => { cartItems.forEach((item) => {
if (item.name !== null) { if (item.name !== null && item.category != "promos") {
lineItems.push(`${item.name}|${(item.salesTax + item.subTotal).toFixed(2)}|1`); lineItems.push(`${item.name}|${(item.salesTax + item.subTotal).toFixed(2)}|1`);
} }
}); });

View file

@ -252,6 +252,7 @@ export default {
this.$emit("updated-mobile-fee-part", mobileFeePart); this.$emit("updated-mobile-fee-part", mobileFeePart);
this.$emit("updated-serviceability", serviceabilityDetails.data); this.$emit("updated-serviceability", serviceabilityDetails.data);
this.$emit("updated-contains-military-base", zipCodeData.containsMilitaryBase); this.$emit("updated-contains-military-base", zipCodeData.containsMilitaryBase);
this.$emit("updated-mobile-ctu", zipCodeData.zipCodeCtu);
// update the page level model // update the page level model
this.$emit("update:modelValue", this.internalModel); this.$emit("update:modelValue", this.internalModel);

View file

@ -83,6 +83,7 @@
@updated-mobile-fee-part="setMobileFeePart" @updated-mobile-fee-part="setMobileFeePart"
@updated-serviceability="setServiceabilityDetails" @updated-serviceability="setServiceabilityDetails"
@updated-contains-military-base="setContainsMilitaryBase" @updated-contains-military-base="setContainsMilitaryBase"
@updated-mobile-ctu="setCtuForMobile"
validationRules="mobile-location-required" validationRules="mobile-location-required"
ref="mobileLocationQuestions" ref="mobileLocationQuestions"
linkWidgetName="MobileLocationLinkWidget" linkWidgetName="MobileLocationLinkWidget"
@ -128,6 +129,7 @@ import contentGroupModal from "@/fmg-components/content-group-modal/content-grou
// Supporting files // Supporting files
import baseMixin from "@/mixins/base-mixin.js"; import baseMixin from "@/mixins/base-mixin.js";
import { AppointmentTypeStrings } from "@/constants/schedule-constants";
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
import { settleAllPromises } from "@/helpers/layout-helper"; import { settleAllPromises } from "@/helpers/layout-helper";
@ -374,6 +376,9 @@ export default {
this.zipContainsMilitaryBase = val; this.zipContainsMilitaryBase = val;
} }
}, },
setCtuForMobile(val) {
this.zipCodeCtu = val;
},
setMobileFeePart(mobileFeePart) { setMobileFeePart(mobileFeePart) {
this.mobileFeePart = mobileFeePart; this.mobileFeePart = mobileFeePart;
}, },
@ -472,6 +477,31 @@ export default {
} }
}, },
async forwardButtonAction() { async forwardButtonAction() {
// clear items not needed for appointmentType
if (this.selectedAppointmentType == AppointmentTypeStrings.IN_SHOP) {
// if we have a provider.zipCodeCtu that's different than the servicelocation.zipCodeCtu then they
// may have selected a shop in a different ctu. change the servicelocation zip/ctu if different
if (this.zipCodeCtu != this.selectedProvider.address.zipCodeCtu) {
this.zipCodeCtu = this.selectedProvider.address.zipCodeCtu;
this.zipCode = this.selectedProvider.address.zipCode;
}
this.city = null;
this.streetAddress = null;
}
if (
this.selectedAppointmentType == AppointmentTypeStrings.MOBILE &&
this.selectedProvider &&
this.selectedProvider.address
) {
this.selectedProvider.address.streetAddress = null;
this.selectedProvider.address.city = null;
this.selectedProvider.address.state = null;
this.selectedProvider.address.zipCode = null;
this.selectedProvider.address.zipCodeCtu = null;
}
await this.dispatchStoreAction( await this.dispatchStoreAction(
this.storeActions.SAVE_SERVICE_LOCATION, this.storeActions.SAVE_SERVICE_LOCATION,
{ {