Merge branch 'develop' into rlsmerge/2024.11.21-to-develop

This commit is contained in:
CarlNation 2024-11-14 14:16:36 -05:00
commit 4e75fec1cf
19 changed files with 79 additions and 58 deletions

View file

@ -103,6 +103,7 @@ stages:
indexDeployVariables:
__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__: $(__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__)
__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__: $(__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__)
__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__: $(__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__)
- template: templates/digital/invalidate-cloudfront-cache.yml@AzureDevOps
parameters:
awsCliContainer: awscli
@ -162,6 +163,7 @@ stages:
indexDeployVariables:
__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__: $(__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__)
__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__: $(__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__)
__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__: $(__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__)
- template: templates/digital/invalidate-cloudfront-cache.yml@AzureDevOps
parameters:
awsCliContainer: awscli
@ -221,6 +223,7 @@ stages:
indexDeployVariables:
__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__: $(__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__)
__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__: $(__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__)
__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__: $(__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__)
- template: templates/digital/invalidate-cloudfront-cache.yml@AzureDevOps
parameters:
awsCliContainer: awscli
@ -280,6 +283,7 @@ stages:
indexDeployVariables:
__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__: $(__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__)
__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__: $(__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__)
__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__: $(__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__)
- template: templates/digital/invalidate-cloudfront-cache.yml@AzureDevOps
parameters:
awsCliContainer: awscli

View file

@ -26,5 +26,7 @@
<div id="app"></div>
<!-- built files will be auto injected -->
<%= process.env.VUE_APP_SOLARWINDS_MONITORING_SCRIPT %>
</body>
</html>

View file

