2017-12-20 17:46:52 +01:00
|
|
|
|
import { BaseModel } from '../BaseModel';
|
2018-01-02 17:29:27 +01:00
|
|
|
|
import { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';
|
2017-12-20 17:46:52 +01:00
|
|
|
|
import { FormGenerator } from '../interfaces/FormGenerator';
|
|
|
|
|
import { JsonSerializer } from 'app/utilities/JsonSerializer';
|
|
|
|
|
import { Section } from './Section';
|
|
|
|
|
import { Serializable } from '../interfaces/Serializable';
|
|
|
|
|
import { Page } from "./Page";
|
|
|
|
|
|
|
|
|
|
export class DatasetProfileModel extends BaseModel implements Serializable<DatasetProfileModel>,FormGenerator<FormGroup>{
|
|
|
|
|
|
|
|
|
|
public sections: Array<Section> = new Array<Section>();
|
|
|
|
|
public pages: Array<Page> = new Array<Page>();
|
|
|
|
|
public label: string;
|
|
|
|
|
|
|
|
|
|
fromJSONObject(item:any):DatasetProfileModel{
|
2018-02-01 15:04:36 +01:00
|
|
|
|
this.sections = JsonSerializer.fromJSONArray(item.sections, Section);
|
|
|
|
|
this.pages = JsonSerializer.fromJSONArray(item.pages, Page);
|
2017-12-20 17:46:52 +01:00
|
|
|
|
this.label = item.label;
|
|
|
|
|
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));
|
|
|
|
|
|
|
|
|
|
let pagesFormArray = new Array<FormGroup>();
|
2018-01-19 12:11:22 +01:00
|
|
|
|
this.pages.forEach(item => {
|
|
|
|
|
let form: FormGroup = item.buildForm();
|
|
|
|
|
pagesFormArray.push(form)
|
|
|
|
|
})
|
2017-12-20 17:46:52 +01:00
|
|
|
|
formGroup.addControl('pages', this.formBuilder.array(pagesFormArray));
|
|
|
|
|
|
2018-01-03 16:19:52 +01:00
|
|
|
|
formGroup.addControl('label', new FormControl(this.label, Validators.required));
|
2017-12-20 17:46:52 +01:00
|
|
|
|
return formGroup;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|