2018-05-14 08:44:35 +02:00
|
|
|
import { Section } from "../models/Section";
|
2018-01-19 14:56:27 +01:00
|
|
|
import { BaseModel } from './BaseModel';
|
|
|
|
import { FormGenerator } from './interfaces/FormGenerator';
|
|
|
|
import { Serializable } from './interfaces/Serializable';
|
|
|
|
import { JsonSerializer } from '../utilities/JsonSerializer';
|
|
|
|
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
|
|
|
|
|
|
export class Page extends BaseModel implements Serializable<Page> {
|
|
|
|
public ordinal: number;
|
|
|
|
public title: string;
|
|
|
|
public sections: Array<Section>;
|
|
|
|
|
2018-05-14 08:44:35 +02:00
|
|
|
fromJSONObject(item: any): Page {
|
2018-01-19 14:56:27 +01:00
|
|
|
this.ordinal = item.ordinal;
|
|
|
|
this.title = item.title;
|
2018-05-14 08:44:35 +02:00
|
|
|
this.sections = JsonSerializer.fromJSONArray(item.sections, Section);
|
2018-01-19 14:56:27 +01:00
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2018-05-14 08:44:35 +02:00
|
|
|
buildForm(): FormGroup {
|
|
|
|
let formGroup: FormGroup = new FormBuilder().group({});
|
2018-01-19 14:56:27 +01:00
|
|
|
let sectionsFormArray = new Array<FormGroup>();
|
|
|
|
this.sections.forEach(item => {
|
|
|
|
let form: FormGroup = item.buildForm();
|
|
|
|
sectionsFormArray.push(form)
|
2018-05-14 08:44:35 +02:00
|
|
|
})
|
2018-01-19 14:56:27 +01:00
|
|
|
formGroup.addControl('sections', this.formBuilder.array(sectionsFormArray));
|
|
|
|
return formGroup;
|
|
|
|
}
|
|
|
|
}
|