From 9f9187c3da22d7d20f367b7be9de0e96f2129af3 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 15 Aug 2016 12:25:55 +0100 Subject: [PATCH] #533 allow explicitly making entire form readonly --- .../activiti/activiti-demo.component.ts | 4 ++-- .../widgets/checkbox/checkbox.widget.html | 6 ++++- .../multiline-text/multiline-text.widget.html | 8 +++++-- .../widgets/number/number.widget.html | 8 +++++-- .../radio-buttons/radio-buttons.widget.html | 3 ++- .../components/widgets/text/text.widget.html | 6 ++++- .../src/components/widgets/widget.model.ts | 23 ++++++++++++++----- 7 files changed, 43 insertions(+), 15 deletions(-) diff --git a/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts b/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts index f14d1565ad..9775ac02b8 100644 --- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts +++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { Component, OnInit, AfterViewChecked, ViewChild } from '@angular/core'; +import { Component, AfterViewChecked, ViewChild } from '@angular/core'; import { ALFRESCO_TASKLIST_DIRECTIVES } from 'ng2-activiti-tasklist'; import { ActivitiForm } from 'ng2-activiti-form'; @@ -29,7 +29,7 @@ declare var componentHandler; styleUrls: ['./activiti-demo.component.css'], directives: [ALFRESCO_TASKLIST_DIRECTIVES, ActivitiForm] }) -export class ActivitiDemoComponent implements OnInit, AfterViewChecked { +export class ActivitiDemoComponent implements AfterViewChecked { currentChoice: string = 'task-list'; 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 cee9bd4148..a417d59cb3 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 @@ -1,4 +1,8 @@ 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 21e1310d50..d33c9d518f 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 @@ -1,6 +1,10 @@
-
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 879ad88dd7..37b0be6875 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 @@ -1,6 +1,10 @@
- + Input is not a number!
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/radio-buttons/radio-buttons.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/radio-buttons/radio-buttons.widget.html index cc7fbd8cb2..a832a925f2 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/radio-buttons/radio-buttons.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/radio-buttons/radio-buttons.widget.html @@ -2,11 +2,12 @@
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 65d13b4eeb..5d6d2e5901 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 @@ -1,4 +1,8 @@
- +
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 778b9fa584..180f96cfdb 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 @@ -32,6 +32,8 @@ export class FormFieldTypes { static READONLY_TEXT: string = 'readonly-text'; static READONLY_TYPES: string[] = [ + FormFieldTypes.HYPERLINK, + FormFieldTypes.DISPLAY_VALUE, FormFieldTypes.READONLY_TEXT ]; } @@ -63,13 +65,13 @@ export interface FormFieldOption { export class FormFieldModel extends FormWidgetModel { private _value: string; + private _readOnly: boolean = false; fieldType: string; id: string; name: string; type: string; required: boolean; - readOnly: boolean; overrideId: boolean; tab: string; colspan: number = 1; @@ -94,6 +96,13 @@ export class FormFieldModel extends FormWidgetModel { this.updateForm(); } + get readOnly(): boolean { + if (this.form && this.form.readOnly) { + return true; + } + return this._readOnly; + } + constructor(form: FormModel, json?: any) { super(form, json); @@ -103,7 +112,7 @@ export class FormFieldModel extends FormWidgetModel { this.name = json.name; this.type = json.type; this.required = json.required; - this.readOnly = json.readOnly; + this._readOnly = json.readOnly; this.overrideId = json.overrideId; this.tab = json.tab; this.restUrl = json.restUrl; @@ -124,6 +133,10 @@ export class FormFieldModel extends FormWidgetModel { } } + static isReadOnlyType(type: string) { + return FormFieldTypes.READONLY_TYPES.indexOf(type) > -1; + } + private parseValue(json: any): any { let value = json.value; @@ -187,10 +200,6 @@ export class FormFieldModel extends FormWidgetModel { } } } - - static isReadOnlyType(type: string) { - return FormFieldTypes.READONLY_TYPES.indexOf(type) > -1; - } } export class ContainerColumnModel { @@ -352,6 +361,7 @@ export class FormModel { return this._taskName; } + readOnly: boolean = false; tabs: TabModel[] = []; fields: ContainerModel[] = []; outcomes: FormOutcomeModel[] = []; @@ -377,6 +387,7 @@ export class FormModel { } constructor(json?: any, data?: any, saveOption?: any, readOnly: boolean = false) { + this.readOnly = readOnly; if (json) { this._json = json;