diff --git a/src/common-components/button-question/button-question.vue b/src/common-components/button-question/button-question.vue index 20ad2b2f8..c2eb72971 100644 --- a/src/common-components/button-question/button-question.vue +++ b/src/common-components/button-question/button-question.vue @@ -40,7 +40,7 @@ -
+
@@ -134,7 +134,7 @@ export default { return answer.Name ? answer.Name : answer; }, handleCheckedChanged(val) { - + this.pushEventToGA(this.$route.query[queryStrings.FMG_PAGE], this.GaActions.CLICKED, val.value, true); if(this.isMultiSelect && this.selectedValues) { diff --git a/src/common-components/textbox-question/textbox-question.vue b/src/common-components/textbox-question/textbox-question.vue index 31437b8b9..673c1a263 100644 --- a/src/common-components/textbox-question/textbox-question.vue +++ b/src/common-components/textbox-question/textbox-question.vue @@ -19,6 +19,7 @@ :validationRules="validationRules" @change="handleChange" @blur="handleChange" + :maxlength="maxLength ? maxLength : '999'" />
{{ errorMessage }} @@ -55,6 +56,7 @@ export default { validationRules: String, semiAggressiveValidation: Boolean, cmsWidgetName: String, + maxLength: String, }, setup(props) { const propsClone = Object.assign({}, props); diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.vue b/src/layouts/license-plate-lookup/license-plate-lookup.vue index 17aa1b632..7ec79773b 100644 --- a/src/layouts/license-plate-lookup/license-plate-lookup.vue +++ b/src/layouts/license-plate-lookup/license-plate-lookup.vue @@ -24,7 +24,7 @@ v-model="registrationZip" inputId="zip" mask="#####" - validationRules="zip-required" + validationRules="zip-required|zip-format" />
@@ -54,6 +54,7 @@ v-model="serviceZip" inputId="serviceZip" validationRules="zip-required|zip-format" + semiAggressiveValidation /> @@ -87,56 +88,25 @@ import alert from "@/ux-components/alert/alert"; import textboxQuestion from "@/common-components/textbox-question/textbox-question"; import loadingModal from '@/common-components/loading-modal/loading-modal.vue'; // Supporting files -import { - fetchCmsContentForPage -} from "@/helpers/cms-content-helper"; -import { - settleAllPromises -} from "@/helpers/layout-helper"; +import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; +import { settleAllPromises } from "@/helpers/layout-helper"; import store from "@/store"; import baseMixin from "@/mixins/base-mixin.js"; -import { - storeActions -} from "@/constants/store-actions"; -import { - storeMutations -} from "@/constants/store-mutations"; -import { - errorMessages -} from "@/constants/error-messages"; -import { - navigateAfterSaveToHeritageFunnel -} from "@/helpers/heritage-integration/navigation-helper"; -import { - getDamageString, - isGlassAvailableForCarId, -} from "@/helpers/damage-helper"; -import { - required, - regex, -} from "@/helpers/validation-rules"; -import { - Form, - defineRule, -} from "vee-validate"; +import { storeActions } from "@/constants/store-actions"; +import { storeMutations } from "@/constants/store-mutations"; +import { errorMessages } from "@/constants/error-messages"; +import { navigateAfterSaveToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; +import { getDamageString, isGlassAvailableForCarId, } from "@/helpers/damage-helper"; +import { required, regex, } from "@/helpers/validation-rules"; +import { Form, defineRule, } from "vee-validate"; // DEFINE VALIDATION RULES -defineRule( - "license-plate-required", - required(errorMessages.LICENSE_PLATE_REQUIRED) -); +defineRule("license-plate-required", required(errorMessages.LICENSE_PLATE_REQUIRED)); defineRule("zip-required", required(errorMessages.REGISTRATION_ZIP_REQUIRED)); -defineRule( - "email-address-required", - required(errorMessages.EMAIL_ADDRESS_REQUIRED) -); -defineRule( - "email-address-format", - regex( - /^([a-zA-Z0-9_\-.+]+)@([a-zA-Z0-9_\-.]+)\.([a-zA-Z]{2,})$/, - errorMessages.EMAIL_ADDRESS_FORMAT - ) -); +defineRule("zip-format", regex(/(^\d{5}$)|(^\d{5}-\d{4}$)/, errorMessages.SERVICE_ZIP_FORMAT)); +defineRule("email-address-required", required(errorMessages.EMAIL_ADDRESS_REQUIRED)); +defineRule("email-address-format", regex(/^([a-zA-Z0-9_\-.+]+)@([a-zA-Z0-9_\-.]+)\.([a-zA-Z]{2,})$/, errorMessages.EMAIL_ADDRESS_FORMAT)); + export default { name: "license-plate-lookup", async beforeRouteEnter(to, from, next) { diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index feb15adfc..1f4f6c9ce 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -24,6 +24,7 @@ disableAutoFill validationRules="vin-required|vin-format" :isDisabled="isVinFieldReadOnly" + maxLength="17" /> @@ -41,7 +42,7 @@ mask="#####" isRequired disableAutoFill - validationRules="zip-required" + validationRules="zip-required|zip-format" /> @@ -141,29 +142,12 @@ import { Form, defineRule } from "vee-validate"; import { navigateAfterSaveToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; // DEFINE VALIDATION RULES -defineRule( - "zip-required", - required(errorMessages.SERVICE_ZIP_REQUIRED) -); -defineRule( - "email-address-required", - required(errorMessages.EMAIL_ADDRESS_REQUIRED) -); -defineRule( - "email-address-format", - regex( - /^([a-zA-Z0-9_\-.+]+)@([a-zA-Z0-9_\-.]+)\.([a-zA-Z]{2,})$/, - errorMessages.EMAIL_ADDRESS_FORMAT - ) -); -defineRule( - "vin-required", - required(errorMessages.VIN_REQUIRED) -); -defineRule( - "vin-format", - regex(/^[a-hA-Hj-nJ-NpPr-zR-Z0-9]{17}$/, errorMessages.VIN_FORMAT) -); +defineRule("zip-required", required(errorMessages.SERVICE_ZIP_REQUIRED)); +defineRule("zip-format", regex(/(^\d{5}$)|(^\d{5}-\d{4}$)/, errorMessages.SERVICE_ZIP_FORMAT)); +defineRule("email-address-required", required(errorMessages.EMAIL_ADDRESS_REQUIRED)); +defineRule("email-address-format", regex(/^([a-zA-Z0-9_\-.+]+)@([a-zA-Z0-9_\-.]+)\.([a-zA-Z]{2,})$/, errorMessages.EMAIL_ADDRESS_FORMAT)); +defineRule("vin-required", required(errorMessages.VIN_REQUIRED)); +defineRule("vin-format", regex(/^[A-HJ-NPR-Z0-9]{17}$/, errorMessages.VIN_FORMAT)); export default { name: "vin-lookup",