argos/dmp-frontend/src/app/shared/componentsAdmin/radiobox/radiobox-component.ts

33 lines
1.3 KiB
TypeScript

import { FormGroup } from '@angular/forms';
import { Component, Input, OnInit } from '@angular/core';
import { RadioBoxData } from '../../../models/DataField/RadioBoxData';
import { FormArray } from '@angular/forms';
import { ListingItem } from '../../../models/Common/ListingItem';
import { JsonSerializer } from '../../../utilities/JsonSerializer';
import { Field } from '../../../models/datasetProfileAdmin/Field';
@Component({
selector: 'radiobox-component',
templateUrl: './radiobox-component.html'
})
export class RadioBoxComponent implements OnInit {
@Input() dataModel: Field;
@Input() form: FormGroup;
private data: RadioBoxData = new RadioBoxData();
private options = new Array<ListingItem>();
ngOnInit() {
//if (this.form.get("data")) this.form.removeControl("data");
if (!this.form.get("data"))
this.form.addControl("data", this.data.buildForm());
if (!this.dataModel.data) this.addNewRow();
}
addNewRow() {
let radioListOptions: ListingItem = new ListingItem();
(<FormArray>this.form.get("data").get("options")).push(radioListOptions.buildForm());
this.data.options = [];
this.data.options.push(radioListOptions);
this.dataModel.data = JsonSerializer.fromJSONObject(this.data, RadioBoxData);
}
}