From 2e5c2fd129f37f9111f704e1d426e6915eb0221e Mon Sep 17 00:00:00 2001 From: Kroell Date: Wed, 3 May 2023 17:00:40 -0400 Subject: [PATCH 1/4] fixes to disable Continue button if all selections haven't been made --- .../glass-part-question/glass-part-question.vue | 9 ++++----- src/layouts/vehicle-parts/vehicle-parts.vue | 4 +--- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue index 75609fee..2117390e 100644 --- a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue +++ b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue @@ -50,6 +50,7 @@ import { errorMessages } from "@/constants/error-messages"; export default { name: "glass-part-question", + emits: ["update:modelValue"], inheritAttrs: false, data() { return { @@ -117,10 +118,8 @@ export default { return this.modelValue?.partNumber; }, set(newValue) { - this.$emit( - "update:modelValue", - this.partsForSelectedTint.filter((part) => part.partNumber == newValue.value)[0] - ); + const part = !newValue ? null : this.partsForSelectedTint.filter((part) => part.partNumber == newValue.value)[0] + this.$emit("update:modelValue", part); }, }, @@ -218,7 +217,7 @@ export default { }, watch: { selectedTint() { - this.AutoSelectIfSinglePart(); + this.ResetTintAndPartSelections(); }, }, }; diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue index 24413af3..08caf800 100644 --- a/src/layouts/vehicle-parts/vehicle-parts.vue +++ b/src/layouts/vehicle-parts/vehicle-parts.vue @@ -108,9 +108,7 @@ data() { }, computed: { isForwardActionDisabled() { - return ( - this.selectedGlassPartNumbers.length !== this.PartsFromApi.partsOrQuestions.length - ); + return this.selectedGlassPartNumbers.length !== this.PartsFromApi.partsOrQuestions.length }, selectedGlassPartNumbers() { // Compile all selected parts from the page. From bb055c480674a88533060450f7d9fd05d76e75a3 Mon Sep 17 00:00:00 2001 From: Kroell Date: Thu, 4 May 2023 16:22:45 -0400 Subject: [PATCH 2/4] WIP --- .../glass-part-question/glass-part-question.spec.js | 4 ++-- .../vehicle-parts/glass-part-question/glass-part-question.vue | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.spec.js b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.spec.js index 43f69c74..a95f0c89 100644 --- a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.spec.js +++ b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.spec.js @@ -83,7 +83,7 @@ describe("glass-part-question.vue", () => { }, ], }; - + const { wrapper } = setupMocks(featureListData); //Act @@ -94,7 +94,7 @@ describe("glass-part-question.vue", () => { await wrapper.setData({ selectedTint: "Green Tint" }); // to trigger the computed setter wrapper.vm.selectedPartNumber = "DB12209GTYN"; - + //Assert expect(wrapper.emitted()["update:modelValue"][0]).toEqual([ { partNumber: "DB12209GTYN", color: "Green Tint" }, diff --git a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue index 2117390e..3a622b2c 100644 --- a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue +++ b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue @@ -118,7 +118,7 @@ export default { return this.modelValue?.partNumber; }, set(newValue) { - const part = !newValue ? null : this.partsForSelectedTint.filter((part) => part.partNumber == newValue.value)[0] + const part = this.partsForSelectedTint.filter((part) => part.partNumber == newValue?.value)[0]; this.$emit("update:modelValue", part); }, }, From 9af5e9e328e1b5e80439f57971538a10fd0f298c Mon Sep 17 00:00:00 2001 From: Reddy Date: Fri, 5 May 2023 14:27:58 +0530 Subject: [PATCH 3/4] SSR-450 Added error message --- src/constants/error-messages.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/constants/error-messages.js b/src/constants/error-messages.js index 0aeff385..3fcd5848 100644 --- a/src/constants/error-messages.js +++ b/src/constants/error-messages.js @@ -36,7 +36,8 @@ const errorMessages = { DAMAGE_OPTION_REQUIRED: "Please select an option", POLICYHOLDER_FIRST_NAME_REQUIRED: "Please enter the policyholder first name", - POLICYHOLDER_LAST_NAME_REQUIRED: "Please enter the policyholder last name" + POLICYHOLDER_LAST_NAME_REQUIRED: "Please enter the policyholder last name", + ACKNOWLEDGEMENT_REQUIRED: "You must agree to the terms to continue" }; From 0003de236fb874d2d7dd75275928de54371726b7 Mon Sep 17 00:00:00 2001 From: Kroell Date: Fri, 5 May 2023 09:45:47 -0400 Subject: [PATCH 4/4] move resetting logic --- .../glass-part-question/glass-part-question.vue | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue index 3a622b2c..9b1beaec 100644 --- a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue +++ b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue @@ -180,13 +180,6 @@ export default { return tintSourceObject.src; }, - // Reset selections when tint changes for the same glass to ensure proper selection. - // Also checks if only a single part is present for the tint. - ResetTintAndPartSelections() { - this.selectedPartNumber = null; - this.AutoSelectIfSinglePart(); - }, - AutoSelectIfSinglePart() { if (this.partsForSelectedTint?.length > 0) { @@ -201,6 +194,9 @@ export default { radioInput?.click(); }); } + else { + this.selectedPartNumber = null; + } } }, @@ -217,7 +213,7 @@ export default { }, watch: { selectedTint() { - this.ResetTintAndPartSelections(); + this.AutoSelectIfSinglePart(); }, }, };