dataset admin combobox fix
This commit is contained in:
parent
196435d069
commit
fd809ab361
|
@ -1,34 +0,0 @@
|
||||||
import { FormGroup } from '@angular/forms';
|
|
||||||
import { DatasetProfileComboBoxType } from '../../../../../core/common/enum/dataset-profile-combo-box-type';
|
|
||||||
import { WordListFieldData } from '../../../../../core/model/dataset-profile-definition/field-data/field-data';
|
|
||||||
import { FieldDataEditorModel } from './field-data-editor-model';
|
|
||||||
import { FieldDataOptionEditorModel } from './field-data-option-editor-model';
|
|
||||||
|
|
||||||
export class WordListFieldDataEditorModel extends FieldDataEditorModel<WordListFieldDataEditorModel> {
|
|
||||||
public type: DatasetProfileComboBoxType = DatasetProfileComboBoxType.WordList;
|
|
||||||
public options: Array<FieldDataOptionEditorModel>;
|
|
||||||
|
|
||||||
buildForm(): FormGroup {
|
|
||||||
const formGroup = this.formBuilder.group({
|
|
||||||
type: [this.type],
|
|
||||||
label: [this.label]
|
|
||||||
});
|
|
||||||
const optionsFormArray = new Array<FormGroup>();
|
|
||||||
if (this.options) {
|
|
||||||
this.options.forEach(item => {
|
|
||||||
const form: FormGroup = item.buildForm();
|
|
||||||
optionsFormArray.push(form);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
formGroup.addControl('options', this.formBuilder.array(optionsFormArray));
|
|
||||||
|
|
||||||
return formGroup;
|
|
||||||
}
|
|
||||||
|
|
||||||
fromModel(item: WordListFieldData): WordListFieldDataEditorModel {
|
|
||||||
this.type = item.type;
|
|
||||||
if (item.options) { this.options = item.options.map(x => new FieldDataOptionEditorModel().fromModel(x)); }
|
|
||||||
this.label = item.label;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -15,6 +15,5 @@ export class DatasetProfileEditorAutoCompleteFieldComponent implements OnInit {
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.data.type = DatasetProfileComboBoxType.Autocomplete;
|
this.data.type = DatasetProfileComboBoxType.Autocomplete;
|
||||||
if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@ import { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../../../../core/common/base/base.component';
|
||||||
import { DatasetProfileComboBoxType } from '../../../../../../../core/common/enum/dataset-profile-combo-box-type';
|
import { DatasetProfileComboBoxType } from '../../../../../../../core/common/enum/dataset-profile-combo-box-type';
|
||||||
import { EnumUtils } from '../../../../../../../core/services/utilities/enum-utils.service';
|
import { EnumUtils } from '../../../../../../../core/services/utilities/enum-utils.service';
|
||||||
|
import { AutoCompleteFieldDataEditorModel } from '../../../../admin/field-data/auto-complete-field-data-editor-model';
|
||||||
|
import { WordListFieldDataEditorModel } from '../../../../admin/field-data/word-list-field-data-editor-model';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dataset-profile-editor-combo-box-field-component',
|
selector: 'app-dataset-profile-editor-combo-box-field-component',
|
||||||
|
@ -20,41 +22,20 @@ export class DatasetProfileEditorComboBoxFieldComponent extends BaseComponent im
|
||||||
) { super(); }
|
) { super(); }
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
// this.form.get('data').get('type').valueChanges
|
this.setupListeners();
|
||||||
// .pipe(takeUntil(this._destroyed))
|
}
|
||||||
// .subscribe(x => {
|
|
||||||
// if (x === "autocomplete") {
|
|
||||||
// //if(!this.form.get('data').get('url')) this.form.addControl('data', new AutoCompleteFieldDataEditorModel().buildForm());
|
|
||||||
// //delete
|
|
||||||
// if (this.form.get('data').get('options')) (<FormGroup>this.form.get('data')).removeControl('options');
|
|
||||||
// //add
|
|
||||||
// if (!this.form.get('data').get('url')) (<FormGroup>this.form.get('data')).addControl('url', new FormControl(''));
|
|
||||||
// if (!this.form.get('data').get('optionsRoot')) (<FormGroup>this.form.get('data')).addControl('optionsRoot', new FormControl(''));
|
|
||||||
// if (!this.form.get('data').get('autoCompleteOptions')) (<FormGroup>this.form.get('data')).addControl('autoCompleteOptions', new FormControl(''));
|
|
||||||
|
|
||||||
// } else if (x === "wordlist") {
|
setupListeners() {
|
||||||
// //this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
|
|
||||||
// //delete
|
|
||||||
// if (this.form.get('data').get('url')) (<FormGroup>this.form.get('data')).removeControl('url');
|
|
||||||
// if (this.form.get('data').get('optionsRoot')) (<FormGroup>this.form.get('data')).removeControl('optionsRoot');
|
|
||||||
// if (this.form.get('data').get('autoCompleteOptions')) (<FormGroup>this.form.get('data')).removeControl('autoCompleteOptions');
|
|
||||||
// //add
|
|
||||||
// if (!this.form.get('data').get('options')) (<FormGroup>this.form.get('data')).addControl('options', new FormControl);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// });
|
|
||||||
this.form.get('data').get('type').valueChanges
|
this.form.get('data').get('type').valueChanges
|
||||||
.pipe(takeUntil(this._destroyed))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(x => {
|
.subscribe(x => {
|
||||||
if (this.form.get('data')) {
|
if (this.form.get('data')) { this.form.removeControl('data'); }
|
||||||
this.form.removeControl('data');
|
if (x === DatasetProfileComboBoxType.Autocomplete) {
|
||||||
if(x==="autocomplete"){
|
this.form.addControl('data', new AutoCompleteFieldDataEditorModel().buildForm());
|
||||||
this.form.addControl('data',new AutoCompleteFieldDataEditorModel().buildForm());
|
} else if (x === DatasetProfileComboBoxType.WordList) {
|
||||||
}else if(x==="wordlist"){
|
this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
|
||||||
this.form.addControl('data',new WordListFieldDataEditorModel().buildForm());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
this.setupListeners();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,6 @@ export class DatasetProfileEditorWordListFieldComponent implements OnInit {
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.data.type = DatasetProfileComboBoxType.WordList;
|
this.data.type = DatasetProfileComboBoxType.WordList;
|
||||||
if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
addNewRow() {
|
addNewRow() {
|
||||||
|
|
|
@ -1,21 +1,18 @@
|
||||||
|
|
||||||
import { Component, Input, OnInit, ViewChild } from '@angular/core';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
import { FormBuilder, FormControl, FormGroup, Validators, FormArray } from '@angular/forms';
|
import { FormArray, FormControl, FormGroup } from '@angular/forms';
|
||||||
import { ValidationType } from '../../../../../../core/common/enum/validation-type';
|
|
||||||
import { EnumUtils } from '../../../../../../core/services/utilities/enum-utils.service';
|
|
||||||
import { RuleEditorModel } from '../../../admin/rule-editor-model';
|
|
||||||
import { DatasetProfileFieldViewStyle } from '../../../../../../core/common/enum/dataset-profile-field-view-style';
|
|
||||||
import { RadioBoxFieldDataEditorModel } from '../../../admin/field-data/radio-box-field-data-editor-model';
|
|
||||||
import { DatasetProfileEditorComboBoxFieldComponent } from '../field-type/combo-box/dataset-profile-editor-combo-box-field.component';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../../../core/common/base/base.component';
|
||||||
import { ViewStyleEditorModel } from '../../../admin/view-style-editor-model';
|
import { DatasetProfileFieldViewStyle } from '../../../../../../core/common/enum/dataset-profile-field-view-style';
|
||||||
import { TextAreaFieldDataEditorModel } from '../../../admin/field-data/text-area-field-data-editor-model';
|
import { ValidationType } from '../../../../../../core/common/enum/validation-type';
|
||||||
|
import { EnumUtils } from '../../../../../../core/services/utilities/enum-utils.service';
|
||||||
import { BooleanDecisionFieldDataEditorModel } from '../../../admin/field-data/boolean-decision-field-data-editor-model';
|
import { BooleanDecisionFieldDataEditorModel } from '../../../admin/field-data/boolean-decision-field-data-editor-model';
|
||||||
import { CheckBoxFieldDataEditorModel } from '../../../admin/field-data/check-box-field-data-editor-model';
|
import { CheckBoxFieldDataEditorModel } from '../../../admin/field-data/check-box-field-data-editor-model';
|
||||||
import { FreeTextFieldDataEditorModel } from '../../../admin/field-data/free-text-field-data-editor-model';
|
import { FreeTextFieldDataEditorModel } from '../../../admin/field-data/free-text-field-data-editor-model';
|
||||||
|
import { RadioBoxFieldDataEditorModel } from '../../../admin/field-data/radio-box-field-data-editor-model';
|
||||||
|
import { TextAreaFieldDataEditorModel } from '../../../admin/field-data/text-area-field-data-editor-model';
|
||||||
import { WordListFieldDataEditorModel } from '../../../admin/field-data/word-list-field-data-editor-model';
|
import { WordListFieldDataEditorModel } from '../../../admin/field-data/word-list-field-data-editor-model';
|
||||||
import { AutoCompleteFieldDataEditorModel } from '../../../admin/field-data/auto-complete-field-data-editor-model';
|
import { RuleEditorModel } from '../../../admin/rule-editor-model';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dataset-profile-editor-field-component',
|
selector: 'app-dataset-profile-editor-field-component',
|
||||||
|
@ -54,29 +51,18 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
|
||||||
case DatasetProfileFieldViewStyle.BooleanDecision:
|
case DatasetProfileFieldViewStyle.BooleanDecision:
|
||||||
this.form.addControl('data', new BooleanDecisionFieldDataEditorModel().buildForm());
|
this.form.addControl('data', new BooleanDecisionFieldDataEditorModel().buildForm());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DatasetProfileFieldViewStyle.CheckBox:
|
case DatasetProfileFieldViewStyle.CheckBox:
|
||||||
this.form.addControl('data', new CheckBoxFieldDataEditorModel().buildForm());
|
this.form.addControl('data', new CheckBoxFieldDataEditorModel().buildForm());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DatasetProfileFieldViewStyle.ComboBox:
|
case DatasetProfileFieldViewStyle.ComboBox:
|
||||||
//this.form.removeControl('data');
|
this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
|
||||||
this.form.addControl('data', new FormGroup({}));
|
|
||||||
(<FormGroup>this.form.get('data')).addControl('type', new FormControl(''));
|
|
||||||
(<FormGroup>this.form.get('data')).addControl('label', new FormControl(''));
|
|
||||||
//this.form.get('data').get('type').setValue("autocomplete");
|
|
||||||
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DatasetProfileFieldViewStyle.FreeText:
|
case DatasetProfileFieldViewStyle.FreeText:
|
||||||
this.form.addControl('data', new FreeTextFieldDataEditorModel().buildForm());
|
this.form.addControl('data', new FreeTextFieldDataEditorModel().buildForm());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DatasetProfileFieldViewStyle.RadioBox:
|
case DatasetProfileFieldViewStyle.RadioBox:
|
||||||
this.form.addControl('data', new RadioBoxFieldDataEditorModel().buildForm());
|
this.form.addControl('data', new RadioBoxFieldDataEditorModel().buildForm());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DatasetProfileFieldViewStyle.TextArea:
|
case DatasetProfileFieldViewStyle.TextArea:
|
||||||
this.form.addControl('data', new TextAreaFieldDataEditorModel().buildForm());
|
this.form.addControl('data', new TextAreaFieldDataEditorModel().buildForm());
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue