argos/dmp-frontend/src/app/dataset-profile-form/compositefield-form/compositefield-form.compone...

60 lines
1.8 KiB
TypeScript
Raw Normal View History

2018-10-05 17:00:54 +02:00
import { Component, Input, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { FormArray, FormControl } from '@angular/forms';
2018-10-02 16:33:58 +02:00
import { FieldSet } from '../../models/datasetProfileAdmin/FieldSet';
import { Field } from '../../models/datasetProfileAdmin/Field';
@Component({
2018-10-05 17:00:54 +02:00
selector: 'app-compositefield-form',
templateUrl: './compositefield-form.component.html',
styleUrls: ['./compositefield-form.component.scss']
})
2018-10-05 17:00:54 +02:00
export class CompositeFieldFormComponent implements OnInit {
@Input() form: FormGroup;
@Input() dataModel: FieldSet;
@Input() indexPath: string;
isComposite = false;
isMultiplicityEnabled = false;
constructon() { }
ngOnInit() {
//this.addNewField();
if (this.form.get('multiplicity')) {
if (this.form.get('multiplicity').value.min > 1 || this.form.get('multiplicity').value.max > 1) {
this.isMultiplicityEnabled = true;
}
}
this.isComposite = this.dataModel.fields.length > 1;
}
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() {
const 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);
(<FormArray>this.form.get('fields')).removeAt(index);
}
2018-10-02 16:33:58 +02:00
}