diff --git a/ng2-components/ng2-activiti-form/karma.conf.js b/ng2-components/ng2-activiti-form/karma.conf.js
index d875822935..45e88af408 100644
--- a/ng2-components/ng2-activiti-form/karma.conf.js
+++ b/ng2-components/ng2-activiti-form/karma.conf.js
@@ -4,7 +4,7 @@ module.exports = function (config) {
var configuration = {
basePath: '.',
- frameworks: [/*'jasmine-ajax',*/ 'jasmine'],
+ frameworks: ['jasmine-ajax', 'jasmine'],
files: [
// paths loaded by Karma
@@ -63,7 +63,7 @@ module.exports = function (config) {
plugins: [
'karma-jasmine',
'karma-coverage',
- //'karma-jasmine-ajax',
+ 'karma-jasmine-ajax',
'karma-chrome-launcher',
'karma-mocha-reporter',
'karma-jasmine-html-reporter'
diff --git a/ng2-components/ng2-activiti-form/package.json b/ng2-components/ng2-activiti-form/package.json
index 47503cb8be..2e71ddd712 100644
--- a/ng2-components/ng2-activiti-form/package.json
+++ b/ng2-components/ng2-activiti-form/package.json
@@ -81,6 +81,7 @@
"karma-coveralls": "1.1.2",
"karma-jasmine": "1.0.2",
"karma-jasmine-html-reporter": "0.2.0",
+ "karma-jasmine-ajax": "0.1.13",
"karma-mocha-reporter": "2.0.3",
"license-check": "1.1.5",
"remap-istanbul": "0.6.3",
diff --git a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.html b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.html
index b269a29029..b0a1858552 100644
--- a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.html
+++ b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.html
@@ -13,7 +13,7 @@
-
+
diff --git a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.spec.ts b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.spec.ts
index a9b1ce5216..fed7fecd72 100644
--- a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.spec.ts
+++ b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.spec.ts
@@ -35,7 +35,7 @@ describe('ActivitiForm', () => {
window['componentHandler'] = componentHandler;
formService = new FormService(null, null, null);
- formComponent = new ActivitiForm(formService);
+ formComponent = new ActivitiForm(formService, null);
});
it('should upgrade MDL content on view checked', () => {
diff --git a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts
index c01bd4ca7f..57bf834072 100644
--- a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts
+++ b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts
@@ -26,7 +26,7 @@ import {
import { MATERIAL_DESIGN_DIRECTIVES } from 'ng2-alfresco-core';
import { FormService } from './../services/form.service';
-import { FormModel, FormOutcomeModel, FormValues } from './widgets/core/index';
+import { FormModel, FormOutcomeModel, FormValues, FormFieldModel } from './widgets/core/index';
import { TabsWidget } from './widgets/tabs/tabs.widget';
import { ContainerWidget } from './widgets/container/container.widget';
@@ -34,6 +34,8 @@ import { ContainerWidget } from './widgets/container/container.widget';
declare let __moduleName: string;
declare var componentHandler;
+import { WidgetVisibilityService } from './../services/widget-visibility.service';
+
/**
* @Input
* ActivitiForm can show 3 forms searching by 3 type of params:
@@ -70,7 +72,7 @@ declare var componentHandler;
templateUrl: './activiti-form.component.html',
styleUrls: ['./activiti-form.component.css'],
directives: [MATERIAL_DESIGN_DIRECTIVES, ContainerWidget, TabsWidget],
- providers: [FormService]
+ providers: [FormService, WidgetVisibilityService]
})
export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
@@ -118,7 +120,8 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
debugMode: boolean = false;
- constructor(private formService: FormService) {
+ constructor(private formService: FormService,
+ private visibilityService: WidgetVisibilityService) {
}
hasForm(): boolean {
@@ -220,6 +223,7 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
loadForm() {
if (this.taskId) {
this.getFormByTaskId(this.taskId);
+ this.visibilityService.getTaskProcessVariableModelsForTask(this.taskId);
return;
}
@@ -334,4 +338,8 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
new FormOutcomeModel(form, { id: '$custom', name: FormOutcomeModel.SAVE_ACTION, isSystem: true })
];
}
+
+ checkVisibility(field: FormFieldModel) {
+ this.visibilityService.updateVisibilityForForm(field.form);
+ }
}
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/.gitignore b/ng2-components/ng2-activiti-form/src/components/widgets/.gitignore
new file mode 100644
index 0000000000..3a6691d8d4
--- /dev/null
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/.gitignore
@@ -0,0 +1 @@
+/widget.model.ts
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/checkbox/checkbox.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/checkbox/checkbox.widget.html
index a417d59cb3..67862db94d 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/checkbox/checkbox.widget.html
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/checkbox/checkbox.widget.html
@@ -3,6 +3,7 @@
[attr.id]="field.id"
class="mdl-checkbox__input"
[(ngModel)]="field.value"
+ (ngModelChange)="checkVisibility(field)"
[disabled]="field.readOnly">
{{field.name}}
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.html
index dfdacb9b43..bd2732ddc4 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.html
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.html
@@ -15,33 +15,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
UNKNOWN WIDGET TYPE: {{field.type}}
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.ts b/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.ts
index 50e14bc604..aa8e0ddab9 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.ts
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.ts
@@ -15,11 +15,12 @@
* limitations under the License.
*/
-import { Component, Input, AfterViewInit } from '@angular/core';
+import { Component, Input, AfterViewInit, Output, EventEmitter } from '@angular/core';
import { ContainerModel } from './../core/index';
import { MATERIAL_DESIGN_DIRECTIVES } from 'ng2-alfresco-core';
import { PRIMITIVE_WIDGET_DIRECTIVES } from './../index';
+import { FormFieldModel } from '../core/index';
declare let __moduleName: string;
declare var componentHandler;
@@ -39,6 +40,9 @@ export class ContainerWidget implements AfterViewInit {
@Input()
content: ContainerModel;
+ @Output()
+ formValueChanged: EventEmitter = new EventEmitter();
+
onExpanderClicked() {
if (this.content && this.content.isCollapsible()) {
this.content.isExpanded = !this.content.isExpanded;
@@ -58,4 +62,8 @@ export class ContainerWidget implements AfterViewInit {
return false;
}
+ fieldChanged(field: FormFieldModel) {
+ this.formValueChanged.emit(field);
+ }
+
}
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts
index 988208b2b9..916c8714df 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts
@@ -20,6 +20,7 @@ import { FormFieldOption } from './form-field-option';
import { FormFieldTypes } from './form-field-types';
import { FormFieldMetadata } from './form-field-metadata';
import { FormModel } from './form.model';
+import { WidgetVisibilityModel } from '../../../models/widget-visibility.model';
export class FormFieldModel extends FormWidgetModel {
@@ -45,6 +46,8 @@ export class FormFieldModel extends FormWidgetModel {
params: FormFieldMetadata = {};
hyperlinkUrl: string;
displayText: string;
+ isVisible: boolean = true;
+ visibilityCondition: WidgetVisibilityModel = null;
get value(): any {
return this._value;
@@ -86,6 +89,7 @@ export class FormFieldModel extends FormWidgetModel {
this.params = json.params || {};
this.hyperlinkUrl = json.hyperlinkUrl;
this.displayText = json.displayText;
+ this.visibilityCondition = json.visibilityCondition;
this._value = this.parseValue(json);
this.updateForm();
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/display-value/display-value.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/display-value/display-value.widget.html
index bb5eb65114..a5d637d91c 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/display-value/display-value.widget.html
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/display-value/display-value.widget.html
@@ -3,6 +3,7 @@
type="text"
[attr.id]="field.id"
[(ngModel)]="field.value"
+ (ngModelChange)="checkVisibility(field)"
disabled>
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html
index b25a40fd9a..3da33231b0 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html
@@ -1,5 +1,5 @@
-
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html
index d33c9d518f..2511b63434 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html
@@ -4,6 +4,7 @@
rows= "3"
[attr.id]="field.id"
[(ngModel)]="field.value"
+ (ngModelChange)="checkVisibility(field)"
[disabled]="field.readOnly">
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/number/number.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/number/number.widget.html
index 37b0be6875..3a5bd8b474 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/number/number.widget.html
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/number/number.widget.html
@@ -4,6 +4,7 @@
pattern="-?[0-9]*(\.[0-9]+)?"
[attr.id]="field.id"
[(ngModel)]="field.value"
+ (ngModelChange)="checkVisibility(field)"
[disabled]="field.readOnly">
Input is not a number!
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.html
index 5d6d2e5901..d74aac765a 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.html
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.html
@@ -3,6 +3,7 @@
type="text"
[attr.id]="field.id"
[(ngModel)]="field.value"
+ (ngModelChange)="checkVisibility(field)"
[disabled]="field.readOnly">
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/widget.component.ts b/ng2-components/ng2-activiti-form/src/components/widgets/widget.component.ts
index ec08a747cc..321fcffb1a 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/widget.component.ts
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/widget.component.ts
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import { Input, AfterViewInit } from '@angular/core';
+import { Input, AfterViewInit, Output, EventEmitter } from '@angular/core';
import { FormFieldModel } from './core/index';
declare let __moduleName: string;
@@ -29,6 +29,9 @@ export class WidgetComponent implements AfterViewInit {
@Input()
field: FormFieldModel;
+ @Output()
+ fieldChanged: EventEmitter
= new EventEmitter();
+
hasField() {
return this.field ? true : false;
}
@@ -46,4 +49,8 @@ export class WidgetComponent implements AfterViewInit {
return false;
}
+ checkVisibility(field: FormFieldModel) {
+ this.fieldChanged.emit(field);
+ }
+
}
diff --git a/ng2-components/ng2-activiti-form/src/models/task-process-variable.model.ts b/ng2-components/ng2-activiti-form/src/models/task-process-variable.model.ts
new file mode 100644
index 0000000000..d6966a17aa
--- /dev/null
+++ b/ng2-components/ng2-activiti-form/src/models/task-process-variable.model.ts
@@ -0,0 +1,22 @@
+/*!
+ * @license
+ * Copyright 2016 Alfresco Software, Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export class TaskProcessVariableModel {
+ id: string;
+ type: string;
+ value: string;
+}
diff --git a/ng2-components/ng2-activiti-form/src/models/widget-visibility.model.ts b/ng2-components/ng2-activiti-form/src/models/widget-visibility.model.ts
new file mode 100644
index 0000000000..e6cf0dec4a
--- /dev/null
+++ b/ng2-components/ng2-activiti-form/src/models/widget-visibility.model.ts
@@ -0,0 +1,28 @@
+/*!
+ * @license
+ * Copyright 2016 Alfresco Software, Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export class WidgetVisibilityModel {
+ leftFormFieldId: string;
+ leftRestResponseId: string;
+ nextCondition: WidgetVisibilityModel;
+ nextConditionOperator: string;
+ operator: string;
+ rightFormFieldId: string;
+ rightRestResponseId: string;
+ rightType: string;
+ rightValue: string;
+}
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 3622b8c44e..134ab384f7 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
@@ -19,8 +19,9 @@ import { it, describe, inject, beforeEach, beforeEachProviders } from '@angular/
import { WidgetVisibilityService } from './widget-visibility.service';
import { AlfrescoSettingsService, AlfrescoAuthenticationService } from 'ng2-alfresco-core';
import { HTTP_PROVIDERS } from '@angular/http';
-import { VisibilityFormWidget, IProcessVariable } from '../components/widgets/widget-visibility.model';
-import { FormModel, FormValues, FormFieldModel } from './../components/widgets/widget.model';
+import { WidgetVisibilityModel } from '../models/widget-visibility.model';
+import { TaskProcessVariableModel } from '../models/task-process-variable.model';
+import { FormModel, FormFieldModel, FormValues } from '../components/widgets/core/index';
declare let AlfrescoApi: any;
declare let jasmine: any;
@@ -28,7 +29,7 @@ declare let jasmine: any;
describe('WidgetVisibilityService', () => {
let service;
- let fakeProcessVariables = [
+ let fakeTaskProcessVariableModels = [
{id: 'TEST_VAR_1', type: 'string', value: 'test_value_1'},
{id: 'TEST_VAR_2', type: 'string', value: 'test_value_2'},
{id: 'TEST_VAR_3', type: 'string', value: 'test_value_3'}
@@ -122,7 +123,7 @@ describe('WidgetVisibilityService', () => {
let formValues: FormValues = { 'test_1': 'value_1', 'test_2': 'value_2', 'test_3': 'value_1' };
- let visibilityObjTest: VisibilityFormWidget = {
+ let visibilityObjTest: WidgetVisibilityModel = {
leftFormFieldId : '',
leftRestResponseId : '',
nextCondition : null,
@@ -134,7 +135,7 @@ describe('WidgetVisibilityService', () => {
rightValue : null
};
- let chainedVisibilityObj: VisibilityFormWidget = {
+ let chainedVisibilityObj: WidgetVisibilityModel = {
leftFormFieldId : '',
leftRestResponseId : '',
nextCondition : null,
@@ -167,8 +168,8 @@ describe('WidgetVisibilityService', () => {
});
it('should return the process variables for task', (done) => {
- service.getProcessVariablesForTask(9999).subscribe(
- (res: IProcessVariable[]) => {
+ service.getTaskProcessVariableModelsForTask(9999).subscribe(
+ (res: TaskProcessVariableModel[]) => {
expect(res).toBeDefined();
expect(res.length).toEqual(3);
expect(res[0].id).toEqual('TEST_VAR_1');
@@ -181,7 +182,7 @@ describe('WidgetVisibilityService', () => {
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'application/json',
- responseText: JSON.stringify(fakeProcessVariables)
+ responseText: JSON.stringify(fakeTaskProcessVariableModels)
});
});
@@ -266,15 +267,15 @@ describe('WidgetVisibilityService', () => {
});
it('should be able to retrieve the value of a process variable', (done) => {
- service.getProcessVariablesForTask(9999).subscribe(
- (res: IProcessVariable[]) => {
+ service.getTaskProcessVariableModelsForTask(9999).subscribe(
+ (res: TaskProcessVariableModel[]) => {
done();
}
);
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'application/json',
- responseText: JSON.stringify(fakeProcessVariables)
+ responseText: JSON.stringify(fakeTaskProcessVariableModels)
});
let formTest = new FormModel(fakeFormJson);
@@ -285,15 +286,15 @@ describe('WidgetVisibilityService', () => {
});
it('should be able to retrieve the value of a form variable', (done) => {
- service.getProcessVariablesForTask(9999).subscribe(
- (res: IProcessVariable[]) => {
+ service.getTaskProcessVariableModelsForTask(9999).subscribe(
+ (res: TaskProcessVariableModel[]) => {
done();
}
);
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'application/json',
- responseText: JSON.stringify(fakeProcessVariables)
+ responseText: JSON.stringify(fakeTaskProcessVariableModels)
});
let formTest = new FormModel(fakeFormJson);
@@ -304,15 +305,15 @@ describe('WidgetVisibilityService', () => {
});
it('should return null if the variable does not exist', (done) => {
- service.getProcessVariablesForTask(9999).subscribe(
- (res: IProcessVariable[]) => {
+ service.getTaskProcessVariableModelsForTask(9999).subscribe(
+ (res: TaskProcessVariableModel[]) => {
done();
}
);
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'application/json',
- responseText: JSON.stringify(fakeProcessVariables)
+ responseText: JSON.stringify(fakeTaskProcessVariableModels)
});
let formTest = new FormModel(fakeFormJson);
@@ -385,15 +386,15 @@ describe('WidgetVisibilityService', () => {
});
it('should retrieve the value for the right field when it is a process variable', (done) => {
- service.getProcessVariablesForTask(9999).subscribe(
- (res: IProcessVariable[]) => {
+ service.getTaskProcessVariableModelsForTask(9999).subscribe(
+ (res: TaskProcessVariableModel[]) => {
done();
}
);
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'application/json',
- responseText: JSON.stringify(fakeProcessVariables)
+ responseText: JSON.stringify(fakeTaskProcessVariableModels)
});
let formTest = new FormModel(fakeFormJson);
visibilityObjTest.rightRestResponseId = 'TEST_VAR_2';
@@ -463,15 +464,15 @@ describe('WidgetVisibilityService', () => {
});
it('should retrieve the value for the left field when it is a process variable', (done) => {
- service.getProcessVariablesForTask(9999).subscribe(
- (res: IProcessVariable[]) => {
+ service.getTaskProcessVariableModelsForTask(9999).subscribe(
+ (res: TaskProcessVariableModel[]) => {
done();
}
);
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'application/json',
- responseText: JSON.stringify(fakeProcessVariables)
+ responseText: JSON.stringify(fakeTaskProcessVariableModels)
});
let formTest = new FormModel(fakeFormJson);
visibilityObjTest.leftRestResponseId = 'TEST_VAR_2';
@@ -589,15 +590,15 @@ describe('WidgetVisibilityService', () => {
});
it('should evaluate the visibility for the field with single visibility condition between form value and process var', (done) => {
- service.getProcessVariablesForTask(9999).subscribe(
- (res: IProcessVariable[]) => {
+ service.getTaskProcessVariableModelsForTask(9999).subscribe(
+ (res: TaskProcessVariableModel[]) => {
done();
}
);
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'application/json',
- responseText: JSON.stringify(fakeProcessVariables)
+ responseText: JSON.stringify(fakeTaskProcessVariableModels)
});
let formTest = new FormModel(fakeFormJson);
visibilityObjTest.leftFormFieldId = 'LEFT_FORM_FIELD_ID';
@@ -612,15 +613,15 @@ describe('WidgetVisibilityService', () => {
});
it('should evaluate visibility with multiple conditions', (done) => {
- service.getProcessVariablesForTask(9999).subscribe(
- (res: IProcessVariable[]) => {
+ service.getTaskProcessVariableModelsForTask(9999).subscribe(
+ (res: TaskProcessVariableModel[]) => {
done();
}
);
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'application/json',
- responseText: JSON.stringify(fakeProcessVariables)
+ responseText: JSON.stringify(fakeTaskProcessVariableModels)
});
let formTest = new FormModel(fakeFormJson);
visibilityObjTest.leftFormFieldId = 'LEFT_FORM_FIELD_ID';
@@ -639,15 +640,15 @@ describe('WidgetVisibilityService', () => {
});
it('should return true evaluating a proper condition for a field', (done) => {
- service.getProcessVariablesForTask(9999).subscribe(
- (res: IProcessVariable[]) => {
+ service.getTaskProcessVariableModelsForTask(9999).subscribe(
+ (res: TaskProcessVariableModel[]) => {
done();
}
);
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'application/json',
- responseText: JSON.stringify(fakeProcessVariables)
+ responseText: JSON.stringify(fakeTaskProcessVariableModels)
});
let formTest = new FormModel(fakeFormJson);
visibilityObjTest.leftFormFieldId = 'LEFT_FORM_FIELD_ID';
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 9fd0b11519..56249235b4 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
@@ -19,13 +19,14 @@ import { Injectable } from '@angular/core';
import { Response, Http, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import { AlfrescoSettingsService } from 'ng2-alfresco-core';
-import { FormModel, FormFieldModel } from './../components/widgets/widget.model';
-import { VisibilityFormWidget, IProcessVariable } from './../components/widgets/widget-visibility.model';
+import { FormModel, FormFieldModel } from '../components/widgets/core/index';
+import { WidgetVisibilityModel } from '../models/widget-visibility.model';
+import { TaskProcessVariableModel } from '../models/task-process-variable.model';
@Injectable()
export class WidgetVisibilityService {
- private processVarList: IProcessVariable[];
+ private processVarList: TaskProcessVariableModel[];
constructor(private http: Http,
private alfrescoSettingsService: AlfrescoSettingsService) {
@@ -54,7 +55,7 @@ export class WidgetVisibilityService {
}
}
- public getVisiblityForField(form: FormModel, visibilityObj: VisibilityFormWidget): boolean {
+ public getVisiblityForField(form: FormModel, visibilityObj: WidgetVisibilityModel): boolean {
let isLeftFieldPresent = visibilityObj.leftFormFieldId || visibilityObj.leftRestResponseId;
if ( !isLeftFieldPresent ) {
return true;
@@ -63,7 +64,7 @@ export class WidgetVisibilityService {
}
}
- private evaluateVisibilityForField(form: FormModel, visibilityObj: VisibilityFormWidget): boolean {
+ private evaluateVisibilityForField(form: FormModel, visibilityObj: WidgetVisibilityModel): boolean {
let leftValue = this.getLeftValue(form, visibilityObj);
let rightValue = this.getRightValue(form, visibilityObj);
let actualResult = this.evaluateCondition(leftValue, rightValue, visibilityObj.operator);
@@ -78,14 +79,14 @@ export class WidgetVisibilityService {
}
}
- private getLeftValue(form: FormModel, visibilityObj: VisibilityFormWidget) {
+ private getLeftValue(form: FormModel, visibilityObj: WidgetVisibilityModel) {
if ( visibilityObj.leftRestResponseId ) {
return this.getValueFromVariable(form, visibilityObj.leftRestResponseId);
}
return this.getValueOField(form, visibilityObj.leftFormFieldId);
}
- private getRightValue(form: FormModel, visibilityObj: VisibilityFormWidget) {
+ private getRightValue(form: FormModel, visibilityObj: WidgetVisibilityModel) {
let valueFound = null;
if ( visibilityObj.rightRestResponseId ) {
valueFound = this.getValueFromVariable(form, visibilityObj.rightRestResponseId);
@@ -170,19 +171,19 @@ export class WidgetVisibilityService {
return null;
}
- getProcessVariablesForTask(taskId: string): Observable {
+ getTaskProcessVariableModelsForTask(taskId: string): Observable {
let url = `${this.alfrescoSettingsService.getBPMApiBaseUrl()}/app/rest/task-forms/${taskId}/variables`;
let options = this.getRequestOptions();
return this.http
.get(url, options)
- .map( (response: Response) => this.processVarList = response.json())
+ .map( (response: Response) => this.processVarList = response.json())
.catch(this.handleError);
}
- getProcessVariableForTaskByName(taskId: string, processVarName: string): Observable {
- return this.getProcessVariablesForTask(taskId)
+ getTaskProcessVariableModelForTaskByName(taskId: string, processVarName: string): Observable {
+ return this.getTaskProcessVariableModelsForTask(taskId)
.map(
- (variables: IProcessVariable[]) =>
+ (variables: TaskProcessVariableModel[]) =>
variables.find(variable => variable.id === processVarName));
}