diff --git a/src/constants/error-messages.js b/src/constants/error-messages.js index 7ea13330..5ba28f91 100644 --- a/src/constants/error-messages.js +++ b/src/constants/error-messages.js @@ -31,22 +31,23 @@ const errorMessages = Object.freeze({ 'Invalid VIN. Please make sure that you entered the correct 17-digit, alpha-numeric number. VINs do not contain the letters I, O, or Q', OPTION_REQUIRED: 'Please select an option', VEHICLE_REQUIRED: 'Please select a vehicle', - POLICY_NUMBER_REQUIRED: 'Please enter your policy number', + POLICY_NUMBER_REQUIRED: 'Policy number is required.', POLICY_NUMBER_FORMAT: 'Please enter an alpha-numeric string', - PHONE_NUMBER_REQUIRED: 'Please enter your phone number. The format must be ###-###-####', - POLICY_ZIP_REQUIRED: 'Please enter your policy ZIP', - POLICY_ZIP_FORMAT: 'Please enter a valid ZIP', + PHONE_NUMBER_REQUIRED: 'Please specify a valid phone number, the format is "###-###-####".', + EXTENSION_FORMAT: 'The specified extension is invalid', + POLICY_ZIP_REQUIRED: 'Policy ZIP is required.', + POLICY_ZIP_FORMAT: 'Please enter 5 digits', LOSS_CAUSE_REQUIRED: 'Please enter loss cause', - LOSS_CITY_REQUIRED: 'Please enter a city', + LOSS_CITY_REQUIRED: 'Loss City damage occurred in is required.', LOSS_CITY_FORMAT: 'Please enter only alpha characters', - LOSS_STATE_REQUIRED: 'Please select an option', + LOSS_STATE_REQUIRED: 'Loss State damage occurred in is required.', LOSS_DATE_REQUIRED: 'Please select a date. Format must be MM/DD/YYYY and the date must be not in the future', DAMAGE_DATE_REQUIREMENT: 'Damage date must be within the past 10 years', DAMAGE_DATE_NO_FUTURE_DATE: 'Damage date may not be in the future', - DAMAGE_OPTION_REQUIRED: 'Please select an option', + DAMAGE_OPTION_REQUIRED: 'How damage occurred is required.', POLICYHOLDER_FIRST_NAME_REQUIRED: 'Please enter the policyholder first name', POLICYHOLDER_LAST_NAME_REQUIRED: 'Please enter the policyholder last name', diff --git a/src/constants/global-rules.js b/src/constants/global-rules.js index 70c5834a..e82b118a 100644 --- a/src/constants/global-rules.js +++ b/src/constants/global-rules.js @@ -23,6 +23,7 @@ const globalRules = Object.freeze({ EMAIL_ADDRESS_FORMAT: 'email-address-format', PHONE_NUMBER_REQUIRED: 'phone-number-required', PHONE_NUMBER_FORMAT: 'phone-number-format', + EXTENSION_FORMAT: 'extension-format', ZIP_CODE_REQUIRED: 'zip-code-required', ZIP_CODE_SEARCH_FORMAT: 'zip-code-search-format', OPTION_REQUIRED: 'option-required' diff --git a/src/helpers/global-rule-definer.js b/src/helpers/global-rule-definer.js index aee863f1..c9d4c008 100644 --- a/src/helpers/global-rule-definer.js +++ b/src/helpers/global-rule-definer.js @@ -80,6 +80,16 @@ function defineGlobalPhoneNumberRules() { ); } +/** + * @summary Define global rules related to extensions + */ +function defineGlobalExtensionRules() { + defineRule( + globalRules.EXTENSION_FORMAT, + regex(/^[0-9]{5}$/, errorMessages.EXTENSION_FORMAT) + ); +} + /** * @summary Define global rules related to policy numbers */ @@ -122,6 +132,7 @@ export default function defineGlobalRules() { defineGlobalDateOfLossRules(); defineGlobalEmailRules(); defineGlobalPhoneNumberRules(); + defineGlobalExtensionRules(); defineGlobalPolicyNumberRules(); defineGlobalPolicyZipCodeRules(); defineGlobalZipCodeRules(); diff --git a/src/iss-components/site-sub-header/site-sub-header.vue b/src/iss-components/site-sub-header/site-sub-header.vue index 191b9cc8..eb2b5347 100644 --- a/src/iss-components/site-sub-header/site-sub-header.vue +++ b/src/iss-components/site-sub-header/site-sub-header.vue @@ -184,7 +184,7 @@ p { font-size: 1rem; line-height: 1.56; &.justify-content-center { - text-align: center; + text-align: left; } &.justify-content-left { text-align: left; diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index dfb89867..8aee9a35 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -32,6 +32,24 @@ :isDisabled="isPolicyZipDisabled" :validationRules="rules.policyZip" class="mt-3" /> + + - - - + + + @@ -243,6 +258,7 @@ export default { rules: { damageOption: 'damage-option-required', email: `${globalRules.EMAIL_ADDRESS_REQUIRED}|${globalRules.EMAIL_ADDRESS_FORMAT}`, + extension: `${globalRules.EXTENSION_FORMAT}`, lossCity: `${globalRules.DATE_OF_LOSS_CITY_REQUIRED}|${globalRules.DATE_OF_LOSS_CITY_FORMAT}`, // eslint-disable-next-line max-len lossDate: `${globalRules.DATE_OF_LOSS_REQUIRED}|${globalRules.DATE_OF_LOSS_NOT_TEN_YEARS_PAST}|${globalRules.DATE_OF_LOSS_NOT_FUTURE}`, @@ -391,6 +407,7 @@ export default { damageCity: this.mainStore.order.policy.damageCity, isDamageGlassOnly: this.mainStore.order.policy.isDamageGlassOnly, phoneNumber: this.mainStore.order.contactInfo.homePhone, + extension: this.mainStore.order.contactInfo.extension, email: this.mainStore.order.customer.emailAddress, isPolicyNumberDisabled: this.mainStore.order.policy.isPolicyNumberDisabled }; @@ -407,6 +424,7 @@ export default { this.welcomePageModel.damageCity = response.policy.damageCity; this.welcomePageModel.isDamageGlassOnly = response.policy.isDamageGlassOnly; this.welcomePageModel.phoneNumber = response.customer.homePhone; + this.welcomePageModel.extension = response.customer.extension; this.welcomePageModel.email = response.customer.emailAddress; }, findDamageCause(damageCause) { @@ -463,6 +481,13 @@ export default { this.mainStore.order.loadedFromCookie = true; this.answeredContinueModal = true; this.$refs.continueModal.closeModal(); + }, + handleHelpLinkClick() { + useMainStore().setBailout(bailoutMessage.RequestCallback()); + this.$router.navigate( + this.navigationScenarios.CLICKED_FORWARD_WITH_BAILOUT, + this.$route + ); } } }; @@ -486,6 +511,15 @@ form { } } +// Remove underline from help text links +:deep(.text-block a) { + text-decoration: none; + + &:hover { + text-decoration: underline; + } +} + @-moz-document url-prefix() { // Temporary solution that prevents the Continue button from being hidden in Firefox #welcomeFooter {