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

40 lines
1.6 KiB
TypeScript

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';
import { Page } from '../models/Page';
export class DatasetProfileDefinitionModel extends BaseModel implements Serializable<DatasetProfileDefinitionModel>, FormGenerator<FormGroup>{
public status: number
public pages: Array<Page>;
public rules: Rule[];
//public sections:Array<Section>
fromJSONObject(item: any): DatasetProfileDefinitionModel {
this.status = item.status;
//this.sections = JsonSerializer.fromJSONArray(item.sections,Section);
this.rules = JsonSerializer.fromJSONArray(item.rules, Rule);
this.pages = JsonSerializer.fromJSONArray(item.pages, Page);
return this;
}
buildForm(): FormGroup {
let formGroup: FormGroup = new FormBuilder().group({});
let pagesFormArray = new Array<FormGroup>();
// let sectionsFormArray = new Array<FormGroup>();
// this.pages.forEach (page => {
// page.sections.forEach(item => {
// let form: FormGroup = item.buildForm();
// sectionsFormArray.push(form)
// })
// })
this.pages.forEach(item => {
let form: FormGroup = item.buildForm();
pagesFormArray.push(form)
})
formGroup.addControl('pages', this.formBuilder.array(pagesFormArray));
return formGroup;
}
}