argos/dmp-frontend/src/app/models/data-management-plan-profile/DataManagementPlanProfile.ts

28 lines
1.0 KiB
TypeScript
Raw Normal View History

2018-10-05 17:00:54 +02:00
import { DataManagementProfileField } from './DataManagementProfileField';
import { Serializable } from '../interfaces/Serializable';
import { JsonSerializer } from '../../utilities/JsonSerializer';
import { FormGenerator } from '../interfaces/FormGenerator';
import { FormGroup, FormBuilder } from '@angular/forms';
2018-03-28 15:24:47 +02:00
2018-10-05 17:00:54 +02:00
export class DataManagementPlanProfile implements Serializable<DataManagementPlanProfile>, FormGenerator<FormGroup> {
2018-03-28 15:24:47 +02:00
2018-10-05 17:00:54 +02:00
public fields: DataManagementProfileField[] = new Array<DataManagementProfileField>();
2018-03-28 15:24:47 +02:00
2018-10-05 17:00:54 +02:00
fromJSONObject(item: any): DataManagementPlanProfile {
this.fields = JsonSerializer.fromJSONArray(item.fields, DataManagementProfileField);
return this;
}
2018-03-28 15:24:47 +02:00
2018-10-05 17:00:54 +02:00
buildForm(): FormGroup {
const formBuilder = new FormBuilder();
const formGroup = formBuilder.group({});
const fieldsFormArray = new Array<FormGroup>();
this.fields.forEach(item => {
const form: FormGroup = item.buildForm();
fieldsFormArray.push(form);
});
formGroup.addControl('fields', formBuilder.array(fieldsFormArray));
return formGroup;
}
}