ws-form-builder
Version:
Ionic 2 Form Builder
131 lines (100 loc) • 3.4 kB
text/typescript
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { FormBuilderProvider } from '../../providers/form-builder/form-builder';
export class WsPunchcardComponent {
question;
answerGiven = new EventEmitter();
fieldValue:string = '';
isFieldValid:boolean = false;
showError:boolean = false;
fieldAnswers:object = {};
isDebug:boolean = false;
constructor(public formBuilder: FormBuilderProvider){
this.fieldValue = '';
}
ngOnInit() {
if(typeof this.question.xAxis !== 'undefined' && typeof this.question.yAxis !== 'undefined'){
this.generateFields();
}
if(typeof this.question.isDebug !== 'undefined' && this.question.isDebug === true){
this.isDebug = true;
}
}
generateFields(){
let data = {};
for(let i=0; i < Object.keys(this.question.yAxis).length; i++){
//string = string+this.fieldAnswers[i];
let rowField = this.question.yAxis[i]['field'];
if(typeof data[rowField] === 'undefined'){
data[rowField] = {};
}
for(let x=0; x < Object.keys(this.question.xAxis).length; x++){
let colField = this.question.xAxis[x]['field'];
data[rowField][colField] = false;
}
}
this.fieldAnswers = data;
//this.getFieldData('');
}
getFieldData(key){
if(typeof this.question.data !== 'undefined'){
}
}
setAnswer(event,question){
let isStringValid = this.validateAnswer(question,event.value);
if(!isStringValid){
this.isFieldValid = false;
this.showError = true;
}else{
this.isFieldValid = true;
this.showError = false;
}
if(this.isFieldValid){
question.value = event.value;
question.valid = true;
this.answerGiven.emit(question);
}
}
validateAnswer(question,string){
return this.formBuilder.validateAnswer(question,string);
}
updateCheckbox(event,row,col,question){
question.valid = true;
this.fieldAnswers[row.field][col.field] = event.value;
question.data = this.fieldAnswers;
this.answerGiven.emit(question);
}
}