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

27 lines
1.1 KiB
TypeScript

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";
export class DataManagementPlanProfile implements Serializable<DataManagementPlanProfile>, FormGenerator<FormGroup>{
public fields: DataManagementProfileField[] = new Array<DataManagementProfileField>()
fromJSONObject(item: any): DataManagementPlanProfile {
this.fields = JsonSerializer.fromJSONArray(item.fields, DataManagementProfileField);
return this;
}
buildForm(): FormGroup {
let formBuilder = new FormBuilder();
let formGroup = formBuilder.group({});
let fieldsFormArray = new Array<FormGroup>();
this.fields.forEach(item => {
let form: FormGroup = item.buildForm();
fieldsFormArray.push(form)
})
formGroup.addControl('fields', formBuilder.array(fieldsFormArray));
return formGroup;
}
}