@ -96,7 +96,8 @@
</span>
<span
v-if="
!showCoverageAsVerified || cartItem.name === 'Recycling' ||
!showCoverageAsVerified ||
cartItem.name === 'Recycling' ||
(showCoverageAsVerified && !cartItem.isCoveredByInsurance)
"
>{{
@ -195,7 +196,7 @@ export default {
},
data() {
return {
isExpanded: true, // set default to true so cart is open on page load. This may be temporary.
isExpanded: this.shouldHideRecalibration,
currencyFormatter: new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
@ -1014,7 +1015,7 @@ export default {
return this.getCmsContent("SalesTaxTextWidget", "Text");
},
amountDueText() {
return this.getCmsContent("AmountDueTextWidget", "Text");
return this.getCmsContent("OrderDetailsTextWidget", "Text");
},
amountPaidText() {
return this.getCmsContent("AmountPaidTextWidget", "Text");

View file

@ -50,7 +50,10 @@
cmsWidgetName="AlertInshopPromoWidget"
alertClass="alert-danger"
v-bind:isDismissible="false" />
<div class="mt-4 d-flex align-items-center justify-content-between" v-for="(promoCode, i) in this.getPromoCodeList()" :key="i">
<div
class="mt-4 d-flex align-items-center justify-content-between"
v-for="(promoCode, i) in this.getPromoCodeList()"
:key="i">
<span class="applied-promo"
>Promo code <span class="promo-code">{{ promoCode }}</span> applied
</span>
@ -357,7 +360,7 @@ export default {
</script>
<style lang="scss" scoped>
.applied-promo {
font-size: .875rem;
font-size: 0.875rem;
font-weight: 500;
line-height: 24px;
color: $green;
@ -368,7 +371,7 @@ export default {
}
.alert {
color: $red;
font-size: .875rem;
font-size: 0.875rem;
font-weight: 500;
line-height: 24px;
}

View file

@ -106,11 +106,7 @@ export async function getImplicitNavigation(toRoute) {
Used to navigate to the heritage funnel with the correct query string and url.
*/
export async function navigateToHeritageFunnel({
shouldSaveSession,
pageNameToLog,
cleanupBeforeNavigateExternalMethod = null,
}) {
export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLog }) {
const log = getQuerystringParameter(queryStrings.LOG);
if (eval(log)) {
console.log("------------- Navigate to heritage start -----------------");
@ -147,8 +143,6 @@ export async function navigateToHeritageFunnel({
) {
heritageParms["forceEndToEndInsurance"] = true;
}
//Cleanup Before Navigate to External
cleanupBeforeNavigateExternalMethod?.();
// clear the heritage session that may still exist after an order was already submitted
if (window.sessionStorage.getItem("createNewSessionForHeritage") !== null) {

View file

@ -13,7 +13,6 @@
</div>
<div class="row justify-content-center">
<div class="col-md-6 col-xl-4 mt-4">
<funnelSubHeader cmsWidgetName="FunnelSubHeaderWidget" ref="funnelSubHeader" />
<customerQuestions

View file

@ -8,7 +8,6 @@
</div>
<div class="row justify-content-center">
<div class="col-md-6 col-xl-4 mt-4">
<funnelSubHeader cmsWidgetName="FunnelSubHeaderWidget" />
<alert

View file

@ -9,7 +9,6 @@
</div>
<div class="row justify-content-center">
<div class="col-md-6 col-xl-4 mt-4">
<funnelSubHeader cmsWidgetName="FunnelSubHeaderWidget" />
<navbar

View file

@ -15,9 +15,7 @@
<span v-html="ScheduleConfirmationText"></span>
</div>
<div class="main">
<div>
</div>
<div></div>
<div class="scheduleText">
<p>{{ ScheduleDateFormatted }}</p>

View file

@ -1,5 +1,10 @@
<template>
<Form @submit="onSubmit" @invalid-submit="onInvalidSubmit" ref="theForm" v-slot="{ meta }">
<Form
@submit="onSubmit"
@invalid-submit="onInvalidSubmit"
ref="theForm"
v-slot="{ meta }"
id="insurance-company">
<loadingModal ref="loadingModal" />
<div class="container-fluid page-container-grouped-styles">
<div class="row justify-content-center">
@ -81,6 +86,7 @@ export default {
}
});
},
data() {
return {
parentAccountNumber: this.parentAccountNumberFromStore(),
@ -105,6 +111,10 @@ export default {
: "";
return accountNumber;
},
handleBeforeUnload() {
const insuranceCompanyPage = document.getElementById("insurance-company");
insuranceCompanyPage.parentElement.removeChild(insuranceCompanyPage);
},
arePagePrerequisitesValid() {
return store.getters.order.payment.isInsurance === true;
},
@ -134,16 +144,17 @@ export default {
billToAccountNumber,
false
);
//Manually unmount component in case navigate to external application.
window.addEventListener("beforeunload", this.handleBeforeUnload);
navigateToHeritageFunnel({
shouldSaveSession: true,
pageNameToLog: "insurance-company",
cleanupBeforeNavigateExternalMethod: this.reloadPage,
});
},
reloadPage(){
window.location.reload();
}
},
unmounted() {
window.removeEventListener("beforeunload", this.handleBeforeUnload);
},
components: {
funnelHeader,

View file

@ -8,7 +8,6 @@
</div>
<div class="row justify-content-center">
<div class="col-md-6 col-xl-4 mt-4">
<funnelSubHeader cmsWidgetName="FunnelSubHeaderWidget" />
<textboxQuestion

View file

@ -9,7 +9,6 @@
</div>
<div class="row justify-content-center">
<div class="col-md-6 col-xl-4 mt-4">
<funnelSubHeader class="mb-5" cmsWidgetName="FunnelSubHeaderWidget" />
<hr class="my-0" />
@ -420,7 +419,8 @@ export default {
customer.emailAddress
);
const preReqResult = serviceLocationReqs && isInsuranceSet() && scheduleReqs && customerReqs;
const preReqResult =
serviceLocationReqs && isInsuranceSet() && scheduleReqs && customerReqs;
// prettier-ignore
{
@ -443,7 +443,7 @@ export default {
console.log(new Date() + " customerReqs::customer.emailAddress:" + customer.emailAddress);
console.log("------------- payment-method.vue pagePrereqs end -----------------");
}
}
}
return preReqResult;
},

View file

@ -139,7 +139,10 @@
type="hidden"
name="sgtermsofusedisplaytext"
value="By selecting submit, I agree to Safelite's" />
<input type="hidden" name="sgtermsofuseurl" value="http://www.safelite.com/terms-of-service/" />
<input
type="hidden"
name="sgtermsofuseurl"
value="http://www.safelite.com/terms-of-service/" />
<input type="hidden" name="sgtermsofuselinkdisplaytext" value="Terms of service" />
<input type="hidden" name="sgtermsofcancelrefunddisplaytext" value="and" />
<input

View file

@ -447,15 +447,14 @@ export default {
arePagePrerequisitesValid() {
const payment = store.getters.order.payment;
const preReqResult = (
const preReqResult =
store.getters.order.serviceLocation.zipCode &&
store.getters.order.serviceLocation.zipCodeCtu &&
(store.getters.order.damage.isRepair ||
(store.getters.order.lineItems?.glassParts != null &&
store.getters.order.lineItems.glassParts.length > 0)) &&
(payment.insuranceCoverage?.isVerified == null ||
payment.insuranceCoverage?.isVerified === false)
);
payment.insuranceCoverage?.isVerified === false);
// prettier-ignore
{
@ -592,7 +591,10 @@ export default {
});
}
let price = 0;
if (tier.additionalButtonData?.servicePackageDiscount && this.isServicePackageDiscountOnOrder) {
if (
tier.additionalButtonData?.servicePackageDiscount &&
this.isServicePackageDiscountOnOrder
) {
lineItemsToPrice.push(...this.servicePackageDiscountParts);
}
price += baseMixin.methods.getTierOnePackagePrice(

View file

@ -447,8 +447,10 @@ export default {
this.updateSupportingItems();
if (this.selectedTimeSlotInfo.timeSlot.jobMinMinutes == null) {
this.selectedTimeSlotInfo.timeSlot.jobMinMinutes = this.selectableDatesData?.estimatedServiceMinutesMinimum?.toString();
this.selectedTimeSlotInfo.timeSlot.jobMaxMinutes = this.selectableDatesData?.estimatedServiceMinutesMaximum?.toString();
this.selectedTimeSlotInfo.timeSlot.jobMinMinutes =
this.selectableDatesData?.estimatedServiceMinutesMinimum?.toString();
this.selectedTimeSlotInfo.timeSlot.jobMaxMinutes =
this.selectableDatesData?.estimatedServiceMinutesMaximum?.toString();
}
this.dispatchStoreAction(

View file

@ -410,7 +410,7 @@ export default {
console.log(new Date() + "Cash: servce-location invalid prereqs");
console.log(new Date() + "store.getters.lineItems.supportingItems:" + JSON.stringify(store.getters.lineItems.supportingItems));
console.log(new Date() + "store.getters.order.serviceLocation.zipCode:" + store.getters.order.serviceLocation.zipCode);
}
}
return false;
}
}

View file

@ -79,50 +79,55 @@ caption,
// Averta Fonts
@font-face {
font-family: 'AvertaBold';
src: url('@/assets/fonts/averta-bold-webfont.woff2') format('woff2'),
url('@/assets/fonts/averta-bold-webfont.woff') format('woff');
font-family: "AvertaBold";
src:
url("@/assets/fonts/averta-bold-webfont.woff2") format("woff2"),
url("@/assets/fonts/averta-bold-webfont.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'AvertaBold_Italic';
src: url('@/assets/fonts/averta-bolditalic-webfont.woff2') format('woff2'),
url('@/assets/fonts/averta-bolditalic-webfont.woff') format('woff');
font-family: "AvertaBold_Italic";
src:
url("@/assets/fonts/averta-bolditalic-webfont.woff2") format("woff2"),
url("@/assets/fonts/averta-bolditalic-webfont.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'AvertaExtraBold';
src: url('@/assets/fonts/averta-extrabold-webfont.woff2') format('woff2'),
url('@/assets/fonts/averta-extrabold-webfont.woff') format('woff');
font-family: "AvertaExtraBold";
src:
url("@/assets/fonts/averta-extrabold-webfont.woff2") format("woff2"),
url("@/assets/fonts/averta-extrabold-webfont.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'AvertaRegular';
src: url('@/assets/fonts/averta-regular-webfont.woff2') format('woff2'),
url('@/assets/fonts/averta-regular-webfont.woff') format('woff');
font-family: "AvertaRegular";
src:
url("@/assets/fonts/averta-regular-webfont.woff2") format("woff2"),
url("@/assets/fonts/averta-regular-webfont.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'AvertaRegular_Italic';
src: url('@/assets/fonts/averta-regularitalic-webfont.woff2') format('woff2'),
url('@/assets/fonts/averta-regularitalic-webfont.woff') format('woff');
font-family: "AvertaRegular_Italic";
src:
url("@/assets/fonts/averta-regularitalic-webfont.woff2") format("woff2"),
url("@/assets/fonts/averta-regularitalic-webfont.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'AvertaSemibold';
src: url('@/assets/fonts/averta-semibold-webfont.woff2') format('woff2'),
url('@/assets/fonts/averta-semibold-webfont.woff') format('woff');
font-family: "AvertaSemibold";
src:
url("@/assets/fonts/averta-semibold-webfont.woff2") format("woff2"),
url("@/assets/fonts/averta-semibold-webfont.woff") format("woff");
font-weight: normal;
font-style: normal;
}
}

View file

@ -4,9 +4,9 @@ process.env.VUE_APP_HERITAGE_FUNNEL = "https://fixmyglassdev.safelite.com/defaul
process.env.VUE_APP_GOOGLE_PLACES_API_KEY = "AIzaSyDptGCkOPgN2uWJOy4ou4M33phRD4MAoJo";
process.env.VUE_APP_CURRENT_ENVIRONMENT = "Localhost";
process.env.VUE_APP_MY_ACCOUNT = "https://myaccountdev.safelite.com/";
//process.env.VUE_APP_SAFELITE_HOP = "http://localhost:60966/fmgCheckoutShared.aspx";
process.env.VUE_APP_SAFELITE_HOP = "https://sv2-safelitehop-dev.safelite.com/fmgCheckoutShared.aspx";
process.env.VUE_APP_SOLARWINDS_MONITORING = "";
// GA & GTM
process.env.VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY =

View file

@ -3,8 +3,8 @@ process.env.VUE_APP_GOOGLE_PLACES_API_KEY = "__VUE_APP_GOOGLE_PLACES_API_KEY__";
process.env.VUE_APP_HERITAGE_FUNNEL = "__VUE_APP_HERITAGE_FUNNEL__";
process.env.VUE_APP_CURRENT_ENVIRONMENT = "__VUE_APP_CURRENT_ENVIRONMENT__";
process.env.VUE_APP_MY_ACCOUNT = "__VUE_APP_MY_ACCOUNT__";
process.env.VUE_APP_SAFELITE_HOP = "__VUE_APP_SAFELITE_HOP__";
process.env.VUE_APP_SOLARWINDS_MONITORING_SCRIPT = "__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__";
// GA & GTM
process.env.VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY = "__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__";