From b045044d12562d5fee71d1544b3dc509c5ec2252 Mon Sep 17 00:00:00 2001 From: Vito Date: Thu, 15 Jun 2017 05:04:36 -0700 Subject: [PATCH] [ADF-494] fixed readonly rendering for forms (#1972) * [ADF-494] improved disabling for form * [ADF-494] fixed readonly rendering for forms --- .../widgets/attach/attach.widget.html | 4 +- .../widgets/dropdown/dropdown.widget.html | 1 + .../widgets/dropdown/dropdown.widget.spec.ts | 18 ++++++ .../components/widgets/text/text.widget.html | 2 +- .../widgets/text/text.widget.spec.ts | 11 ++++ .../widgets/upload/upload.widget.html | 1 + .../widgets/upload/upload.widget.spec.ts | 63 ++++++++++++++++++- .../activiti-task-details.component.ts | 16 ++++- 8 files changed, 108 insertions(+), 8 deletions(-) diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/attach/attach.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/attach/attach.widget.html index 6dc2eb88b5..470801f5d1 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/attach/attach.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/attach/attach.widget.html @@ -2,11 +2,11 @@
{{getLinkedFileName()}} - - +
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html index db53e8d3e0..e79f2cb6bb 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html @@ -4,6 +4,7 @@ diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.spec.ts b/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.spec.ts index 1930b6abb3..5827325ea9 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.spec.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.spec.ts @@ -253,6 +253,24 @@ describe('DropdownWidget', () => { expect(dropDownElement.selectedOptions[0].textContent).toBe('Choose one...'); }); })); + + it('should be disabled when the field is readonly', async(() => { + dropDownWidget.field = new FormFieldModel(new FormModel({ processDefinitionId: 'fake-process-id' }), { + id: 'dropdown-id', + name: 'date-name', + type: 'dropdown', + readOnly: 'true', + restUrl: 'fake-rest-url' + }); + + fixture.detectChanges(); + fixture.whenStable() + .then(() => { + let dropDownElement: HTMLSelectElement = element.querySelector('#dropdown-id'); + expect(dropDownElement).not.toBeNull(); + expect(dropDownElement.disabled).toBeTruthy(); + }); + })); }); }); }); 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 5efc1d0c0b..0e7dec7fa9 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 @@ -8,7 +8,7 @@ [value]="field.value" [(ngModel)]="field.value" (ngModelChange)="onFieldChanged(field)" - [disabled]="field.readOnly" + [attr.disabled]="field.readOnly ? true : null" [textMask]="{mask: mask, isReversed: isMaskReversed}" placeholder="{{field.placeholder}}"> {{field.validationSummary}} diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.spec.ts b/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.spec.ts index 16bf3f8318..e0b0ff2381 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.spec.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.spec.ts @@ -92,6 +92,17 @@ describe('TextWidget', () => { expect(textWidget.field.value).toBe('TEXT'); }); })); + + it('should be disabled on readonly forms', async(() => { + textWidget.field.form.readOnly = true; + + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(inputElement).toBeDefined(); + expect(inputElement).not.toBeNull(); + expect(inputElement.disabled).toBeTruthy(); + }); + })); }); describe('and mask is configured on text element', () => { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html index 172e9b0d57..c95723bd76 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html @@ -8,6 +8,7 @@ #file type="file" [attr.id]="field.id" + [disabled]="field.readOnly" class="upload-widget__file" (change)="onFileChanged($event)">