From 1540f31ee89a2186f278bc8f8a866ce4fe18d732 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Thu, 19 May 2022 09:42:12 -0400 Subject: [PATCH 1/3] CSR-584: fix missing zip-format validation rule, reformatting --- .../license-plate-lookup.vue | 62 +++++-------------- src/layouts/vin-lookup/vin-lookup.vue | 31 +++------- 2 files changed, 23 insertions(+), 70 deletions(-) diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.vue b/src/layouts/license-plate-lookup/license-plate-lookup.vue index 3d65717cf..5e5c5e722 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 56da4301d..97e0aaf6a 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -41,7 +41,7 @@ mask="#####" isRequired disableAutoFill - validationRules="zip-required" + validationRules="zip-required|zip-format" /> @@ -141,29 +141,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-HJ-NPR-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", From 02b67f93da6cc426de68ec80a152e48bba904cf4 Mon Sep 17 00:00:00 2001 From: bmauger Date: Thu, 19 May 2022 12:33:59 -0400 Subject: [PATCH 2/3] CSR-625,627 spacing fixes. --- src/common-components/button-question/button-question.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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) { From b28f094db7db27760e6e5c4d42cec5a48d97ff80 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Thu, 19 May 2022 14:05:15 -0400 Subject: [PATCH 3/3] CSR-606: add maxlength to vin --- src/common-components/textbox-question/textbox-question.vue | 2 ++ src/layouts/vin-lookup/vin-lookup.vue | 1 + 2 files changed, 3 insertions(+) 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/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index 541653898..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" />