Merge pull request #1009 from Safelite/feature/richardson/welcome-page-updates
welcome page updates
This commit is contained in:
commit
8fa15c5dc2
5 changed files with 34 additions and 54 deletions
|
|
@ -38,7 +38,7 @@
|
||||||
<a
|
<a
|
||||||
href=""
|
href=""
|
||||||
target="_blank"
|
target="_blank"
|
||||||
@click="openCookiePreferences">Cookie Preferences</a>
|
@click="openCookiePreferences">Cookie preferences</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer-menu-item">
|
<div class="footer-menu-item">
|
||||||
<textLink
|
<textLink
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,6 @@ describe('welcome-page.vue', () => {
|
||||||
const state = wrapper.findComponent({ ref: 'state' });
|
const state = wrapper.findComponent({ ref: 'state' });
|
||||||
const glassOnlyDamage = wrapper.findComponent({ ref: 'glassOnlyDamage' });
|
const glassOnlyDamage = wrapper.findComponent({ ref: 'glassOnlyDamage' });
|
||||||
const phoneNumber = wrapper.findComponent({ ref: 'phoneNumber' });
|
const phoneNumber = wrapper.findComponent({ ref: 'phoneNumber' });
|
||||||
const email = wrapper.findComponent({ ref: 'email' });
|
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(policyNumber.exists()).toBe(true);
|
expect(policyNumber.exists()).toBe(true);
|
||||||
|
|
@ -146,7 +145,6 @@ describe('welcome-page.vue', () => {
|
||||||
expect(state.exists()).toBe(false);
|
expect(state.exists()).toBe(false);
|
||||||
expect(glassOnlyDamage.exists()).toBe(false);
|
expect(glassOnlyDamage.exists()).toBe(false);
|
||||||
expect(phoneNumber.exists()).toBe(true);
|
expect(phoneNumber.exists()).toBe(true);
|
||||||
expect(email.exists()).toBe(true);
|
|
||||||
});
|
});
|
||||||
test('Policy zip field should be visible at all times', async () => {
|
test('Policy zip field should be visible at all times', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<div class="welcome-page-container iss-heritage-content-container-width">
|
<div class="welcome-page-container iss-heritage-content-container-width">
|
||||||
<siteSubHeader
|
<siteSubHeader
|
||||||
cmsWidgetName="SiteSubHeaderWidget"
|
cmsWidgetName="SiteSubHeaderWidget"
|
||||||
class="mt-4" />
|
class="form-group" />
|
||||||
<textboxQuestion
|
<textboxQuestion
|
||||||
ref="policyNumber"
|
ref="policyNumber"
|
||||||
v-model="welcomePageModel.policyNumber"
|
v-model="welcomePageModel.policyNumber"
|
||||||
|
|
@ -22,16 +22,6 @@
|
||||||
disableAutoFill
|
disableAutoFill
|
||||||
:isDisabled="isPolicyHolderDisabled"
|
:isDisabled="isPolicyHolderDisabled"
|
||||||
:validationRules="rules.policyNumber" />
|
:validationRules="rules.policyNumber" />
|
||||||
<textboxQuestion
|
|
||||||
ref="policyZip"
|
|
||||||
v-model="welcomePageModel.policyZipCode"
|
|
||||||
inputId="policyZipCode"
|
|
||||||
cmsWidgetName="PolicyZipQuestion"
|
|
||||||
isRequired
|
|
||||||
mask="#####"
|
|
||||||
:isDisabled="isPolicyZipDisabled"
|
|
||||||
:validationRules="rules.policyZip"
|
|
||||||
class="mt-3" />
|
|
||||||
<textboxQuestion
|
<textboxQuestion
|
||||||
ref="phoneNumber"
|
ref="phoneNumber"
|
||||||
v-model="welcomePageModel.phoneNumber"
|
v-model="welcomePageModel.phoneNumber"
|
||||||
|
|
@ -41,7 +31,8 @@
|
||||||
isRequired
|
isRequired
|
||||||
:mask="phoneMask"
|
:mask="phoneMask"
|
||||||
disableAutoFill
|
disableAutoFill
|
||||||
class="mt-3" />
|
placeholderText="###-###-####"
|
||||||
|
class="form-group" />
|
||||||
<textboxQuestion
|
<textboxQuestion
|
||||||
ref="extension"
|
ref="extension"
|
||||||
v-model="welcomePageModel.extension"
|
v-model="welcomePageModel.extension"
|
||||||
|
|
@ -49,7 +40,7 @@
|
||||||
cmsWidgetName="ExtensionQuestion"
|
cmsWidgetName="ExtensionQuestion"
|
||||||
:validationRules="rules.extension"
|
:validationRules="rules.extension"
|
||||||
disableAutoFill
|
disableAutoFill
|
||||||
class="mt-3" />
|
class="form-group" />
|
||||||
<textboxQuestion
|
<textboxQuestion
|
||||||
ref="dateOfLoss"
|
ref="dateOfLoss"
|
||||||
v-model="welcomePageModel.dateOfLoss"
|
v-model="welcomePageModel.dateOfLoss"
|
||||||
|
|
@ -62,7 +53,7 @@
|
||||||
:max="new Date().toJSON().slice(0, 10)"
|
:max="new Date().toJSON().slice(0, 10)"
|
||||||
:min="'1972-12-01'"
|
:min="'1972-12-01'"
|
||||||
:validationRules="rules.lossDate"
|
:validationRules="rules.lossDate"
|
||||||
class="mt-3" />
|
class="form-group" />
|
||||||
<textBlock
|
<textBlock
|
||||||
cmsWidgetName="DamageDateEstimateWidget"
|
cmsWidgetName="DamageDateEstimateWidget"
|
||||||
typeStyle="small"
|
typeStyle="small"
|
||||||
|
|
@ -77,44 +68,45 @@
|
||||||
disableAutoFill
|
disableAutoFill
|
||||||
:validationRules="rules.damageOption"
|
:validationRules="rules.damageOption"
|
||||||
placeHolderText="Select an option"
|
placeHolderText="Select an option"
|
||||||
class="mt-3" />
|
class="form-group" />
|
||||||
|
<textboxQuestion
|
||||||
|
ref="policyZip"
|
||||||
|
v-model="welcomePageModel.policyZipCode"
|
||||||
|
inputId="policyZipCode"
|
||||||
|
cmsWidgetName="PolicyZipQuestion"
|
||||||
|
isRequired
|
||||||
|
mask="#####"
|
||||||
|
:isDisabled="isPolicyZipDisabled"
|
||||||
|
:validationRules="rules.policyZip"
|
||||||
|
class="form-group" />
|
||||||
<dropdownQuestion
|
<dropdownQuestion
|
||||||
v-if="displayDamageStateQuestion"
|
v-if="displayDamageStateQuestion"
|
||||||
id="welcomeDropdown"
|
id="welcomeDropdown"
|
||||||
ref="state"
|
ref="state"
|
||||||
v-model="welcomePageModel.damageState"
|
v-model="welcomePageModel.damageState"
|
||||||
class="mt-3"
|
class="form-group"
|
||||||
cmsWidgetName="DamageStateQuestion"
|
cmsWidgetName="DamageStateQuestion"
|
||||||
inputId="8fdf9dc2e13e430eb57529499dceb3eb"
|
inputId="8fdf9dc2e13e430eb57529499dceb3eb"
|
||||||
:options="getStates"
|
:options="getStates"
|
||||||
:validationRules="rules.lossState"
|
:validationRules="rules.lossState"
|
||||||
isRequired
|
isRequired
|
||||||
disableAutoFill
|
disableAutoFill
|
||||||
placeHolderText="Select an option" />
|
placeHolderText="Select State" />
|
||||||
<textboxQuestion
|
<textboxQuestion
|
||||||
v-if="displayDamageCityQuestion"
|
v-if="displayDamageCityQuestion"
|
||||||
ref="damageCity"
|
ref="damageCity"
|
||||||
v-model="welcomePageModel.damageCity"
|
v-model="welcomePageModel.damageCity"
|
||||||
class="mt-3"
|
class="form-group"
|
||||||
inputId="damageCityField"
|
inputId="damageCityField"
|
||||||
cmsWidgetName="DamageCityQuestion"
|
cmsWidgetName="DamageCityQuestion"
|
||||||
isRequired
|
isRequired
|
||||||
disableAutoFill
|
disableAutoFill
|
||||||
:validationRules="rules.lossCity" />
|
:validationRules="rules.lossCity" />
|
||||||
<textboxQuestion
|
|
||||||
ref="email"
|
|
||||||
v-model="welcomePageModel.email"
|
|
||||||
inputId="emailField"
|
|
||||||
cmsWidgetName="EmailAddressQuestion"
|
|
||||||
:validationRules="rules.email"
|
|
||||||
isRequired
|
|
||||||
disableAutoFill
|
|
||||||
class="mt-3" />
|
|
||||||
<buttonQuestion
|
<buttonQuestion
|
||||||
v-if="displayGlassOnlyQuestion"
|
v-if="displayGlassOnlyQuestion"
|
||||||
ref="glassOnlyDamage"
|
ref="glassOnlyDamage"
|
||||||
v-model="welcomePageModel.isDamageGlassOnly"
|
v-model="welcomePageModel.isDamageGlassOnly"
|
||||||
class="px-0 mt-3"
|
class="px-0 form-group"
|
||||||
cmsWidgetName="GlassOnlyQuestion"
|
cmsWidgetName="GlassOnlyQuestion"
|
||||||
inputId="isDamageGlassOnly"
|
inputId="isDamageGlassOnly"
|
||||||
:answers="DamageGlassOnlyOptions"
|
:answers="DamageGlassOnlyOptions"
|
||||||
|
|
@ -142,17 +134,9 @@
|
||||||
:isDismissible="false" />
|
:isDismissible="false" />
|
||||||
<siteFooter
|
<siteFooter
|
||||||
ref="siteFooter"
|
ref="siteFooter"
|
||||||
class="mt-3"
|
|
||||||
cmsWidgetName="SiteFooterWidget"
|
cmsWidgetName="SiteFooterWidget"
|
||||||
:isForwardActionDisabled="!meta.valid"
|
:isForwardActionDisabled="!meta.valid"
|
||||||
@ForwardClicked="forwardButtonAction" />
|
@ForwardClicked="forwardButtonAction" />
|
||||||
<textBlock
|
|
||||||
id="requestCallbackLink"
|
|
||||||
cmsWidgetName="HelpTextWidget"
|
|
||||||
linkType="navigation"
|
|
||||||
href="javascript:void(0)"
|
|
||||||
class="mb-5 text-left"
|
|
||||||
@clickEvent="handleHelpLinkClick" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -257,7 +241,6 @@ export default {
|
||||||
duplicates: [],
|
duplicates: [],
|
||||||
rules: {
|
rules: {
|
||||||
damageOption: 'damage-option-required',
|
damageOption: 'damage-option-required',
|
||||||
email: `${globalRules.EMAIL_ADDRESS_REQUIRED}|${globalRules.EMAIL_ADDRESS_FORMAT}`,
|
|
||||||
extension: `${globalRules.EXTENSION_FORMAT}`,
|
extension: `${globalRules.EXTENSION_FORMAT}`,
|
||||||
lossCity: `${globalRules.DATE_OF_LOSS_CITY_REQUIRED}|${globalRules.DATE_OF_LOSS_CITY_FORMAT}`,
|
lossCity: `${globalRules.DATE_OF_LOSS_CITY_REQUIRED}|${globalRules.DATE_OF_LOSS_CITY_FORMAT}`,
|
||||||
// eslint-disable-next-line max-len
|
// eslint-disable-next-line max-len
|
||||||
|
|
@ -302,7 +285,11 @@ export default {
|
||||||
return !!this.getCmsContent('GlassOnlyQuestion', 'QuestionText');
|
return !!this.getCmsContent('GlassOnlyQuestion', 'QuestionText');
|
||||||
},
|
},
|
||||||
getStates() {
|
getStates() {
|
||||||
return states;
|
return Object.keys(states).reduce((acc, key) => {
|
||||||
|
// eslint-disable-next-line no-param-reassign
|
||||||
|
acc[key] = states[key].toUpperCase();
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
},
|
},
|
||||||
isPolicyHolderDisabled() {
|
isPolicyHolderDisabled() {
|
||||||
return !!this.mainStore.issConfig.disabledFields.policyNumber;
|
return !!this.mainStore.issConfig.disabledFields.policyNumber;
|
||||||
|
|
@ -408,7 +395,6 @@ export default {
|
||||||
isDamageGlassOnly: this.mainStore.order.policy.isDamageGlassOnly,
|
isDamageGlassOnly: this.mainStore.order.policy.isDamageGlassOnly,
|
||||||
phoneNumber: this.mainStore.order.contactInfo.homePhone,
|
phoneNumber: this.mainStore.order.contactInfo.homePhone,
|
||||||
extension: this.mainStore.order.contactInfo.extension,
|
extension: this.mainStore.order.contactInfo.extension,
|
||||||
email: this.mainStore.order.customer.emailAddress,
|
|
||||||
isPolicyNumberDisabled: this.mainStore.order.policy.isPolicyNumberDisabled
|
isPolicyNumberDisabled: this.mainStore.order.policy.isPolicyNumberDisabled
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
@ -425,7 +411,6 @@ export default {
|
||||||
this.welcomePageModel.isDamageGlassOnly = response.policy.isDamageGlassOnly;
|
this.welcomePageModel.isDamageGlassOnly = response.policy.isDamageGlassOnly;
|
||||||
this.welcomePageModel.phoneNumber = response.customer.homePhone;
|
this.welcomePageModel.phoneNumber = response.customer.homePhone;
|
||||||
this.welcomePageModel.extension = response.customer.extension;
|
this.welcomePageModel.extension = response.customer.extension;
|
||||||
this.welcomePageModel.email = response.customer.emailAddress;
|
|
||||||
},
|
},
|
||||||
findDamageCause(damageCause) {
|
findDamageCause(damageCause) {
|
||||||
const damageCauseOptions = this.DamageCauseOptions;
|
const damageCauseOptions = this.DamageCauseOptions;
|
||||||
|
|
@ -481,13 +466,6 @@ export default {
|
||||||
this.mainStore.order.loadedFromCookie = true;
|
this.mainStore.order.loadedFromCookie = true;
|
||||||
this.answeredContinueModal = true;
|
this.answeredContinueModal = true;
|
||||||
this.$refs.continueModal.closeModal();
|
this.$refs.continueModal.closeModal();
|
||||||
},
|
|
||||||
handleHelpLinkClick() {
|
|
||||||
useMainStore().setBailout(bailoutMessage.RequestCallback());
|
|
||||||
this.$router.navigate(
|
|
||||||
this.navigationScenarios.CLICKED_FORWARD_WITH_BAILOUT,
|
|
||||||
this.$route
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -508,6 +486,10 @@ form {
|
||||||
min-height: 1px;
|
min-height: 1px;
|
||||||
padding-left: .9375rem;
|
padding-left: .9375rem;
|
||||||
padding-right: .9375rem;
|
padding-right: .9375rem;
|
||||||
|
|
||||||
|
.form-group {
|
||||||
|
margin-top: 1.25rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2277,7 +2277,6 @@ export const useMainStore = defineStore({
|
||||||
this.order.policy.damageState = welcomePageModel?.damageState;
|
this.order.policy.damageState = welcomePageModel?.damageState;
|
||||||
this.order.policy.damageCity = welcomePageModel?.damageCity;
|
this.order.policy.damageCity = welcomePageModel?.damageCity;
|
||||||
this.order.policy.isDamageGlassOnly = welcomePageModel?.isDamageGlassOnly;
|
this.order.policy.isDamageGlassOnly = welcomePageModel?.isDamageGlassOnly;
|
||||||
this.order.customer.emailAddress = welcomePageModel?.email;
|
|
||||||
this.order.serviceLocation.zipCode = welcomePageModel?.policyZipCode;
|
this.order.serviceLocation.zipCode = welcomePageModel?.policyZipCode;
|
||||||
this.updatePhoneNumbers({
|
this.updatePhoneNumbers({
|
||||||
home: welcomePageModel?.phoneNumber,
|
home: welcomePageModel?.phoneNumber,
|
||||||
|
|
|
||||||
|
|
@ -174,6 +174,7 @@ body {
|
||||||
div.textbox-question {
|
div.textbox-question {
|
||||||
label {
|
label {
|
||||||
span.sub-caption {
|
span.sub-caption {
|
||||||
|
color: #525656;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -203,10 +204,10 @@ $heritage-btn-width: 9.0625rem; // 145px
|
||||||
@include heritage-btn-variant('secondary', $white, $heritage-blue-secondary, transparent, true);
|
@include heritage-btn-variant('secondary', $white, $heritage-blue-secondary, transparent, true);
|
||||||
@include heritage-btn-link('link', $blue, transparent, $heritage-blue-secondary);
|
@include heritage-btn-link('link', $blue, transparent, $heritage-blue-secondary);
|
||||||
|
|
||||||
@include heritage-btn-size('lg', 0.625rem, 1.25rem);
|
@include heritage-btn-size('lg', 0.625rem, 1.25rem);
|
||||||
@include heritage-btn-size('md', 7px, 15px);
|
@include heritage-btn-size('md', 7px, 15px);
|
||||||
@include heritage-btn-size('sm', 3px, 6px);
|
@include heritage-btn-size('sm', 3px, 6px);
|
||||||
@include heritage-btn-size('xs', 1px, 5px);
|
@include heritage-btn-size('xs', 1px, 5px);
|
||||||
|
|
||||||
&.btn-link {
|
&.btn-link {
|
||||||
--bs-btn-padding-x: 0px;
|
--bs-btn-padding-x: 0px;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue