2018-01-03 14:43:21 +01:00
|
|
|
|
import { Field } from '../../models/DataSetProfile/Field';
|
|
|
|
|
import { Rule } from '../../models/DataSetProfile/Rule';
|
|
|
|
|
import { Component, Input } from '@angular/core';
|
|
|
|
|
import { FormGroup, FormControl, FormArray } from '@angular/forms';
|
2018-01-04 12:20:50 +01:00
|
|
|
|
import { ValidationTypes } from 'app/common/validationTypes';
|
2017-11-27 14:35:00 +01:00
|
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
|
selector: 'field-form',
|
|
|
|
|
templateUrl: './field-form.component.html',
|
|
|
|
|
styleUrls: []
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
export class FieldFormComponent {
|
2017-12-07 14:57:20 +01:00
|
|
|
|
@Input() form: FormGroup;
|
|
|
|
|
@Input() dataModel: Field;
|
|
|
|
|
@Input() showMultiplicity: boolean = true;
|
|
|
|
|
@Input() indexPath: string;
|
2018-01-04 12:20:50 +01:00
|
|
|
|
validationsOptions: Array<any>;
|
2017-12-07 14:57:20 +01:00
|
|
|
|
isFieldMultiplicityEnabled: boolean = false;
|
2017-11-27 14:35:00 +01:00
|
|
|
|
|
2018-01-04 12:20:50 +01:00
|
|
|
|
constructon() {
|
|
|
|
|
}
|
2017-11-27 14:35:00 +01:00
|
|
|
|
|
2017-12-07 14:57:20 +01:00
|
|
|
|
ngOnInit() {
|
2018-01-04 12:20:50 +01:00
|
|
|
|
if (this.form.get("multiplicity"))
|
|
|
|
|
if (this.form.get("multiplicity").value.min > 1 || this.form.get("multiplicity").value.max > 1)
|
2017-12-13 13:57:19 +01:00
|
|
|
|
this.isFieldMultiplicityEnabled = true;
|
2018-01-04 12:20:50 +01:00
|
|
|
|
this.validationsOptions = [{ key: 0, value: ValidationTypes[0] }, { key: 1, value: ValidationTypes[1] }]
|
2017-12-07 14:57:20 +01:00
|
|
|
|
// this.addNewRule();
|
|
|
|
|
}
|
2017-11-27 14:35:00 +01:00
|
|
|
|
|
2017-12-07 14:57:20 +01:00
|
|
|
|
onIsFieldMultiplicityEnabledChange(isFieldMultiplicityEnabled: boolean) {
|
|
|
|
|
if (!isFieldMultiplicityEnabled) {
|
|
|
|
|
(<FormControl>this.form.get('multiplicity').get("min")).setValue(0);
|
|
|
|
|
(<FormControl>this.form.get('multiplicity').get("max")).setValue(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-11-29 17:51:28 +01:00
|
|
|
|
|
2017-12-07 14:57:20 +01:00
|
|
|
|
addNewRule() {
|
|
|
|
|
let rule: Rule = new Rule();
|
|
|
|
|
this.dataModel.visible.rules.push(rule);
|
|
|
|
|
(<FormArray>this.form.get("visible").get("rules")).push(rule.buildForm());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DeleteRule(index) {
|
|
|
|
|
this.dataModel.visible.rules.splice(index, 1);
|
|
|
|
|
(<FormArray>this.form.get("visible").get("rules")).removeAt(index);
|
|
|
|
|
}
|
2018-01-04 12:20:50 +01:00
|
|
|
|
|
|
|
|
|
onchangeCombo() {
|
2018-01-22 15:28:33 +01:00
|
|
|
|
if (this.form.get("data")) this.form.removeControl("data");
|
2018-01-04 12:20:50 +01:00
|
|
|
|
}
|
2017-11-27 14:35:00 +01:00
|
|
|
|
}
|