diff --git a/client/src/app/admin/instance/dataset/components/attribute/criteria/option-list.component.ts b/client/src/app/admin/instance/dataset/components/attribute/criteria/option-list.component.ts index 0ee54e7b1d47e7de93b63658f11afc3168804f38..371a621d015e7181f7a4eafa9a1d0aa386c61280 100644 --- a/client/src/app/admin/instance/dataset/components/attribute/criteria/option-list.component.ts +++ b/client/src/app/admin/instance/dataset/components/attribute/criteria/option-list.component.ts @@ -27,7 +27,7 @@ export class OptionListComponent implements OnInit { newOptionFormGroup: UntypedFormGroup; ngOnInit() { - if (this.optionList && this.optionList.length > 0) { + if (this.form.controls.length < 1 && this.optionList && this.optionList.length > 0) { for (const option of this.optionList) { const optionForm = this.buildFormGroup(); optionForm.patchValue(option); diff --git a/client/src/app/admin/instance/dataset/components/attribute/criteria/tr-criteria.component.html b/client/src/app/admin/instance/dataset/components/attribute/criteria/tr-criteria.component.html index 1eb4f0a07b2dd5a5fbe5d642be66a986d1f048cb..0efe6a994104e24a83ba03483b5baf3f083a8f8c 100644 --- a/client/src/app/admin/instance/dataset/components/attribute/criteria/tr-criteria.component.html +++ b/client/src/app/admin/instance/dataset/components/attribute/criteria/tr-criteria.component.html @@ -25,7 +25,8 @@ </select> </td> <td> - <select *ngIf="form.controls.search_type.value + <select *ngIf="form.controls.id_criteria_family.value + && form.controls.search_type.value && form.controls.search_type.value != 'select-multiple' && form.controls.search_type.value != 'checkbox' && form.controls.search_type.value != 'between' @@ -42,7 +43,9 @@ </select> </td> <td> - <input *ngIf="form.controls.search_type.value + <input *ngIf="form.controls.id_criteria_family.value + && form.controls.operator.value + && form.controls.search_type.value && form.controls.search_type.value != 'select-multiple' && form.controls.search_type.value != 'checkbox' && form.controls.search_type.value != 'between' @@ -53,11 +56,12 @@ type="checkbox" class="form-control" name="dynamic_operator" formControlName="dynamic_operator"> </td> <td> - <app-option-list *ngIf="form.controls.operator.value + <app-option-list *ngIf="form.controls.id_criteria_family.value + && form.controls.operator.value && (form.controls.search_type.value == 'datalist' || form.controls.search_type.value == 'radio' || form.controls.search_type.value == 'checkbox' - || form.controls.search_type.value == 'select' ) + || form.controls.search_type.value == 'select') || form.controls.search_type.value == 'select-multiple'" [form]="optionsFormArray" [optionList]="attribute.options" @@ -66,20 +70,22 @@ [attributeDistinctListIsLoaded]="attributeDistinctListIsLoaded" (loadAttributeDistinctList)="loadAttributeDistinctList.emit()"> </app-option-list> - <input *ngIf="(form.controls.operator.value && form.controls.search_type.value == 'field') - || (form.controls.operator.value && form.controls.search_type.value == 'date') - || (form.controls.operator.value && form.controls.search_type.value == 'time') - || (form.controls.operator.value && form.controls.search_type.value == 'date-time') - || form.controls.search_type.value == 'between' - || form.controls.search_type.value == 'between-date' - || form.controls.search_type.value == 'list'" + <input *ngIf="form.controls.id_criteria_family.value + && ((form.controls.operator.value && form.controls.search_type.value == 'field') + || (form.controls.operator.value && form.controls.search_type.value == 'date') + || (form.controls.operator.value && form.controls.search_type.value == 'time') + || (form.controls.operator.value && form.controls.search_type.value == 'date-time') + || form.controls.search_type.value == 'between' + || form.controls.search_type.value == 'between-date' + || form.controls.search_type.value == 'list')" type="text" class="form-control" name="min" [placeholder]="getMinValuePlaceholder(form.controls.search_type.value)" formControlName="min"> - <input *ngIf="form.controls.search_type.value == 'between' - || form.controls.search_type.value == 'between-date'" + <input *ngIf="form.controls.id_criteria_family.value + && (form.controls.search_type.value == 'between' + || form.controls.search_type.value == 'between-date')" type="text" class="form-control" name="max" @@ -87,29 +93,33 @@ formControlName="max"> </td> <td> - <input *ngIf="(form.controls.operator.value && form.controls.search_type.value == 'field') - || (form.controls.operator.value && form.controls.search_type.value == 'date') - || (form.controls.operator.value && form.controls.search_type.value == 'time') - || (form.controls.operator.value && form.controls.search_type.value == 'date-time') - || form.controls.search_type.value == 'between' - || form.controls.search_type.value == 'between-date' - || form.controls.search_type.value == 'list'" + <input *ngIf="form.controls.id_criteria_family.value + && ((form.controls.operator.value && form.controls.search_type.value == 'field') + || (form.controls.operator.value && form.controls.search_type.value == 'date') + || (form.controls.operator.value && form.controls.search_type.value == 'time') + || (form.controls.operator.value && form.controls.search_type.value == 'date-time') + || form.controls.search_type.value == 'between' + || form.controls.search_type.value == 'between-date' + || form.controls.search_type.value == 'list')" type="text" class="form-control" name="placeholder_min" [placeholder]="getMinValuePlaceholder(form.controls.search_type.value)" formControlName="placeholder_min"> - <input *ngIf="form.controls.search_type.value == 'between' || form.controls.search_type.value == 'between-date'" + <input *ngIf="form.controls.id_criteria_family.value + && (form.controls.search_type.value == 'between' + || form.controls.search_type.value == 'between-date')" type="text" class="form-control" name="placeholder_max" placeholder="Default max value (optional)" formControlName="placeholder_max"> </td> <td> - <input *ngIf="form.controls.operator.value - || form.controls.search_type.value == 'between' - || form.controls.search_type.value == 'between-date' - || form.controls.search_type.value == 'json'" + <input *ngIf="form.controls.id_criteria_family.value + && (form.controls.operator.value + || form.controls.search_type.value == 'between' + || form.controls.search_type.value == 'between-date' + || form.controls.search_type.value == 'json')" type="number" class="form-control" name="criteria_display"