argos/dmp-admin/src/app/models/DataSetProfile/Visibility.ts

37 lines
1.1 KiB
TypeScript
Raw Normal View History

import { BaseModel } from '../BaseModel';
2017-12-01 15:00:37 +01:00
import { Rule } from "./Rule";
import { FormGenerator } from "../interfaces/FormGenerator";
2017-12-01 15:00:37 +01:00
import { FormGroup } from '@angular/forms';
import { Serializable } from '../interfaces/Serializable';
import { JsonSerializer } from 'app/utilities/JsonSerializer';
2017-12-01 15:00:37 +01:00
export class Visibility extends BaseModel implements Serializable<Visibility>, FormGenerator<FormGroup>{
public rules: Array<Rule> = new Array<Rule>();
public style:string;
fromJSONObject(item:any):Visibility{
2018-02-01 15:04:36 +01:00
this.rules = JsonSerializer.fromJSONArray(item.rules, Rule);
2017-12-01 15:00:37 +01:00
this.style = item.style;
return this;
}
buildForm():FormGroup{
let formGroup = this.formBuilder.group({
style:[this.style]
})
let rulesFormArray = new Array<FormGroup>();
if (this.rules){
this.rules.forEach(rule =>{
let form:FormGroup = rule.buildForm();
rulesFormArray.push(form);
});
}
formGroup.addControl("rules", this.formBuilder.array(rulesFormArray));
return formGroup;
}
}