From 0dc45e95af215cc22585d8eae6717c590df62766 Mon Sep 17 00:00:00 2001 From: Mykyta Maliarchuk <84377976+nikita-web-ua@users.noreply.github.com> Date: Fri, 18 Apr 2025 10:38:46 +0200 Subject: [PATCH] [MNT-24715] App with APS does not show display value of dynamic table (#10799) * [MNT-24715] App with APS does not show display value of dynamic table * [MNT-24715] fix linting --- .../components/form-renderer.component.html | 4 ++ .../form-renderer.component.spec.ts | 8 +++ .../mock/form-renderer.component.mock.ts | 67 +++++++++++++++++++ .../dynamic-table.widget.spec.ts | 6 ++ .../dynamic-table/dynamic-table.widget.ts | 3 + 5 files changed, 88 insertions(+) diff --git a/lib/core/src/lib/form/components/form-renderer.component.html b/lib/core/src/lib/form/components/form-renderer.component.html index 054774dd47..217bf1b785 100644 --- a/lib/core/src/lib/form/components/form-renderer.component.html +++ b/lib/core/src/lib/form/components/form-renderer.component.html @@ -62,6 +62,10 @@
+ diff --git a/lib/core/src/lib/form/components/form-renderer.component.spec.ts b/lib/core/src/lib/form/components/form-renderer.component.spec.ts index 5ae5f4cef5..3a3cac09f9 100644 --- a/lib/core/src/lib/form/components/form-renderer.component.spec.ts +++ b/lib/core/src/lib/form/components/form-renderer.component.spec.ts @@ -29,6 +29,7 @@ import { customWidgetFormWithVisibility, dateWidgetFormVisibilityMock, displayBigDecimalWidgetMock, + displayDynamicTableMock, displayTextWidgetFormVisibilityMock, formDateVisibility, formDisplayValueCombinedVisibility, @@ -245,6 +246,13 @@ describe('Form Renderer Component', () => { expectInputElementValueIs(testingUtils, '#TextTwo', 'bbb'); expectElementToBeVisible(testingUtils, 'Displayvalue0g6092'); }); + + it('should render display value of dynamic-table widget', () => { + formRendererComponent.formDefinition = formService.parseForm(displayDynamicTableMock); + fixture.detectChanges(); + + expectElementToBeVisible(testingUtils, 'dynamic-table-id'); + }); }); describe('Number widget', () => { diff --git a/lib/core/src/lib/form/components/mock/form-renderer.component.mock.ts b/lib/core/src/lib/form/components/mock/form-renderer.component.mock.ts index dca48247ac..7928a1b949 100644 --- a/lib/core/src/lib/form/components/mock/form-renderer.component.mock.ts +++ b/lib/core/src/lib/form/components/mock/form-renderer.component.mock.ts @@ -2345,3 +2345,70 @@ export const mockSectionVisibilityForm = { variables: [] } }; + +export const displayDynamicTableMock = { + id: 1, + name: 'Dynamic Table Form', + processDefinitionId: 'TestDynamicTable:0:00000', + processDefinitionName: 'Test Dynamic Table', + processDefinitionKey: 'TestDynamicTable', + taskId: 'fake-id', + taskName: 'Task Name', + taskDefinitionKey: 'sid-fake-id', + tabs: [], + fields: [ + { + fieldType: 'FormFieldRepresentation', + id: 'dynamic-table-id', + name: 'Label1', + type: 'readonly', + value: [ + { + name: 'name', + desc: 'desc' + } + ], + required: false, + readOnly: false, + overrideId: false, + colspan: 1, + placeholder: null, + minLength: 0, + maxLength: 0, + className: null, + params: { + existingColspan: 1, + maxColspan: 1, + field: { + id: 'dynamic-table-id', + name: 'Label1', + type: 'dynamic-table', + columnDefinitions: [ + { + id: 'name', + name: 'Name', + type: 'String' + }, + { + id: 'desc', + name: 'Desc', + type: 'String' + } + ] + } + }, + layout: { + row: -1, + column: -1, + colspan: 2 + }, + sizeX: 2, + sizeY: 2, + row: -1, + col: -1 + } + ], + outcomes: [], + metadata: {}, + variables: [] +}; diff --git a/lib/process-services/src/lib/form/widgets/dynamic-table/dynamic-table.widget.spec.ts b/lib/process-services/src/lib/form/widgets/dynamic-table/dynamic-table.widget.spec.ts index 9d6d0b8b39..a0b8986463 100644 --- a/lib/process-services/src/lib/form/widgets/dynamic-table/dynamic-table.widget.spec.ts +++ b/lib/process-services/src/lib/form/widgets/dynamic-table/dynamic-table.widget.spec.ts @@ -110,6 +110,12 @@ describe('DynamicTableWidgetComponent', () => { expect(row.selected).toBeFalsy(); }); + it('should set readOnly to true when field type is readonly', () => { + widget.field.type = 'readonly'; + widget.ngOnInit(); + expect(widget.readOnly).toBeTrue(); + }); + it('should reset selected row', () => { const row = { selected: false } as DynamicTableRow; widget.content.rows.push(row); diff --git a/lib/process-services/src/lib/form/widgets/dynamic-table/dynamic-table.widget.ts b/lib/process-services/src/lib/form/widgets/dynamic-table/dynamic-table.widget.ts index 37f9b56975..0669bd9657 100644 --- a/lib/process-services/src/lib/form/widgets/dynamic-table/dynamic-table.widget.ts +++ b/lib/process-services/src/lib/form/widgets/dynamic-table/dynamic-table.widget.ts @@ -69,6 +69,9 @@ export class DynamicTableWidgetComponent extends WidgetComponent implements OnIn if (this.field) { this.content = new DynamicTableModel(this.field, this.formService); this.visibilityService.refreshVisibility(this.field.form); + if (this.field.type === 'readonly') { + this.readOnly = true; + } } }