From 1f766f3ade5adc5872177454b389211c54cdddb7 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Thu, 7 Sep 2017 15:05:46 +0100 Subject: [PATCH] new "document" widget (#2307) --- .../widgets/content/content.widget.html | 2 +- .../widgets/content/content.widget.scss | 4 -- .../widgets/core/form-field.model.ts | 15 ++++-- .../widgets/document/document.widget.html | 5 ++ .../widgets/document/document.widget.ts | 50 +++++++++++++++++++ .../src/components/widgets/index.ts | 5 +- .../src/services/form-rendering.service.ts | 4 +- 7 files changed, 74 insertions(+), 11 deletions(-) create mode 100644 ng2-components/ng2-activiti-form/src/components/widgets/document/document.widget.html create mode 100644 ng2-components/ng2-activiti-form/src/components/widgets/document/document.widget.ts diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/content/content.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/content/content.widget.html index 02de2d5774..991535b82f 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/content/content.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/content/content.widget.html @@ -1,4 +1,4 @@ - +
{{content.name}} diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/content/content.widget.scss b/ng2-components/ng2-activiti-form/src/components/widgets/content/content.widget.scss index 5ce2542127..f13384611d 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/content/content.widget.scss +++ b/ng2-components/ng2-activiti-form/src/components/widgets/content/content.widget.scss @@ -1,8 +1,4 @@ .adf { - &-content-container { - - } - &-img-upload-widget { width: 100%; height: 100%; 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 f455dbb46d..7ea6452b5d 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 @@ -168,7 +168,10 @@ export class FormFieldModel extends FormWidgetModel { if (FormFieldTypes.isReadOnlyType(json.type)) { if (json.params && json.params.field && json.params.field.responseVariable) { - this.value = this.getVariablesValue(json.params.field.name, form); + const value = this.getVariablesValue(json.params.field.name, form); + if (value) { + this.value = value; + } } } @@ -189,11 +192,15 @@ export class FormFieldModel extends FormWidgetModel { return currentVariable.name === variableName; }); - if (variable.type === 'boolean') { - return JSON.parse(variable.value); + if (variable) { + if (variable.type === 'boolean') { + return JSON.parse(variable.value); + } + + return variable.value; } - return variable.value; + return null; } private containerFactory(json: any, form: FormModel): void { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/document/document.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/document/document.widget.html new file mode 100644 index 0000000000..62fd7bdbf9 --- /dev/null +++ b/ng2-components/ng2-activiti-form/src/components/widgets/document/document.widget.html @@ -0,0 +1,5 @@ +
+ + + +
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/document/document.widget.ts b/ng2-components/ng2-activiti-form/src/components/widgets/document/document.widget.ts new file mode 100644 index 0000000000..ec5593d27b --- /dev/null +++ b/ng2-components/ng2-activiti-form/src/components/widgets/document/document.widget.ts @@ -0,0 +1,50 @@ +/*! + * @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, OnInit, ViewEncapsulation } from '@angular/core'; +import { FormService } from './../../../services/form.service'; +import { baseHost , WidgetComponent } from './../widget.component'; + +@Component({ + selector: 'adf-form-document-widget', + templateUrl: 'document.widget.html', + host: baseHost, + encapsulation: ViewEncapsulation.None +}) +export class DocumentWidgetComponent extends WidgetComponent implements OnInit { + + fileId: string = null; + hasFile: boolean = false; + + constructor(public formService: FormService) { + super(formService); + } + + ngOnInit() { + if (this.field) { + const file = this.field.value; + + if (file) { + this.fileId = file.id; + this.hasFile = true; + } else { + this.fileId = null; + this.hasFile = false; + } + } + } +} diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/index.ts b/ng2-components/ng2-activiti-form/src/components/widgets/index.ts index 429da0ad6a..bb814ab8c9 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/index.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/index.ts @@ -24,6 +24,7 @@ import { AttachWidgetComponent } from './attach/attach.widget'; import { CheckboxWidgetComponent } from './checkbox/checkbox.widget'; import { DateWidgetComponent } from './date/date.widget'; import { DisplayTextWidgetComponentComponent } from './display-text/display-text.widget'; +import { DocumentWidgetComponent } from './document/document.widget'; import { DropdownWidgetComponent } from './dropdown/dropdown.widget'; import { DynamicTableWidgetComponent } from './dynamic-table/dynamic-table.widget'; import { BooleanEditorComponent } from './dynamic-table/editors/boolean/boolean.editor'; @@ -70,6 +71,7 @@ export * from './date/date.widget'; export * from './amount/amount.widget'; export * from './dynamic-table/dynamic-table.widget'; export * from './error/error.component'; +export { DocumentWidgetComponent } from './document/document.widget'; // editors (dynamic table) export * from './dynamic-table/editors/row.editor'; @@ -104,7 +106,8 @@ export const WIDGET_DIRECTIVES: any[] = [ BooleanEditorComponent, TextEditorComponent, RowEditorComponent, - ErrorWidgetComponent + ErrorWidgetComponent, + DocumentWidgetComponent ]; export const MASK_DIRECTIVE: any[] = [ diff --git a/ng2-components/ng2-activiti-form/src/services/form-rendering.service.ts b/ng2-components/ng2-activiti-form/src/services/form-rendering.service.ts index a8cc0d80d6..9d1e7a88e0 100644 --- a/ng2-components/ng2-activiti-form/src/services/form-rendering.service.ts +++ b/ng2-components/ng2-activiti-form/src/services/form-rendering.service.ts @@ -24,6 +24,7 @@ import { ContainerWidgetComponent, DateWidgetComponent, DisplayTextWidgetComponentComponent, + DocumentWidgetComponent, DropdownWidgetComponent, DynamicTableWidgetComponent, FormFieldModel, @@ -58,7 +59,8 @@ export class FormRenderingService { 'functional-group': DefaultTypeResolver.fromType(FunctionalGroupWidgetComponent), 'dynamic-table': DefaultTypeResolver.fromType(DynamicTableWidgetComponent), 'container': DefaultTypeResolver.fromType(ContainerWidgetComponent), - 'group': DefaultTypeResolver.fromType(ContainerWidgetComponent) + 'group': DefaultTypeResolver.fromType(ContainerWidgetComponent), + 'document': DefaultTypeResolver.fromType(DocumentWidgetComponent) }; constructor() {