argos/dmp-frontend/src/app/services/field-control.service.ts

43 lines
1.6 KiB
TypeScript
Raw Normal View History

import { Injectable } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { FieldBase } from '../../app/form/fields/field-base';
import { GroupBase } from '../form/dynamic-form-group/group-base';
@Injectable()
export class FieldControlService {
constructor(){ }
2017-09-21 12:32:58 +02:00
toFormGroup(fields: FieldBase<any>[], groups: GroupBase<any>[]){
let form: any = {};
groups.forEach(group => {
let subgroup: any = {};
group.groupFields.forEach(field => {
2017-09-29 18:16:37 +02:00
if(field.attributes.validation != undefined)
field.attributes.validation.forEach(val => {
if (val.ruleStyle.toString()=="existence"){
field.required = true;
}
});
subgroup[field.key] = field.required ? new FormControl(field.value || '', Validators.required) : new FormControl(field.value || '')
});
//PLEASE CHANGE THE group.key TO BE SAME AS THE ONE ON THE DYNAMIC-FORM-GROUP-COMPONENT.html
form[group.key] = new FormGroup(subgroup);
console.log("FORM_GROUP_GROUP: ");
console.log(form);
});
//add also the spare fields into the form
fields.forEach(field => {
form[field.key] = field.required ? new FormControl(field.value || '', Validators.required) : new FormControl(field.value || '')
});
console.log("FORM_GROUP: ");
console.log(form);
return new FormGroup(form);
}
}