argos/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-fiel...

54 lines
1.8 KiB
TypeScript
Raw Normal View History

2019-01-18 18:03:45 +01:00

import { Component, Input, OnInit } from '@angular/core';
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';
@Component({
selector: 'app-dataset-profile-editor-field-component',
templateUrl: './dataset-profile-editor-field.component.html',
styleUrls: ['./dataset-profile-editor-field.component.scss']
})
export class DatasetProfileEditorFieldComponent implements OnInit {
@Input() form: FormGroup;
@Input() showMultiplicity = true;
@Input() showOrdinal = true;
@Input() indexPath: string;
validationsOptions: ValidationType[] = this.enumUtils.getEnumValues(ValidationType);
viewStyleEnum = DatasetProfileFieldViewStyle;
isFieldMultiplicityEnabled = false;
constructor(
public enumUtils: EnumUtils
) {
}
ngOnInit() {
if (this.form.get('multiplicity')) {
if (this.form.get('multiplicity').value.min > 1 || this.form.get('multiplicity').value.max > 1) {
this.isFieldMultiplicityEnabled = true;
}
}
// this.addNewRule();
}
onIsFieldMultiplicityEnabledChange(isFieldMultiplicityEnabled: boolean) {
if (!isFieldMultiplicityEnabled) {
(<FormControl>this.form.get('multiplicity').get('min')).setValue(0);
(<FormControl>this.form.get('multiplicity').get('max')).setValue(0);
}
}
addNewRule() {
const rule: RuleEditorModel = new RuleEditorModel();
(<FormArray>this.form.get('visible').get('rules')).push(rule.buildForm());
}
onchangeCombo() {
if (this.form.get('data')) { this.form.removeControl('data'); }
}
}