Merge pull request #2277 from Safelite/rlsmerge/2025.02.13-to-develop

release merge 2025.02.13 to develop
This commit is contained in:
scottkiener 2025-02-04 16:03:17 -05:00 committed by GitHub
commit ebff0d868e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 78 additions and 50 deletions

View file

@ -12,6 +12,7 @@ module.exports = {
"!src/constants/*.js", "!src/constants/*.js",
"!src/router/**/*.js", "!src/router/**/*.js",
"!src/helpers/unit-test-helper.js", "!src/helpers/unit-test-helper.js",
"!src/helpers/logger.js",
"!src/layouts/vehicle-damage/windshield-options/windshield-options.vue", "!src/layouts/vehicle-damage/windshield-options/windshield-options.vue",
"!src/layouts/reveal/**/*.vue", "!src/layouts/reveal/**/*.vue",
"!src/layouts/payment-method/**/*.vue", "!src/layouts/payment-method/**/*.vue",

View file

@ -5,5 +5,5 @@ export const headerKeys = {
SESSION_SEQUENCE_NUMBER: "X-Session-Sequence-Number", SESSION_SEQUENCE_NUMBER: "X-Session-Sequence-Number",
TRANSACTION_ID: "X-Transaction-Id", TRANSACTION_ID: "X-Transaction-Id",
EON: "X-Enterprise-Order-Number", EON: "X-Enterprise-Order-Number",
LOG_ENABLED: "log-enabled" LOG_ENABLED: "log-enabled",
}; };

View file

@ -46,6 +46,7 @@ const queryStrings = {
ORGANIC_SOCIAL: "organic_social", ORGANIC_SOCIAL: "organic_social",
EXPERIMENTS: "experiments", EXPERIMENTS: "experiments",
FROM_HERITAGE: "fromheritage", FROM_HERITAGE: "fromheritage",
PHONE_NUMBER: "phonenumber",
}; };
export { queryStrings }; export { queryStrings };

View file

