From 952df8d81c7a42c8cbfd14115dca97097bf55b15 Mon Sep 17 00:00:00 2001 From: Maurizio Vitale Date: Thu, 30 Mar 2017 18:14:22 +0100 Subject: [PATCH] Activiti form - Dropdown display label in complete form (#1777) * Dropdown - retrieve the label instead of the id * Add unit test * Use find instead of filter --- .../widgets/core/form-field.model.spec.ts | 13 +++++++++++++ .../src/components/widgets/core/form-field.model.ts | 5 +++++ .../widgets/display-value/display-value.widget.ts | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.spec.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.spec.ts index ffa3a1e156..1ae3a0c119 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.spec.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.spec.ts @@ -121,6 +121,19 @@ describe('FormFieldModel', () => { expect(field.value).toBe('deferred'); }); + it('should return the label of selected dropdown value ', () => { + let field = new FormFieldModel(new FormModel(), { + type: FormFieldTypes.DROPDOWN, + options: [ + {id: 'fake-option-1', name: 'fake label 1'}, + {id: 'fake-option-2', name: 'fake label 2'}, + {id: 'fake-option-3', name: 'fake label 3'} + ], + value: 'fake-option-2' + }); + expect(field.getOptionName()).toBe('fake label 2'); + }); + it('should parse and resolve radio button value', () => { let field = new FormFieldModel(new FormModel(), { type: FormFieldTypes.RADIO_BUTTONS, 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 85ba75b16a..cba2e95728 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 @@ -340,4 +340,9 @@ export class FormFieldModel extends FormWidgetModel { return false; } } + + getOptionName(): string { + let option: FormFieldOption = this.options.find(opt => opt.id === this.value); + return option ? option.name : null; + } } diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/display-value/display-value.widget.ts b/ng2-components/ng2-activiti-form/src/components/widgets/display-value/display-value.widget.ts index a7aaf29c7b..12fcd4f040 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/display-value/display-value.widget.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/display-value/display-value.widget.ts @@ -103,7 +103,7 @@ export class DisplayValueWidget extends WidgetComponent implements OnInit { if (this.field.restUrl) { this.loadRestFieldValue(); } else { - this.value = this.field.value; + this.value = this.field.getOptionName(); } break; case FormFieldTypes.RADIO_BUTTONS: