From d88352f51378cb8705e24cfa3fcdb4db6a9278a8 Mon Sep 17 00:00:00 2001 From: Yura Bondarenko Date: Wed, 7 Sep 2022 13:49:11 +0200 Subject: [PATCH] 94031: Fix findById for concat fields As far as I can tell the suffix is never used with a numeric part, causing this branch to always miss concat group fields --- src/app/shared/form/builder/form-builder.service.spec.ts | 9 +++++++++ src/app/shared/form/builder/form-builder.service.ts | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/app/shared/form/builder/form-builder.service.spec.ts b/src/app/shared/form/builder/form-builder.service.spec.ts index ac9c2b652b..b68963e5ad 100644 --- a/src/app/shared/form/builder/form-builder.service.spec.ts +++ b/src/app/shared/form/builder/form-builder.service.spec.ts @@ -325,6 +325,14 @@ describe('FormBuilderService test suite', () => { typeBindRelations: [{ match: 'VISIBLE', operator: 'OR', when: [{id: 'dc.type', value: 'Book' }]}] }, ), + + new DynamicConcatModel({ + id: 'testConcatGroup_CONCAT_GROUP', + group: [ + new DynamicInputModel({ id: 'testConcatGroup_CONCAT_FIRST_INPUT' }), + new DynamicInputModel({ id: 'testConcatGroup_CONCAT_SECOND_INPUT' }), + ] + } as any) ]; testFormConfiguration = { @@ -463,6 +471,7 @@ describe('FormBuilderService test suite', () => { expect(service.findById('testTimePicker', testModel) instanceof DynamicTimePickerModel).toBe(true); expect(service.findById('testRating', testModel) instanceof DynamicRatingModel).toBe(true); expect(service.findById('testColorPicker', testModel) instanceof DynamicColorPickerModel).toBe(true); + expect(service.findById('testConcatGroup', testModel) instanceof DynamicConcatModel).toBe(true); }); it('should find a nested dynamic form control model by id', () => { diff --git a/src/app/shared/form/builder/form-builder.service.ts b/src/app/shared/form/builder/form-builder.service.ts index 93a398a59d..a281942bc7 100644 --- a/src/app/shared/form/builder/form-builder.service.ts +++ b/src/app/shared/form/builder/form-builder.service.ts @@ -116,8 +116,8 @@ export class FormBuilderService extends DynamicFormService { } if (this.isConcatGroup(controlModel)) { - if (controlModel.id.match(new RegExp(findId + CONCAT_GROUP_SUFFIX + `_\\d+$`))) { - result = (controlModel as DynamicConcatModel).group[0]; + if (controlModel.id.match(new RegExp(findId + CONCAT_GROUP_SUFFIX))) { + result = (controlModel as DynamicConcatModel); break; } }