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

64 lines
2.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 = {};
2017-11-14 19:46:34 +01:00
let subgroupFieldset: any = {};
let fieldset: boolean = false;
group.groupFields.forEach(field => {
2017-10-03 17:36:09 +02:00
//if(field.attributes.validation != undefined)
// field.attributes.validation.forEach(val => {
// if (val.ruleStyle.toString()=="existence"){
// field.required = true;
// }
// if (val.ruleStyle.toString()=="regex"){
// field.regex = val.regex;
// }
// });
subgroup[field.key] = field.required ? new FormControl(field.value || '', Validators.required) : new FormControl(field.value || '')
2017-11-14 19:46:34 +01:00
if (group.compositeFields!=undefined){
fieldset = true;
group.compositeFields.groupFields.forEach(field => {
//subgroupFieldset[field.key] = field.required ? new FormControl(field.value || '', Validators.required) : new FormControl(field.value || '')
subgroup[field.key] = field.required ? new FormControl(field.value || '', Validators.required) : new FormControl(field.value || '');
});
}
});
2017-11-14 19:46:34 +01:00
//PLEASE CHANGE THE group.key TO BE SAME AS THE ONE ON THE DYNAMIC-FORM-GROUP-COMPONENT.html
2017-11-14 19:46:34 +01:00
if (fieldset){
//subgroup["FieldSet"+ group.key] = form[group.key] = new FormGroup(subgroupFieldset);
form[group.key] = new FormGroup(subgroup);
}
else
form[group.key] = new FormGroup(subgroup);
2017-10-04 11:39:45 +02:00
//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 || '')
});
2017-10-04 11:39:45 +02:00
//console.log("FORM_GROUP: ");
//console.log(form);
return new FormGroup(form);
}
}