argos/dmp-frontend/src/app/models/DatasetProfileDefinitionMod...

30 lines
1.2 KiB
TypeScript
Raw Normal View History

2017-12-22 14:42:47 +01:00
import { Rule } from './Rule';
import { BaseModel } from './BaseModel';
import { FormBuilder, FormGroup } from '@angular/forms';
import { FormGenerator } from './interfaces/FormGenerator';
import { JsonSerializer } from '../utilities/JsonSerializer';
import { Section } from './Section';
import { Serializable } from './interfaces/Serializable';
2017-12-22 14:42:47 +01:00
export class DatasetProfileDefinitionModel extends BaseModel implements Serializable<DatasetProfileDefinitionModel>,FormGenerator<FormGroup>{
2017-12-12 13:08:51 +01:00
public status:number
2017-12-22 14:42:47 +01:00
public rules:Rule[];
public sections:Array<Section>
2017-12-22 14:42:47 +01:00
fromJSONObject(item:any):DatasetProfileDefinitionModel{
2017-12-12 13:08:51 +01:00
this.status = item.status;
this.sections = new JsonSerializer<Section>().fromJSONArray(item.sections,Section);
2017-12-22 14:42:47 +01:00
this.rules = new JsonSerializer<Rule>().fromJSONArray(item.rules,Rule);
return this;
}
buildForm():FormGroup{
let formGroup:FormGroup = new FormBuilder().group({});
let sectionsFormArray = new Array<FormGroup>();
this.sections.forEach(item => {
let form: FormGroup = item.buildForm();
sectionsFormArray.push(form)
})
formGroup.addControl('sections', this.formBuilder.array(sectionsFormArray));
return formGroup;
}
}