2017-12-20 17:46:52 +01:00
|
|
|
|
import { Component, Input } from '@angular/core';
|
2017-11-27 14:35:00 +01:00
|
|
|
|
import { FormGroup } from '@angular/forms';
|
2018-01-02 17:29:27 +01:00
|
|
|
|
import { FieldSet } from 'app/models/DataSetProfile/FieldSet';
|
2017-12-20 17:46:52 +01:00
|
|
|
|
import { Field } from 'app/models/DataSetProfile/Field';
|
2017-12-07 14:57:20 +01:00
|
|
|
|
import { FormArray, FormControl } from '@angular/forms/src/model';
|
2017-11-27 14:35:00 +01:00
|
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
|
selector: 'compositefield-form',
|
|
|
|
|
templateUrl: './compositefield-form.component.html',
|
|
|
|
|
styleUrls: []
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
export class CompositeFieldFormComponent {
|
2017-12-07 14:57:20 +01:00
|
|
|
|
@Input() form: FormGroup;
|
2018-01-02 17:29:27 +01:00
|
|
|
|
@Input() dataModel: FieldSet;
|
2017-12-07 14:57:20 +01:00
|
|
|
|
@Input() indexPath: string;
|
|
|
|
|
|
|
|
|
|
isComposite: boolean = false;
|
|
|
|
|
isMultiplicityEnabled: boolean = false;
|
|
|
|
|
|
|
|
|
|
constructon() { }
|
|
|
|
|
|
|
|
|
|
ngOnInit() {
|
|
|
|
|
//this.addNewField();
|
2017-12-13 13:57:19 +01:00
|
|
|
|
if(this.form.get("multiplicity"))
|
|
|
|
|
if (this.form.get("multiplicity").value.min >1 || this.form.get("multiplicity").value.max >1 )
|
|
|
|
|
this.isMultiplicityEnabled= true;
|
2017-12-08 16:59:48 +01:00
|
|
|
|
this.isComposite = this.dataModel.fields.length > 1;
|
2017-12-07 14:57:20 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onIsCompositeChange(isComposite: boolean) {
|
|
|
|
|
if (!isComposite && (<FormArray>this.form.get("fields")).length > 1) {
|
|
|
|
|
for(let i = 0; i < (<FormArray>this.form.get("fields")).length - 1; i++) {
|
|
|
|
|
(<FormArray>this.form.get("fields")).removeAt(1);
|
|
|
|
|
}
|
|
|
|
|
this.dataModel.fields.splice(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onIsMultiplicityEnabledChange(isMultiplicityEnabled: boolean) {
|
|
|
|
|
if (!isMultiplicityEnabled) {
|
|
|
|
|
(<FormControl>this.form.get('multiplicity').get("min")).setValue(0);
|
|
|
|
|
(<FormControl>this.form.get('multiplicity').get("max")).setValue(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
addNewField() {
|
|
|
|
|
let field: Field = new Field();
|
|
|
|
|
this.dataModel.fields.push(field);
|
|
|
|
|
(<FormArray>this.form.get("fields")).push(field.buildForm());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DeleteField(index) {
|
|
|
|
|
this.dataModel.fields.splice(index, 1);
|
2017-11-29 17:51:28 +01:00
|
|
|
|
(<FormArray>this.form.get("fields")).removeAt(index);
|
2017-12-07 14:57:20 +01:00
|
|
|
|
}
|
2017-11-27 14:35:00 +01:00
|
|
|
|
}
|