diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/container/container.widget.html b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/container/container.widget.html index 4f57fbcea2..4ebb2896ee 100644 --- a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/container/container.widget.html +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/container/container.widget.html @@ -1,17 +1,24 @@
-
-
-
- -
-
- -
-
- -
-
- UNKNOWN WIDGET TYPE: {{field.type}} +
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ UNKNOWN WIDGET TYPE: {{field.type}} +
+
diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/container/container.widget.ts b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/container/container.widget.ts index bdb98a3e65..15f44a2a01 100644 --- a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/container/container.widget.ts +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/container/container.widget.ts @@ -16,10 +16,12 @@ */ import { Component, Input, AfterViewInit } from '@angular/core'; +import { ContainerModel } from './../widget.model'; + import { TextWidget } from './../text/text.widget'; import { NumberWidget } from './../number/number.widget'; -import { ContainerModel } from './../widget.model'; import { CheckboxWidget } from './../checkbox/checkbox.widget'; +import { MultilineTextWidget } from './../multiline-text/multiline-text.widget'; declare let __moduleName: string; declare var componentHandler; @@ -28,7 +30,7 @@ declare var componentHandler; moduleId: __moduleName, selector: 'container-widget', templateUrl: './container.widget.html', - directives: [TextWidget, NumberWidget, CheckboxWidget] + directives: [TextWidget, NumberWidget, CheckboxWidget, MultilineTextWidget] }) export class ContainerWidget implements AfterViewInit { diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/index.ts b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/index.ts index 7ac7731dba..a5415e935a 100644 --- a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/index.ts +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/index.ts @@ -20,6 +20,7 @@ import { ContainerWidget } from './container/container.widget'; import { TextWidget } from './text/text.widget'; import { NumberWidget } from './number/number.widget'; import { CheckboxWidget } from './checkbox/checkbox.widget'; +import { MultilineTextWidget } from './multiline-text/multiline-text.widget'; export * from './widget.model'; @@ -28,11 +29,13 @@ export * from './container/container.widget'; export * from './text/text.widget'; export * from './number/number.widget'; export * from './checkbox/checkbox.widget'; +export * from './multiline-text/multiline-text.widget'; export const WIDGET_DIRECTIVES: [any] = [ TabsWidget, ContainerWidget, TextWidget, NumberWidget, - CheckboxWidget + CheckboxWidget, + MultilineTextWidget ]; diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.css b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.css new file mode 100644 index 0000000000..9c7ec9fb37 --- /dev/null +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.css @@ -0,0 +1,3 @@ +:host .multiline-text-widget { + width: 100%; +} diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html new file mode 100644 index 0000000000..660e19edf9 --- /dev/null +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html @@ -0,0 +1,4 @@ +
+ + +
diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.ts b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.ts new file mode 100644 index 0000000000..f038752ff6 --- /dev/null +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.ts @@ -0,0 +1,46 @@ +/*! + * @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. + */ + +import { Component, Input, AfterViewInit } from '@angular/core'; +import { FormFieldModel } from './../widget.model'; + +declare let __moduleName: string; +declare var componentHandler; + +@Component({ + moduleId: __moduleName, + selector: 'multiline-text-widget', + templateUrl: './multiline-text.widget.html', + styleUrls: ['./multiline-text.widget.css'] +}) +export class MultilineTextWidget implements AfterViewInit { + + @Input() + field: FormFieldModel; + + hasField() { + return this.field ? true : false; + } + + ngAfterViewInit() { + // workaround for MDL issues with dynamic components + if (componentHandler) { + componentHandler.upgradeAllRegistered(); + } + } + +} diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/widget.model.ts b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/widget.model.ts index 2f57b500fc..4d7174e135 100644 --- a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/widget.model.ts +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/widget.model.ts @@ -61,6 +61,16 @@ export class FormFieldModel extends FormWidgetModel { } } +export class ContainerColumnModel { + + size: number = 12; + fields: FormFieldModel[] = []; + + hasFields(): boolean { + return this.fields && this.fields.length > 0; + } +} + export class ContainerModel extends FormWidgetModel { fieldType: string; @@ -70,7 +80,7 @@ export class ContainerModel extends FormWidgetModel { tab: string; numberOfColumns: number = 1; - fields: FormFieldModel[] = []; + columns: ContainerColumnModel[] = []; constructor(form: FormModel, json?: any) { super(form, json); @@ -88,17 +98,16 @@ export class ContainerModel extends FormWidgetModel { columnSize = 12 / this.numberOfColumns; } - let fields = []; + for (let i = 0; i < this.numberOfColumns; i++) { + let col = new ContainerColumnModel(); + col.size = columnSize; + this.columns.push(col); + } Object.keys(json.fields).map(key => { - fields = fields.concat(json.fields[key] || []); - }); - - // this.fields = fields.map(f => new FormFieldModel(form, f)); - this.fields = fields.map(f => { - let field = new FormFieldModel(form, f); - field.metadata['size'] = columnSize; - return field; + let fields = (json.fields[key] || []).map(f => new FormFieldModel(form, f)); + let col = this.columns[parseInt(key) - 1]; + col.fields = fields; }); } }