From 8f6a9fb03be84f81c6a1acb77813d4eae23380a3 Mon Sep 17 00:00:00 2001 From: Vito Albano Date: Tue, 20 Sep 2016 17:39:48 +0100 Subject: [PATCH] Added some improvements, and fixed some name in the specs --- .../widget-visibility.service.spec.ts | 19 ++++----- .../src/services/widget-visibility.service.ts | 39 ++++++++++++------- 2 files changed, 35 insertions(+), 23 deletions(-) diff --git a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts index 7e5fc16ff5..b471335c30 100644 --- a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts +++ b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts @@ -209,7 +209,8 @@ describe('WidgetVisibilityService', () => { it('should be able to retrieve the value of a process variable', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { - let varValue = service.getValueFromVariable(formTest, 'TEST_VAR_1'); + expect(res).toBeDefined(); + let varValue = service.getValueFromVariable(formTest, 'TEST_VAR_1', res); expect(varValue).not.toBeUndefined(); expect(varValue).toBe('test_value_1'); done(); @@ -228,7 +229,7 @@ describe('WidgetVisibilityService', () => { type: 'string', value: 'form_value_test' } ]}); - let varValue = service.getValueFromVariable(fakeForm, 'FORM_VARIABLE_TEST'); + let varValue = service.getValueFromVariable(fakeForm, 'FORM_VARIABLE_TEST', null); expect(varValue).not.toBeUndefined(); expect(varValue).toBe('form_value_test'); @@ -238,7 +239,7 @@ describe('WidgetVisibilityService', () => { it('should return null if the variable does not exist', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { - let varValue = service.getValueFromVariable(formTest, 'TEST_MYSTERY_VAR'); + let varValue = service.getValueFromVariable(formTest, 'TEST_MYSTERY_VAR', res); expect(varValue).toBeNull(); done(); } @@ -360,7 +361,7 @@ describe('WidgetVisibilityService', () => { expect(rightValue).toBeNull(); }); - it('should retrieve the value for the left field when it is a process variable', (variableUpdated) => { + it('should retrieve the value for the left field when it is a process variable', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { let visibilityObjTest = new WidgetVisibilityModel(); @@ -370,7 +371,7 @@ describe('WidgetVisibilityService', () => { expect(rightValue).not.toBeNull(); expect(rightValue).toBe('test_value_2'); - variableUpdated(); + done(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ @@ -462,7 +463,7 @@ describe('WidgetVisibilityService', () => { expect(isVisible).toBeTruthy(); }); - it('should evaluate the visibility for the field between form value and process var', (varReady) => { + it('should evaluate the visibility for the field between form value and process var', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -474,7 +475,7 @@ describe('WidgetVisibilityService', () => { let isVisible = service.evaluateVisibilityForField(fakeFormWithField, visibilityObjTest); expect(isVisible).toBeTruthy(); - varReady(); + done(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ @@ -485,7 +486,7 @@ describe('WidgetVisibilityService', () => { }); - it('should evaluate visibility with multiple conditions', (ready) => { + it('should evaluate visibility with multiple conditions', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -502,7 +503,7 @@ describe('WidgetVisibilityService', () => { let isVisible = service.evaluateVisibilityForField(fakeFormWithField, visibilityObjTest); expect(isVisible).toBeTruthy(); - ready(); + done(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ diff --git a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts index 04de51d00b..e53c2a1c33 100644 --- a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts +++ b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts @@ -81,7 +81,7 @@ export class WidgetVisibilityService { private getLeftValue(form: FormModel, visibilityObj: WidgetVisibilityModel) { if ( visibilityObj.leftRestResponseId ) { - return this.getValueFromVariable(form, visibilityObj.leftRestResponseId); + return this.getValueFromVariable(form, visibilityObj.leftRestResponseId, this.processVarList); } return this.getValueOField(form, visibilityObj.leftFormFieldId); } @@ -89,7 +89,7 @@ export class WidgetVisibilityService { private getRightValue(form: FormModel, visibilityObj: WidgetVisibilityModel) { let valueFound = null; if ( visibilityObj.rightRestResponseId ) { - valueFound = this.getValueFromVariable(form, visibilityObj.rightRestResponseId); + valueFound = this.getValueFromVariable(form, visibilityObj.rightRestResponseId, this.processVarList); }else if ( visibilityObj.rightFormFieldId ) { valueFound = this.getValueOField(form, visibilityObj.rightFormFieldId); }else { @@ -119,18 +119,29 @@ export class WidgetVisibilityService { return null; } - private getValueFromVariable(form: FormModel, name: string) { - let formVariable; - if ( form.json.variables ) { - formVariable = form.json.variables.find(formVar => formVar.name === name); - } - if ( !formVariable && this.processVarList ) { - formVariable = this.processVarList.find(variable => variable.id === name); - } - if ( formVariable ) { - return formVariable.value; - } - return null; + private getValueFromVariable( form: FormModel, name: string, processVarList: TaskProcessVariableModel[] ) { + return this.getFormVariableValue(form, name) || + this.getProcessVariableValue(name, processVarList); + } + + private getFormVariableValue(form: FormModel, name: string ) { + if ( form.json.variables) { + let variableFromForm = form.json.variables.find(formVar => formVar.name === name); + if ( variableFromForm ) { + return variableFromForm.value; + } + } + return null; + } + + private getProcessVariableValue(name: string, processVarList: TaskProcessVariableModel[]) { + if ( this.processVarList ) { + let variableFromProcess = this.processVarList.find(variable => variable.id === name); + if ( variableFromProcess ) { + return variableFromProcess.value; + } + } + return null; } private evaluateLogicalOperation(logicOp, previousValue, newValue): boolean {