Hide/display fields based on the client tag
SSR-334
This commit is contained in:
parent
0efa2a2c50
commit
964ae7553e
4 changed files with 37 additions and 1 deletions
|
|
@ -13,10 +13,12 @@ export function fetchCmsContentForPage(issPage) {
|
||||||
(baseResponse) => {
|
(baseResponse) => {
|
||||||
if ( !clientOverride )
|
if ( !clientOverride )
|
||||||
{
|
{
|
||||||
|
setClientTag(clientName,accountNumber);
|
||||||
// Return the base page if there are no client override.
|
// Return the base page if there are no client override.
|
||||||
return processPageData(baseResponse, null);
|
return processPageData(baseResponse, null);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
setClientTag(clientName,accountNumber);
|
||||||
// Else get the client override page.
|
// Else get the client override page.
|
||||||
const pageName = issPage + "_" + clientName.toLowerCase().replace(/ /g, "");
|
const pageName = issPage + "_" + clientName.toLowerCase().replace(/ /g, "");
|
||||||
|
|
||||||
|
|
@ -115,7 +117,17 @@ function processPageData(baseResponse, clientResponse) {
|
||||||
|
|
||||||
return pageDataFromCms;
|
return pageDataFromCms;
|
||||||
}
|
}
|
||||||
|
//ClientTag function to identify essential or advance flow
|
||||||
|
function setClientTag(clientName,accountNumber)
|
||||||
|
{
|
||||||
|
const storeState = useMainStore();
|
||||||
|
if(clientName !="Generic Insurance" && accountNumber){
|
||||||
|
storeState.issConfig.flowType = "Advanced Flow";
|
||||||
|
}
|
||||||
|
if(clientName =="Generic Insurance" && accountNumber==0){
|
||||||
|
storeState.issConfig.flowType = "Essential Flow";
|
||||||
|
}
|
||||||
|
}
|
||||||
// Parent function for processWidgetItemForReplacement. This will loop through the parent
|
// Parent function for processWidgetItemForReplacement. This will loop through the parent
|
||||||
// object and pass any objects that need additional processing to the processWidgetItemForReplacement function.
|
// object and pass any objects that need additional processing to the processWidgetItemForReplacement function.
|
||||||
function findAndReplaceGlobalStateValues(widgetModel, widgetName) {
|
function findAndReplaceGlobalStateValues(widgetModel, widgetName) {
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ describe("welcome-page.vue", () => {
|
||||||
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" });
|
const email = wrapper.findComponent({ ref: "email" });
|
||||||
|
const policyZip = wrapper.findComponent({ ref: "policyZip" });
|
||||||
|
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
|
|
@ -46,6 +47,7 @@ describe("welcome-page.vue", () => {
|
||||||
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);
|
expect(email.exists()).toBe(true);
|
||||||
|
expect(policyZip.exists()).toBe(false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,18 @@
|
||||||
validationRules="policy-number-required" />
|
validationRules="policy-number-required" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row mt-4 px-3">
|
||||||
|
<div class="col">
|
||||||
|
<textboxQuestion
|
||||||
|
inputId="policyZipCode"
|
||||||
|
cmsWidgetName="PolicyZipQuestion"
|
||||||
|
v-model="welcomePageModel.policyZip"
|
||||||
|
isRequired
|
||||||
|
ref="policyZip"
|
||||||
|
v-if="this.displayPolicyZip"
|
||||||
|
validationRules="policy-zip-required|policy-zip-format" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row mt-4 px-3">
|
<div class="row mt-4 px-3">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<textboxQuestion
|
<textboxQuestion
|
||||||
|
|
@ -168,6 +180,8 @@ defineRule("loss-city-required", required(errorMessages.LOSS_CITY_REQUIRED));
|
||||||
defineRule("phone-number-required", required(errorMessages.PHONE_NUMBER_FORMAT));
|
defineRule("phone-number-required", required(errorMessages.PHONE_NUMBER_FORMAT));
|
||||||
defineRule("email-address-required", required(errorMessages.EMAIL_ADDRESS_REQUIRED));
|
defineRule("email-address-required", required(errorMessages.EMAIL_ADDRESS_REQUIRED));
|
||||||
defineRule("damage-option-required", required(errorMessages.DAMAGE_OPTION_REQUIRED));
|
defineRule("damage-option-required", required(errorMessages.DAMAGE_OPTION_REQUIRED));
|
||||||
|
defineRule("policy-zip-required", required(errorMessages.POLICY_ZIP_REQUIRED));
|
||||||
|
defineRule("policy-zip-format", regex(/(^\d{5}$)|(^\d{5}-\d{4}$)/, errorMessages.POLICY_ZIP_FORMAT));
|
||||||
|
|
||||||
defineRule("email-address-format",
|
defineRule("email-address-format",
|
||||||
regex(
|
regex(
|
||||||
|
|
@ -242,6 +256,7 @@ export default {
|
||||||
isDamageGlassOnly : this.mainStore.order.policy.isDamageGlassOnly,
|
isDamageGlassOnly : this.mainStore.order.policy.isDamageGlassOnly,
|
||||||
phoneNumber : this.mainStore.order.customer.phoneNumber,
|
phoneNumber : this.mainStore.order.customer.phoneNumber,
|
||||||
email : this.mainStore.order.customer.emailAddress,
|
email : this.mainStore.order.customer.emailAddress,
|
||||||
|
policyZip: this.mainStore.order.customer.policyZip,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -332,6 +347,11 @@ export default {
|
||||||
},
|
},
|
||||||
displayGlassOnlyQuestion(){
|
displayGlassOnlyQuestion(){
|
||||||
return !!this.getCmsContent("GlassOnlyQuestion","QuestionText");
|
return !!this.getCmsContent("GlassOnlyQuestion","QuestionText");
|
||||||
|
},
|
||||||
|
displayPolicyZip(){
|
||||||
|
if(this.mainStore.issConfig.flowType=="Essential Flow"){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,7 @@ const getDefaultState = () => {
|
||||||
enableTPAFlow: false,
|
enableTPAFlow: false,
|
||||||
returnURL: null,
|
returnURL: null,
|
||||||
returnURL2: null,
|
returnURL2: null,
|
||||||
|
flowType:"",
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -613,6 +614,7 @@ export const useMainStore = defineStore({
|
||||||
this.issConfig.enableTPAFlow = false;
|
this.issConfig.enableTPAFlow = false;
|
||||||
this.issConfig.returnURL = null;
|
this.issConfig.returnURL = null;
|
||||||
this.issConfig.returnURL2 = null;
|
this.issConfig.returnURL2 = null;
|
||||||
|
this.issConfig.flowType="";
|
||||||
},
|
},
|
||||||
|
|
||||||
updateVehicleYear(year) {
|
updateVehicleYear(year) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue