2016-09-17 10:40:29 +00:00
document . body . innerHTML = "" ; "use strict" ;
2016-09-20 08:41:56 +00:00
var default _definition = { input : { node _type : "input" } , "/^h([1-6])$/" : { node _type : "h{$1}" } , br : { node _type : "br" } , option : { node _type : "option" } , select : { node _type : "select" } , span : { node _type : "span" } } , custom _definition = { "/^input.([a-z]+)$/" : { node : "input" , attributes : { type : "{$1}" , "data-name" : "{name}" , value : "{value}" , placeholder : "{placeholder}" } , next _nodes : [ { node : "br" } ] , listeners : { focus : "{xx()}" } } , "custom-select" : { node : "span" , attributes : { "class" : "select-container nobold" } , children : [ { node : "select" , attributes : { "data-name" : "{name}" } ,
children : [ { node : "option" , attributes : { value : "{options.id}" } , text : "{options.value}" , browse : { array : "{options[]}" , funcs : { "option.value" : "{getval()}" , "option.id" : "{getnam()}" } } } ] } ] , next _nodes : [ { node : "br" } ] } } , form = { node : "h4" , attributes : { "data-icon" : "o" , "class" : "new-contact color2" } , children : [ { node : "input.hidden" , $name : "uid" , $value : "{uid}" } , { node : "input.hidden" , $name : "call" , $value : "{call}" } , { node : "input.hidden" , $name : "sms" , $value : "{sms}" } , { node : "input.hidden" , $name : "countcall" , $value : "{countcall}" } , { node : "input.hidden" ,
2016-09-20 08:59:46 +00:00
$name : "countsms" , $value : "{countsms}" } , { node : "input.text" , $name : "total" , $value : "xx{countcall} calls + {countsms} sms to {number}xx" } , { node : "input.text" , $name : "count{rep.i}" , $value : "{rep.i} sur {rep.n}" , repeat : { n : 100 , id : "rep" } } , { node : "input.text" , $name : "number" , $value : "{number}" , $xx : "{clicklistener}" } , { node : "custom-select" , $name : "existing" , $options : "{options[]}" } ] } , fb = new FormBuilder ( form ) ; fb . add _definition ( default _definition ) ; fb . add _definition ( custom _definition ) ;
2016-09-20 08:41:56 +00:00
fb . build ( { uid : 1 , call : 2 , sms : 3 , countcall : 4 , countsms : 5 , number : "01 02 03 04 05" , options : [ "a" , "b" , "c" , "d" ] , clicklistener : function ( a ) { console . log ( "clicked" , a ) } , getval : function ( a ) { return a } , getnam : function ( a ) { return "[" + a + "]" } } ) ; console . log ( fb . built _form ) ; var str = function ( a ) { return FormBuilder . readRef ( fb . ref _table , a ) } ; fb . attach ( document . body ) ;