argos/dmp-frontend/src/app/models/datasetProfileAdmin/Visibility.ts

37 lines
1.1 KiB
TypeScript

import { BaseModel } from '../BaseModel';
import { Rule } from "./Rule";
import { FormGenerator } from "../interfaces/FormGenerator";
import { FormGroup } from '@angular/forms';
import { Serializable } from '../interfaces/Serializable';
import { JsonSerializer } from 'app/utilities/JsonSerializer';
export class Visibility extends BaseModel implements Serializable<Visibility>, FormGenerator<FormGroup>{
public rules: Array<Rule> = new Array<Rule>();
public style:string;
fromJSONObject(item:any):Visibility{
this.rules = JsonSerializer.fromJSONArray(item.rules, Rule);
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;
}
}