2016-09-17 10:40:29 +00:00
document . body . innerHTML = "" ; "use strict" ;
2016-09-20 13:28:16 +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" } , "/^br([0-9]+)$/" : { node _type : "br" , repeat : { n : "{$1}" , id : "brs" } } } , custom _definition = { "/^input.([a-z]+)$/" : { node : "input" , attributes : { type : "{$1}" , "data-name" : "{name}" , value : "{value}" , placeholder : "{placeholder}" } , next _nodes : [ { node : "br" } ] , listeners : { click : "{xx()}" } } , "custom-select" : { node : "span" , attributes : { "class" : "select-container nobold" } ,
children : [ { node : "select" , attributes : { "data-name" : "{name}" } , children : [ { node : "option" , attributes : { value : "{options:i}" } , text : "{options.value}" , browse : { array : "{options[]}" , funcs : { "options.value" : "{getoptval()}" } } } ] , listeners : { change : "{listener()}" } } ] , 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" , $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 : 10 , id : "rep" } } , { node : "input.text" , $name : "number" , $value : "{number}" , $xx : "{clicklistener}" } , { node : "custom-select" , $name : "existing" , $options : "{options[]}" } ] } , contactForm = { node : "h4" , attributes : { "data-icon" : "o" , "class" : "new-contact colo2" } ,
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" , $name : "countsms" , $value : "{countsms}" } , { node : "input.text" , $name : "number" , $value : "{number}" } , { node : "custom-select" , $name : "existing" , $options : "{existing[]}" , $listener : "{existingsel()}" } , { node : "br2" } , { node : "input.text" , $name : "username" , $placeholder : "{usernameph}" ,
$value : "{username}" } , { node : "input.submit" , $value : "Enregistrer" , attributes : { "class" : "primary sub-number" } } ] , next _nodes : [ { node : "br2" } ] } , a = "<h4 data-icon='o' class='new-contact color2'> \n\t<input type='hidden' data-name='uid' value='@uid'>\n\t<input type='hidden' data-name='call' value='@call'>\n\t<input type='hidden' data-name='sms' value='@sms'>\n\t<input type='hidden' data-name='countcall' value='@countcall'>\n\t<input type='hidden' data-name='countsms' value='@countsms'>\n\t<input type='text' data-name='number' placeholder='Num\u00e9ro de t\u00e9l\u00e9phone' value='@number' > \n\t<span class='select-container nobold'><select data-name='existing'>\n\t\t<option value='.'>Utiliser pseudo</option>\n@contacts\t</select></span>\n\t ou \n\t<input type='text' data-name='username' placeholder='Pseudo' value='@username' > \n\t<input type='submit' class='primary sub-number' value='Enregistrer'>\n</h4>\n\n" ,
fb = new FormBuilder ( contactForm ) ; fb . add _definition ( default _definition ) ; fb . add _definition ( custom _definition ) ; fb . build ( { uid : 1 , call : 2 , sms : 3 , countcall : 4 , countsms : 5 , number : "01 02 03 04 05" , existing : [ "Jean" , "Archibald" , "Daniel" , "Maurice" ] , username : "moi-meme" , usernameph : "Pseudo" , clicklistener : function ( b ) { console . log ( "clicked" , b ) } , existingsel : function ( b ) { console . log ( "selected" , b ) } , getoptval : function ( b ) { return b } } ) ; fb . attach ( document . body ) ;