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 6e0b3b88ad..955bd81965 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
@@ -18,6 +18,7 @@
import { Component, Input, AfterViewInit } from '@angular/core';
import { ContainerModel } from './../widget.model';
+import { MATERIAL_DESIGN_DIRECTIVES } from 'ng2-alfresco-core';
import { TextWidget } from './../text/text.widget';
import { NumberWidget } from './../number/number.widget';
import { CheckboxWidget } from './../checkbox/checkbox.widget';
@@ -33,6 +34,7 @@ declare var componentHandler;
templateUrl: './container.widget.html',
styleUrls: ['./container.widget.css'],
directives: [
+ MATERIAL_DESIGN_DIRECTIVES,
TextWidget,
NumberWidget,
CheckboxWidget,
@@ -45,6 +47,12 @@ export class ContainerWidget implements AfterViewInit {
@Input()
content: ContainerModel;
+ onExpanderClicked() {
+ if (this.content && this.content.isCollapsible()) {
+ this.content.isExpanded = !this.content.isExpanded;
+ }
+ }
+
ngAfterViewInit() {
// workaround for MDL issues with dynamic components
if (componentHandler) {
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/widget.model.ts b/ng2-components/ng2-activiti-form/src/components/widgets/widget.model.ts
index d1c85baa7a..c9635be834 100644
--- a/ng2-components/ng2-activiti-form/src/components/widgets/widget.model.ts
+++ b/ng2-components/ng2-activiti-form/src/components/widgets/widget.model.ts
@@ -159,6 +159,7 @@ export class ContainerColumnModel {
}
}
+// TODO: inherit FormFieldModel
export class ContainerModel extends FormWidgetModel {
fieldType: string;
@@ -167,6 +168,7 @@ export class ContainerModel extends FormWidgetModel {
type: string;
tab: string;
numberOfColumns: number = 1;
+ params: FormFieldMetadata = {};
columns: ContainerColumnModel[] = [];
@@ -174,6 +176,28 @@ export class ContainerModel extends FormWidgetModel {
return this.type == FormFieldTypes.GROUP;
}
+ isExpanded: boolean = true;
+
+ isCollapsible(): boolean {
+ let allowCollapse = false;
+
+ if (this.isGroup() && this.params['allowCollapse']) {
+ allowCollapse = this.params['allowCollapse'];
+ }
+
+ return allowCollapse;
+ }
+
+ isCollapsedByDefault(): boolean {
+ let collapseByDefault = false;
+
+ if (this.isCollapsible() && this.params['collapseByDefault']) {
+ collapseByDefault = this.params['collapseByDefault'];
+ }
+
+ return collapseByDefault;
+ }
+
constructor(form: FormModel, json?: any) {
super(form, json);
@@ -184,6 +208,7 @@ export class ContainerModel extends FormWidgetModel {
this.type = json.type;
this.tab = json.tab;
this.numberOfColumns = json.numberOfColumns;
+ this.params = json.params || {};
let columnSize: number = 12;
if (this.numberOfColumns > 1) {
@@ -201,6 +226,8 @@ export class ContainerModel extends FormWidgetModel {
let col = this.columns[parseInt(key, 10) - 1];
col.fields = fields;
});
+
+ this.isExpanded = !this.isCollapsedByDefault();
}
}
}