From fed426e64bd9dd02325cd7758689515903aebb07 Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Tue, 22 Sep 2020 17:34:12 +0300 Subject: [PATCH] Fixed issue with visible rules when using multiple world list --- .../form-field/form-field.component.ts | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts index df86a9ae9..fb6e9414a 100644 --- a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts +++ b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts @@ -96,12 +96,17 @@ export class FormFieldComponent extends BaseComponent implements OnInit { if (this.form.get('viewStyle').value.renderStyle === DatasetProfileFieldViewStyle.ComboBox && this.form.get('data').value.type === DatasetProfileComboBoxType.WordList) { if (this.form.get('data').value.multiList) { const originalValue = this.form.get('value').value; - let values = (this.form.get('value').value).slice(1, -1).split(', '); - if (!originalValue.startsWith('[') && !originalValue.endsWith(']')) { - values = undefined; - values = [originalValue]; + if (originalValue !== null && typeof originalValue === 'string') { + let values = (this.form.get('value').value).slice(1, -1).split(', '); + if (!originalValue.startsWith('[') && !originalValue.endsWith(']')) { + values = undefined; + values = [originalValue]; + } + this.form.patchValue({ 'value': values }); + values.forEach(element => { + this.visibilityRulesService.updateValueAndVisibility(this.form.get('id').value, element); + }); } - this.form.patchValue({ 'value': values }); } } @@ -233,7 +238,14 @@ export class FormFieldComponent extends BaseComponent implements OnInit { this.form.get('value').valueChanges .pipe(takeUntil(this._destroyed)) .subscribe(item => { - this.visibilityRulesService.updateValueAndVisibility(this.form.get('id').value, item); + if (this.form.get('viewStyle').value.renderStyle === DatasetProfileFieldViewStyle.ComboBox && this.form.get('data').value.type === DatasetProfileComboBoxType.WordList && this.form.get('data').value.multiList) { + item.forEach(element => { + this.visibilityRulesService.updateValueAndVisibility(this.form.get('id').value, element); + }); + + } else { + this.visibilityRulesService.updateValueAndVisibility(this.form.get('id').value, item); + } }); }