@ -76,6 +76,7 @@ const storeActions = {
SAVE_SERVICE_LOCATION: "saveServiceLocation", SAVE_SERVICE_LOCATION: "saveServiceLocation",
SAVE_SCHEDULE: "saveSchedule", SAVE_SCHEDULE: "saveSchedule",
SAVE_EMAIL: "saveEmail", SAVE_EMAIL: "saveEmail",
SAVE_PHONE_NUMBER: "savePhoneNumber",
SAVE_REGISTRATION_LICENSE_PLATE_LOOKUP: "saveRegistrationLicensePlateLookup", SAVE_REGISTRATION_LICENSE_PLATE_LOOKUP: "saveRegistrationLicensePlateLookup",
SAVE_VIN: "saveVin", SAVE_VIN: "saveVin",
SAVE_REGISTRATION_ADDRESS_LOOKUP: "saveRegistrationAddressLookup", SAVE_REGISTRATION_ADDRESS_LOOKUP: "saveRegistrationAddressLookup",

View file

@ -41,6 +41,7 @@ const storeMutations = {
// CUSTOMER MUTATIONS // CUSTOMER MUTATIONS
UPDATE_CUSTOMER_EMAIL_ADDRESS: "updateCustomerEmailAddress", UPDATE_CUSTOMER_EMAIL_ADDRESS: "updateCustomerEmailAddress",
UPDATE_CUSTOMER_PHONE_NUMBER: "updateCustomerPhoneNumber",
UPDATE_CUSTOMER_DETAILS: "updateCustomerDetails", UPDATE_CUSTOMER_DETAILS: "updateCustomerDetails",
// ORDER MUTATIONS // ORDER MUTATIONS
@ -107,6 +108,7 @@ const storeMutations = {
UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION: "updateExternalParameterVinSelection", UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION: "updateExternalParameterVinSelection",
UPDATE_EXTERNAL_PARAMETER_SERVICE_PACKAGE: "updateExternalParameterServicePackage", UPDATE_EXTERNAL_PARAMETER_SERVICE_PACKAGE: "updateExternalParameterServicePackage",
UPDATE_EXTERNAL_PARAMETER_SOURCE: "updateExternalParameterSource", UPDATE_EXTERNAL_PARAMETER_SOURCE: "updateExternalParameterSource",
UPDATE_EXTERNAL_PARAMETER_PHONE_NUMBER: "updateExternalParameterPhoneNumber",
//RESET EXTERNAL_PARAMETER MUTATIONS //RESET EXTERNAL_PARAMETER MUTATIONS
RESET_EXTERNAL_PARAMETER_VEHICLE_STATE: "resetExternalParameterVehicleState", RESET_EXTERNAL_PARAMETER_VEHICLE_STATE: "resetExternalParameterVehicleState",
@ -115,6 +117,7 @@ const storeMutations = {
RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE: "resetExternalParameterServiceZipState", RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE: "resetExternalParameterServiceZipState",
RESET_EXTERNAL_PARAMETER_QUOTE_STATE: "resetExternalParameterQuoteState", RESET_EXTERNAL_PARAMETER_QUOTE_STATE: "resetExternalParameterQuoteState",
RESET_EXTERNAL_PARAMETER_SOURCE_STATE: "resetExternalParameterSourceState", RESET_EXTERNAL_PARAMETER_SOURCE_STATE: "resetExternalParameterSourceState",
RESET_EXTERNAL_PARAMETER_CUSTOMER_STATE: "resetExternalParameterCustomerState",
RESET_IS_EXTERNAL_PARAMETER: "resetIsExternalParameter", RESET_IS_EXTERNAL_PARAMETER: "resetIsExternalParameter",
//Affiliate Cookies //Affiliate Cookies

View file

@ -205,7 +205,7 @@ export default {
} }
} }
} }
.alert { .alert {
border-radius: $border-radius-lg; border-radius: $border-radius-lg;
border: 1px solid $green; border: 1px solid $green;

View file

@ -219,7 +219,7 @@ export default {
.textbox-question { .textbox-question {
padding: 0; padding: 0;
margin: 0 0 1.5rem 0; margin: 0 0 1.5rem 0;
label { label {
text-align: left; text-align: left;
font-weight: 900; font-weight: 900;
@ -258,7 +258,7 @@ export default {
&.progress-saved { &.progress-saved {
.modal-footer-button, .modal-footer-button,
.modal-disclaimer { .modal-disclaimer {
display: none; display: none;
} }
.skip-button { .skip-button {

View file

@ -116,39 +116,39 @@ export default {
// send part question data to SPS API for logging // send part question data to SPS API for logging
const orderFromStore = await deepClone(store.getters.order); const orderFromStore = await deepClone(store.getters.order);
const ctu = orderFromStore.serviceLocation?.zipCodeCtu const ctu = orderFromStore.serviceLocation?.zipCodeCtu;
const partsOrQuestions = orderFromStore.damage?.partQuestionAnswers; const partsOrQuestions = orderFromStore.damage?.partQuestionAnswers;
partsOrQuestions.forEach(pqa => { if (partsOrQuestions) {
const payloadPartQuestions = []; partsOrQuestions.forEach(pqa => {
pqa.answeredQuestions.forEach(answer => { const payloadPartQuestions = [];
payloadPartQuestions.push({ pqa.answeredQuestions.forEach(answer => {
questionSeq: answer?.questionNum, payloadPartQuestions.push({
questionText: answer?.questionText, questionSeq: answer?.questionNum,
answerText: answer?.selectedAnswerText, questionText: answer?.questionText,
basePart: pqa?.result, answerText: answer?.selectedAnswerText,
basePart: pqa?.result,
});
}); });
const payload = {
eon: orderFromStore.eon,
ctu: ctu,
workOrderId: orderFromStore.workOrderId,
workOrderNumber: orderFromStore.workOrderNumber,
carId: orderFromStore.vehicle.carId,
glassLocation: pqa?.glassLocation,
partQuestions: payloadPartQuestions,
};
baseMixin.methods.dispatchStoreAction(
storeActions.LOG_PART_QUESTIONS,
payload,
false
);
}); });
}
const payload = {
eon: orderFromStore.eon,
ctu: ctu,
workOrderId: orderFromStore.workOrderId,
workOrderNumber: orderFromStore.workOrderNumber,
carId: orderFromStore.vehicle.carId,
glassLocation: pqa?.glassLocation,
partQuestions: payloadPartQuestions,
};
baseMixin.methods.dispatchStoreAction(
storeActions.LOG_PART_QUESTIONS,
payload,
false
);
});
// Create order // Create order
await baseMixin.methods.dispatchStoreAction(storeActions.CREATE_SUBMITTED_ORDER); // This nulls the Store order await baseMixin.methods.dispatchStoreAction(storeActions.CREATE_SUBMITTED_ORDER); // This nulls the Store order

View file

@ -80,7 +80,11 @@ import vehicleQuestion from "@/layouts/vehicle/vehicle-question/vehicle-question
// Supporting files // Supporting files
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
import { experimentUniverses } from "@/constants/experiments"; import { experimentUniverses } from "@/constants/experiments";
import { getSessionKeyValue, getUserIdValue, getDeviceIdValue } from "@/helpers/heritage-integration/cookie-helper"; import {
getSessionKeyValue,
getUserIdValue,
getDeviceIdValue,
} from "@/helpers/heritage-integration/cookie-helper";
import { settleAllPromises } from "@/helpers/layout-helper"; import { settleAllPromises } from "@/helpers/layout-helper";
import { Form, defineRule } from "vee-validate"; import { Form, defineRule } from "vee-validate";
import { required } from "@/helpers/validation-rules"; import { required } from "@/helpers/validation-rules";

View file

@ -837,6 +837,7 @@ function updateExternalParameterState() {
const externalParameterServicePackage = getQuerystringParameter(queryStrings.SERVICE_PACKAGE); const externalParameterServicePackage = getQuerystringParameter(queryStrings.SERVICE_PACKAGE);
const externalParameterNumberOfChips = getQuerystringParameter(queryStrings.NUMBER_OF_CHIPS); const externalParameterNumberOfChips = getQuerystringParameter(queryStrings.NUMBER_OF_CHIPS);
const externalParameterSource = getQuerystringParameter(queryStrings.EXPERIMENTS); const externalParameterSource = getQuerystringParameter(queryStrings.EXPERIMENTS);
const externalParameterPhoneNumber = getQuerystringParameter(queryStrings.PHONE_NUMBER);
if ( if (
externalParameterYear && externalParameterYear &&
externalParameterMake && externalParameterMake &&
@ -892,6 +893,13 @@ function updateExternalParameterState() {
if (externalParameterSource) { if (externalParameterSource) {
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_SOURCE, externalParameterSource); store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_SOURCE, externalParameterSource);
} }
if (externalParameterPhoneNumber) {
store.commit(
storeMutations.UPDATE_EXTERNAL_PARAMETER_PHONE_NUMBER,
externalParameterPhoneNumber
);
store.dispatch(storeActions.SAVE_PHONE_NUMBER, externalParameterPhoneNumber);
}
} }
// if there is an existing external parameter state then they have already been through from an external source(LeadGen) and // if there is an existing external parameter state then they have already been through from an external source(LeadGen) and

View file

@ -343,6 +343,9 @@ export const mutations = {
updateCustomerEmailAddress(state, customerEmailAddress) { updateCustomerEmailAddress(state, customerEmailAddress) {
state.order.customer.emailAddress = customerEmailAddress; state.order.customer.emailAddress = customerEmailAddress;
}, },
updateCustomerPhoneNumber(state, phoneNumber) {
state.order.customer.phoneNumber = phoneNumber;
},
updateVehicle(state, vehicleInfo) { updateVehicle(state, vehicleInfo) {
state.order.vehicle.year = vehicleInfo.year; state.order.vehicle.year = vehicleInfo.year;
state.order.vehicle.make = vehicleInfo.make; state.order.vehicle.make = vehicleInfo.make;
@ -495,6 +498,10 @@ export const mutations = {
externalParameterState.quote.servicePackage = servicePackage; externalParameterState.quote.servicePackage = servicePackage;
saveExternalParameterState(externalParameterState); saveExternalParameterState(externalParameterState);
}, },
updateExternalParameterPhoneNumber(state, phoneNumber) {
externalParameterState.customer.phoneNumber = phoneNumber;
saveExternalParameterState(externalParameterState);
},
//RESET ExternalParameter MUTATIONS //RESET ExternalParameter MUTATIONS
resetExternalParameterVehicleState(state) { resetExternalParameterVehicleState(state) {
externalParameterState.vehicle.year = null; externalParameterState.vehicle.year = null;
@ -528,6 +535,10 @@ export const mutations = {
externalParameterState.isExternalParameter = externalParameterStatus.INACTIVE; externalParameterState.isExternalParameter = externalParameterStatus.INACTIVE;
saveExternalParameterState(externalParameterState); saveExternalParameterState(externalParameterState);
}, },
resetExternalParameterCustomerState(state) {
externalParameterState.customer.phoneNumber = null;
saveExternalParameterState(externalParameterState);
},
// RESET DEPENDENCY MUTATIONS // RESET DEPENDENCY MUTATIONS
resetVehicleState(state) { resetVehicleState(state) {
@ -984,6 +995,7 @@ export const getters = {
externalParameterQuote: (state) => externalParameterState?.quote, externalParameterQuote: (state) => externalParameterState?.quote,
externalParameterServiceZip: (state) => externalParameterState?.serviceZip, externalParameterServiceZip: (state) => externalParameterState?.serviceZip,
externalParameterEstimate: (state) => externalParameterState?.estimate, externalParameterEstimate: (state) => externalParameterState?.estimate,
externalParameterCustomer: (state) => externalParameterState?.customer,
isExternalParameter: (state) => externalParameterState?.isExternalParameter, isExternalParameter: (state) => externalParameterState?.isExternalParameter,
}; };
@ -1448,16 +1460,7 @@ export const actions = {
logPartQuestions( logPartQuestions(
context, context,
{ { eon, ctu, workOrderId, workOrderNumber, carId, glassLocation, partQuestions, userAgent }
eon,
ctu,
workOrderId,
workOrderNumber,
carId,
glassLocation,
partQuestions,
userAgent,
}
) { ) {
var payload = { var payload = {
applicationName: applicationConfig.APPLICATION_NAME, applicationName: applicationConfig.APPLICATION_NAME,
@ -1468,15 +1471,14 @@ export const actions = {
carId: carId, carId: carId,
glassLocation: glassLocation, glassLocation: glassLocation,
partQuestions: partQuestions, partQuestions: partQuestions,
userAgent: navigator.userAgent userAgent: navigator.userAgent,
}; };
return globalMethods return globalMethods.callHttpClient({
.callHttpClient({ method: endpoints.LogPartQuestions.method,
method: endpoints.LogPartQuestions.method, endpoint: endpoints.LogPartQuestions.url,
endpoint: endpoints.LogPartQuestions.url, payload: payload,
payload: payload, });
});
}, },
// Misc Actions // Misc Actions
@ -3039,6 +3041,10 @@ export const actions = {
context.commit(storeMutations.UPDATE_CUSTOMER_EMAIL_ADDRESS, email === "" ? null : email); context.commit(storeMutations.UPDATE_CUSTOMER_EMAIL_ADDRESS, email === "" ? null : email);
}, },
savePhoneNumber(context, phoneNumber) {
context.commit(storeMutations.UPDATE_CUSTOMER_PHONE_NUMBER, phoneNumber === "" ? null : phoneNumber);
},
saveVin(context, { isSelectedGlassAvailableForVehicle, vehicleInfo }) { saveVin(context, { isSelectedGlassAvailableForVehicle, vehicleInfo }) {
//Reset dependent state when changing //Reset dependent state when changing
if (vehicleInfo.vin !== context.state.order.vehicle.vin) { if (vehicleInfo.vin !== context.state.order.vehicle.vin) {
@ -3132,6 +3138,7 @@ export const actions = {
context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_ESTIMATE_STATE); context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_ESTIMATE_STATE);
context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE); context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE);
context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_QUOTE_STATE); context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_QUOTE_STATE);
context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_CUSTOMER_STATE);
context.commit(storeMutations.RESET_IS_EXTERNAL_PARAMETER); context.commit(storeMutations.RESET_IS_EXTERNAL_PARAMETER);
} }
}, },
@ -3704,6 +3711,9 @@ function createExternalParameterDefaultState() {
isInsurance: null, isInsurance: null,
servicePackage: null, servicePackage: null,
}, },
customer: {
phoneNumber: null,
},
}; };
// set to session storage // set to session storage
saveExternalParameterState(externalParameterDefaultState); saveExternalParameterState(externalParameterDefaultState);