diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts index 796c2b02a0..4d60d71c21 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts @@ -322,7 +322,9 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo size: 'lg' }); const modalComp = this.modalRef.componentInstance; - modalComp.query = this.model.value.value; + if (hasValue(this.model.value)) { + modalComp.query = this.model.value.value; + } modalComp.repeatable = this.model.repeatable; modalComp.listId = this.listId; modalComp.relationshipOptions = this.model.relationship; diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-concat.model.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-concat.model.ts index fa6ad2efef..284486e85f 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-concat.model.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-concat.model.ts @@ -37,7 +37,6 @@ export class DynamicConcatModel extends DynamicFormGroupModel { constructor(config: DynamicConcatModelConfig, layout?: DynamicFormControlLayout) { super(config, layout); - console.log(config); this.separator = config.separator + ' '; this.relationship = config.relationship; this.repeatable = config.repeatable; @@ -60,7 +59,7 @@ export class DynamicConcatModel extends DynamicFormGroupModel { } else if (isNotEmpty(secondValue) && isNotEmpty(secondValue.value)) { return Object.assign(new FormFieldMetadataValueObject(), secondValue); } else { - return new FormFieldMetadataValueObject(); + return null; } } 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 a3ffbf4a86..8bc6292b4a 100644 --- a/src/app/shared/form/builder/form-builder.service.spec.ts +++ b/src/app/shared/form/builder/form-builder.service.spec.ts @@ -435,12 +435,13 @@ describe('FormBuilderService test suite', () => { expect((formModel[2] as DynamicRowGroupModel).get(0) instanceof DynamicTypeaheadModel).toBe(true); }); - it('should return form\'s fields value from form model', () => { + fit('should return form\'s fields value from form model', () => { const formModel = service.modelFromConfiguration(submissionId, testFormConfiguration, 'testScopeUUID'); - let value = {} as any; + let value = {} as any; + console.log(service.getValueFromModel(formModel)); expect(service.getValueFromModel(formModel)).toEqual(value); - + console.log('first test'); ((formModel[0] as DynamicRowGroupModel).get(1) as DsDynamicInputModel).valueUpdates.next('test'); value = { diff --git a/src/app/shared/form/builder/form-builder.service.ts b/src/app/shared/form/builder/form-builder.service.ts index 1b1ff81423..8631c7dc3d 100644 --- a/src/app/shared/form/builder/form-builder.service.ts +++ b/src/app/shared/form/builder/form-builder.service.ts @@ -124,7 +124,6 @@ export class FormBuilderService extends DynamicFormService { const iterateControlModels = (findGroupModel: DynamicFormControlModel[], controlModelIndex: number = 0): void => { let iterateResult = Object.create({}); - // Iterate over all group's controls for (const controlModel of findGroupModel) { @@ -140,6 +139,7 @@ export class FormBuilderService extends DynamicFormService { if (this.isRowArrayGroup(controlModel)) { for (const arrayItemModel of (controlModel as DynamicRowArrayModel).groups) { + iterateResult = mergeWith(iterateResult, iterateControlModels(arrayItemModel.group, arrayItemModel.index), customizer); } continue; @@ -147,6 +147,8 @@ export class FormBuilderService extends DynamicFormService { if (this.isArrayGroup(controlModel)) { iterateResult[controlModel.name] = []; + console.log((controlModel as DynamicFormArrayModel).groups); + for (const arrayItemModel of (controlModel as DynamicFormArrayModel).groups) { iterateResult[controlModel.name].push(iterateControlModels(arrayItemModel.group, arrayItemModel.index)); } @@ -197,7 +199,6 @@ export class FormBuilderService extends DynamicFormService { return iterateResult; }; - result = iterateControlModels(groupModel); return result;