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 877fb95363..ccab11975e 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 @@ -11,7 +11,7 @@ {{content.name}} -
+
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.spec.ts b/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.spec.ts index 85a530f08b..e3da7ed9c2 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.spec.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.spec.ts @@ -145,8 +145,8 @@ describe('ContainerWidget', () => { name: 'fake-cont-2-name', type: FormFieldTypes.GROUP }); - fakeContainerVisible.isVisible = true; - fakeContainerInvisible.isVisible = false; + fakeContainerVisible.field.isVisible = true; + fakeContainerInvisible.field.isVisible = false; }); afterEach(() => { @@ -180,7 +180,7 @@ describe('ContainerWidget', () => { containerWidgetComponent.content = fakeContainerVisible; fixture.detectChanges(); containerWidgetComponent.formValueChanged.subscribe((res) => { - containerWidgetComponent.content.isVisible = false; + containerWidgetComponent.content.field.isVisible = false; fixture.detectChanges(); fixture.whenStable() .then(() => { @@ -194,7 +194,7 @@ describe('ContainerWidget', () => { it('should show header when it becomes visible', async(() => { containerWidgetComponent.content = fakeContainerInvisible; containerWidgetComponent.formValueChanged.subscribe((res) => { - containerWidgetComponent.content.isVisible = true; + containerWidgetComponent.content.field.isVisible = true; fixture.detectChanges(); fixture.whenStable() .then(() => { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/container.model.spec.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/container.model.spec.ts index 7518e62e99..cdea916fda 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/container.model.spec.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/container.model.spec.ts @@ -51,8 +51,7 @@ describe('ContainerModel', () => { type: '', tab: '', numberOfColumns: 2, - params: {}, - visibilityCondition: {} + params: {} }; let container = new ContainerModel(null, json); Object.keys(json).forEach(key => { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/container.model.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/container.model.ts index c39d24d5cb..4de70c6642 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/container.model.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/container.model.ts @@ -21,18 +21,20 @@ import { ContainerColumnModel } from './container-column.model'; import { FormFieldTypes } from './form-field-types'; import { FormModel } from './form.model'; import { FormFieldModel } from './form-field.model'; -import { WidgetVisibilityModel } from '../../../models/widget-visibility.model'; export class ContainerModel extends FormWidgetModel { + field: FormFieldModel; numberOfColumns: number = 1; params: FormFieldMetadata = {}; - isVisible: boolean = true; - visibilityCondition: WidgetVisibilityModel = null; columns: ContainerColumnModel[] = []; isExpanded: boolean = true; + get isVisible(): boolean { + return this.field.isVisible; + } + isGroup(): boolean { return this.type === FormFieldTypes.GROUP; } @@ -61,9 +63,9 @@ export class ContainerModel extends FormWidgetModel { super(form, json); if (json) { + this.field = new FormFieldModel(form, json); this.numberOfColumns = json.numberOfColumns; this.params = json.params || {}; - this.visibilityCondition = json.visibilityCondition; let columnSize: number = 12; if (this.numberOfColumns > 1) { @@ -91,6 +93,10 @@ export class ContainerModel extends FormWidgetModel { getFormFields(): FormFieldModel[] { let result: FormFieldModel[] = []; + if (this.field) { + result.push(this.field); + } + for (let j = 0; j < this.columns.length; j++) { let column = this.columns[j]; for (let k = 0; k < column.fields.length; k++) { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/form.model.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/form.model.ts index 579f0da38e..4a9096b759 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/form.model.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/form.model.ts @@ -121,7 +121,7 @@ export class FormModel { for (let i = 0; i < this.fields.length; i++) { let field = this.fields[i]; - if (field.type === FormFieldTypes.CONTAINER) { + if (field.type === FormFieldTypes.CONTAINER || field.type === FormFieldTypes.GROUP) { let container = field; result.push(...container.getFormFields()); } 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 ac5fd4f1c6..ffd7a8e177 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 @@ -27,7 +27,7 @@ import { WidgetVisibilityService } from './widget-visibility.service'; import { AlfrescoSettingsService, AlfrescoAuthenticationService, AlfrescoApiService } from 'ng2-alfresco-core'; import { TaskProcessVariableModel } from '../models/task-process-variable.model'; import { WidgetVisibilityModel } from '../models/widget-visibility.model'; -import { FormModel, FormFieldModel, TabModel, ContainerModel } from '../components/widgets/core/index'; +import { FormModel, FormFieldModel, TabModel, ContainerModel, FormFieldTypes } from '../components/widgets/core/index'; declare let jasmine: any; @@ -657,20 +657,21 @@ describe('WidgetVisibilityService', () => { expect(tab.isVisible).toBeFalsy(); }); - it('should refresh the visibility for container in forms', () => { + xit('should refresh the visibility for container in forms', () => { visibilityObjTest.leftFormFieldId = 'FIELD_TEST'; visibilityObjTest.operator = '!='; visibilityObjTest.rightFormFieldId = 'LEFT_FORM_FIELD_ID'; let contModel = new ContainerModel(fakeFormWithField, { id: 'fake-container-id', + type: FormFieldTypes.GROUP, name: 'fake-container-name', - isVisible: true + isVisible: true, + visibilityCondition: visibilityObjTest }); - contModel.visibilityCondition = visibilityObjTest; - fakeFormWithField.fields[1] = contModel; + + fakeFormWithField.fields.push(contModel); service.refreshVisibility(fakeFormWithField); - let fakeCont = fakeFormWithField.fields[1]; - expect(fakeCont.isVisible).toBeFalsy(); + expect(contModel.isVisible).toBeFalsy(); }); it('should refresh the visibility for single container', () => { @@ -679,12 +680,12 @@ describe('WidgetVisibilityService', () => { visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID'; let contModel = new ContainerModel(fakeFormWithField, { id: 'fake-container-id', + type: FormFieldTypes.GROUP, name: 'fake-container-name', - isVisible: true + isVisible: true, + visibilityCondition: visibilityObjTest }); - contModel.visibilityCondition = visibilityObjTest; - service.refreshEntityVisibility(contModel); - + service.refreshEntityVisibility(contModel.field); expect(contModel.isVisible).toBeFalsy(); }); }); 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 aa8c3c9c16..1bc357e65a 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,7 +19,7 @@ import { Injectable } from '@angular/core'; import { Response, Http, Headers, RequestOptions } from '@angular/http'; import { Observable } from 'rxjs/Rx'; import { AlfrescoSettingsService, AlfrescoAuthenticationService } from 'ng2-alfresco-core'; -import { FormModel, FormFieldModel, TabModel, ContainerModel } from '../components/widgets/core/index'; +import { FormModel, FormFieldModel, TabModel } from '../components/widgets/core/index'; import { WidgetVisibilityModel } from '../models/widget-visibility.model'; import { TaskProcessVariableModel } from '../models/task-process-variable.model'; @@ -43,7 +43,7 @@ export class WidgetVisibilityService { } } - refreshEntityVisibility(element: FormFieldModel | ContainerModel | TabModel) { + refreshEntityVisibility(element: FormFieldModel | TabModel) { element.isVisible = this.evaluateVisibility(element.form, element.visibilityCondition); }