Changeset 522

Show
Ignore:
Timestamp:
08/06/07 22:36:08 (1 year ago)
Author:
laurentj
Message:

worked on ticket #185: jforms, implementation of help tag

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/jelix-www/js/jforms.js

    r473 r522  
    1414 
    1515gForm = new jFormsForm('name');                         // create a form descriptor 
    16 gForm.setDecorator(new jFormsErrorDecoratorAlert());    // declare an error handler 
     16gForm.setErrorDecorator(new jFormsErrorDecoratorAlert());    // declare an error handler 
    1717 
    1818    // declare a form control 
     
    5353        var msg = ''; 
    5454        var valid = true; 
    55         f.decorator.start(); 
     55        f.errorDecorator.start(); 
    5656        for(var i =0; i < f.controls.length; i++){ 
    5757            var c = f.controls[i]; 
     
    5959            if(val == ''){ 
    6060                if(c.required){ 
    61                     f.decorator.addError(c, 1); 
     61                    f.errorDecorator.addError(c, 1); 
    6262                    valid = false; 
    6363                } 
     
    153153                } 
    154154                if(!ok){ 
    155                     f.decorator.addError(c, 2); 
     155                    f.errorDecorator.addError(c, 2); 
    156156                    valid = false; 
    157157                } 
     
    159159        } 
    160160        if(!valid) 
    161             f.decorator.end(); 
     161            f.errorDecorator.end(); 
    162162        return valid; 
    163163    }, 
     
    199199        } 
    200200        return value; 
     201    }, 
     202 
     203    showHelp : function(aForm, aControl){ 
     204        var frm = this._forms[aForm.name]; 
     205        var ctrls = frm.controls; 
     206        var ctrl = null; 
     207        for(var i=0; i < ctrls.length; i++){ 
     208            if (ctrls[i].name == aControl) { 
     209                ctrl = ctrls[i]; 
     210                break; 
     211            } 
     212        } 
     213        if (ctrl) { 
     214            frm.helpDecorator.show(ctrl.help); 
     215        } 
    201216    } 
    202  
    203217} 
    204218 
     
    208222function jFormsForm(name){ 
    209223    this.name = name; 
    210     this.controls = [] 
    211     this.decorator =  new jFormsErrorDecoratorAlert(); 
     224    this.controls = []; 
     225    this.errorDecorator =  new jFormsErrorDecoratorAlert(); 
     226    this.helpDecorator =  new jFormsHelpDecoratorAlert(); 
    212227} 
    213228 
     
    217232    }, 
    218233 
    219     setDecorator : function (decorator){ 
    220         this.decorator = decorator; 
     234    setErrorDecorator : function (decorator){ 
     235        this.errorDecorator = decorator; 
     236    }, 
     237 
     238    setHelpDecorator : function (decorator){ 
     239        this.helpDecorator = decorator; 
    221240    } 
    222241} 
     
    236255    this.errInvalid = ''; 
    237256    this.errRequired = ''; 
    238 
    239  
    240  
    241 /* 
    242 decorateur pour l'affichage des erreurs, sous forme d'alertes 
    243 */ 
     257    this.help=''; 
     258
     259 
     260 
     261/** 
     262 * Decorator to display errors in an alert dialog box 
     263 */ 
    244264function jFormsErrorDecoratorAlert(){ 
    245265    this.message = ''; 
     
    266286} 
    267287 
     288 
     289/** 
     290 * Decorator to display help messages in an alert dialog box 
     291 */ 
     292function jFormsHelpDecoratorAlert() { 
     293 
     294} 
     295jFormsHelpDecoratorAlert.prototype = { 
     296    show : function( message){ 
     297        alert(message); 
     298    } 
     299} 
     300 
  • trunk/lib/jelix-www/js/jforms.js

    r473 r522  
    1414 
    1515gForm = new jFormsForm('name');                         // create a form descriptor 
    16 gForm.setDecorator(new jFormsErrorDecoratorAlert());    // declare an error handler 
     16gForm.setErrorDecorator(new jFormsErrorDecoratorAlert());    // declare an error handler 
    1717 
    1818    // declare a form control 
     
    5353        var msg = ''; 
    5454        var valid = true; 
    55         f.decorator.start(); 
     55        f.errorDecorator.start(); 
    5656        for(var i =0; i < f.controls.length; i++){ 
    5757            var c = f.controls[i]; 
     
    5959            if(val == ''){ 
    6060                if(c.required){ 
    61                     f.decorator.addError(c, 1); 
     61                    f.errorDecorator.addError(c, 1); 
    6262                    valid = false; 
    6363                } 
     
    153153                } 
    154154                if(!ok){ 
    155                     f.decorator.addError(c, 2); 
     155                    f.errorDecorator.addError(c, 2); 
    156156                    valid = false; 
    157157                } 
     
    159159        } 
    160160        if(!valid) 
    161             f.decorator.end(); 
     161            f.errorDecorator.end(); 
    162162        return valid; 
    163163    }, 
     
    199199        } 
    200200        return value; 
     201    }, 
     202 
     203    showHelp : function(aForm, aControl){ 
     204        var frm = this._forms[aForm.name]; 
     205        var ctrls = frm.controls; 
     206        var ctrl = null; 
     207        for(var i=0; i < ctrls.length; i++){ 
     208            if (ctrls[i].name == aControl) { 
     209                ctrl = ctrls[i]; 
     210                break; 
     211            } 
     212        } 
     213        if (ctrl) { 
     214            frm.helpDecorator.show(ctrl.help); 
     215        } 
    201216    } 
    202  
    203217} 
    204218 
     
    208222function jFormsForm(name){ 
    209223    this.name = name; 
    210     this.controls = [] 
    211     this.decorator =  new jFormsErrorDecoratorAlert(); 
     224    this.controls = []; 
     225    this.errorDecorator =  new jFormsErrorDecoratorAlert(); 
     226    this.helpDecorator =  new jFormsHelpDecoratorAlert(); 
    212227} 
    213228 
     
    217232    }, 
    218233 
    219     setDecorator : function (decorator){ 
    220         this.decorator = decorator; 
     234    setErrorDecorator : function (decorator){ 
     235        this.errorDecorator = decorator; 
     236    }, 
     237 
     238    setHelpDecorator : function (decorator){ 
     239        this.helpDecorator = decorator; 
    221240    } 
    222241} 
     
    236255    this.errInvalid = ''; 
    237256    this.errRequired = ''; 
    238 
    239  
    240  
    241 /* 
    242 decorateur pour l'affichage des erreurs, sous forme d'alertes 
    243 */ 
     257    this.help=''; 
     258
     259 
     260 
     261/** 
     262 * Decorator to display errors in an alert dialog box 
     263 */ 
    244264function jFormsErrorDecoratorAlert(){ 
    245265    this.message = ''; 
     
    266286} 
    267287 
     288 
     289/** 
     290 * Decorator to display help messages in an alert dialog box 
     291 */ 
     292function jFormsHelpDecoratorAlert() { 
     293 
     294} 
     295jFormsHelpDecoratorAlert.prototype = { 
     296    show : function( message){ 
     297        alert(message); 
     298    } 
     299} 
     300 
  • trunk/lib/jelix/docs/ns/jforms-controls.rng

    r504 r522  
    66     <attribute name="ref" /> 
    77     <ref name="label" /> 
    8      <!--<zeroOrMore> 
    9         <choice> 
    10            <ref name="help" /> 
    11            <ref name="hint" /> 
    12            <ref name="alert" /> 
    13            <ref name="actions" /> 
    14         </choice> 
    15      </zeroOrMore>--> 
     8     <optional> 
     9        <ref name="help" /> 
     10     </optional> 
     11 
     12     <!-- 
     13     <optional> 
     14        <ref name="hint" /> 
     15     </optional> 
     16     <optional> 
     17        <ref name="alert" /> 
     18     </optional> 
     19     <optional> 
     20        <ref name="help" /> 
     21     </optional>--> 
    1622  </define> 
    1723  <!-- 
     
    307313  </define> 
    308314 
    309   <!-- 
     315  <define name="help"> 
     316     <element name="help"> 
     317        <ref name="message.content" /> 
     318     </element> 
     319  </define> 
     320<!-- 
    310321  <define name="hint"> 
    311322     <element name="hint"> 
     
    314325  </define> 
    315326 
    316   <define name="help"> 
    317      <element name="help"> 
    318         <ref name="message.content" /> 
    319      </element> 
    320   </define> 
    321  
    322327  <define name="alert"> 
    323328     <element name="alert"> 
     
    326331  </define> 
    327332--> 
    328  
    329  
    330333</grammar> 
  • trunk/lib/jelix/docs/ns/jforms-controls.rng

    r504 r522  
    66     <attribute name="ref" /> 
    77     <ref name="label" /> 
    8      <!--<zeroOrMore> 
    9         <choice> 
    10            <ref name="help" /> 
    11            <ref name="hint" /> 
    12            <ref name="alert" /> 
    13            <ref name="actions" /> 
    14         </choice> 
    15      </zeroOrMore>--> 
     8     <optional> 
     9        <ref name="help" /> 
     10     </optional> 
     11 
     12     <!-- 
     13     <optional> 
     14        <ref name="hint" /> 
     15     </optional> 
     16     <optional> 
     17        <ref name="alert" /> 
     18     </optional> 
     19     <optional> 
     20        <ref name="help" /> 
     21     </optional>--> 
    1622  </define> 
    1723  <!-- 
     
    307313  </define> 
    308314 
    309   <!-- 
     315  <define name="help"> 
     316     <element name="help"> 
     317        <ref name="message.content" /> 
     318     </element> 
     319  </define> 
     320<!-- 
    310321  <define name="hint"> 
    311322     <element name="hint"> 
     
    314325  </define> 
    315326 
    316   <define name="help"> 
    317      <element name="help"> 
    318         <ref name="message.content" /> 
    319      </element> 
    320   </define> 
    321  
    322327  <define name="alert"> 
    323328     <element name="alert"> 
     
    326331  </define> 
    327332--> 
    328  
    329  
    330333</grammar> 
  • trunk/lib/jelix/forms/jFormsBuilderBase.class.php

    r518 r522  
    9292        echo '<script type="text/javascript">  
    9393//<[CDATA[ 
    94 ', $this->getJavascriptCheck($params),' 
     94', $this->getJavascriptCheck($params[0],$params[1]),' 
    9595//]]> 
    9696</script>'; 
     
    251251            break; 
    252252        } 
    253     } 
    254  
    255  
    256     abstract public function getJavascriptCheck($params); 
     253 
     254        if ($ctrl->hasHelp) { 
     255            if($ctrl->type == 'checkboxes' || ($ctrl->type == 'listbox' && $ctrl->multiple)){ 
     256                $name=$ctrl->ref.'[]'; 
     257            }else{ 
     258                $name=$ctrl->ref; 
     259            } 
     260            echo '<span class="jforms-help"><a href="javascript:jForms.showHelp(\''. $this->_name.'\',\''.$name.'\')">?</a></span>'; 
     261        } 
     262    } 
     263 
     264 
     265    abstract public function getJavascriptCheck($errDecorator,$helpDecorator); 
    257266} 
    258267 
  • trunk/lib/jelix/forms/jFormsBuilderBase.class.php

    r518 r522  
    9292        echo '<script type="text/javascript">  
    9393//<[CDATA[ 
    94 ', $this->getJavascriptCheck($params),' 
     94', $this->getJavascriptCheck($params[0],$params[1]),' 
    9595//]]> 
    9696</script>'; 
     
    251251            break; 
    252252        } 
    253     } 
    254  
    255  
    256     abstract public function getJavascriptCheck($params); 
     253 
     254        if ($ctrl->hasHelp) { 
     255            if($ctrl->type == 'checkboxes' || ($ctrl->type == 'listbox' && $ctrl->multiple)){ 
     256                $name=$ctrl->ref.'[]'; 
     257            }else{ 
     258                $name=$ctrl->ref; 
     259            } 
     260            echo '<span class="jforms-help"><a href="javascript:jForms.showHelp(\''. $this->_name.'\',\''.$name.'\')">?</a></span>'; 
     261        } 
     262    } 
     263 
     264 
     265    abstract public function getJavascriptCheck($errDecorator,$helpDecorator); 
    257266} 
    258267 
  • trunk/lib/jelix/forms/jFormsCompiler.class.php

    r518 r522  
    6363      $srcjs=array(); 
    6464      $srcjs[]='$js="gForm = new jFormsForm(\'".$this->_name."\');\n";'; 
    65       $srcjs[]='$js.="gForm.setDecorator(new ".$errorDecoratorName."());\n";'; 
     65      $srcjs[]='$js.="gForm.setErrorDecorator(new ".$errorDecoratorName."());\n";'; 
     66      $srcjs[]='$js.="gForm.setHelpDecorator(new ".$helpDecoratorName."());\n";'; 
    6667      foreach($xml->children() as $controltype=>$control){ 
    6768            $source[] = $this->generatePHPControl($controltype, $control); 
     
    7778      $srcjs[]='$js.="jForms.declareForm(gForm);\n";'; 
    7879 
    79       $srcHtmlBuilder[]=' public function getJavascriptCheck($errorDecoratorName){'; 
     80      $srcHtmlBuilder[]=' public function getJavascriptCheck($errorDecoratorName, $helpDecoratorName){'; 
    8081      $srcHtmlBuilder[]= implode("\n", $srcjs); 
    8182      $srcHtmlBuilder[]=' return $js; }'; 
     
    109110 
    110111            $dt = (string)$control['type']; 
    111             if(!in_array(strtolower($dt), array('string','boolean','decimal','integer','hexadecimal','datetime','date','time','localedatetime','localedate','localetime', 'url','email','ipv4','ipv6'))){ 
     112            if(!in_array(strtolower($dt), array('string','boolean','decimal','integer','hexadecimal', 
     113                                                'datetime','date','time','localedatetime','localedate','localetime',  
     114                                                'url','email','ipv4','ipv6'))){ 
    112115               throw new jException('jelix~formserr.datatype.unknow',array($dt,$controltype,$this->sourceFile)); 
    113116            } 
     
    157160            $source[]='$ctrl->label=\''.str_replace("'","\\'",$label).'\';'; 
    158161        } 
     162        if(isset($control->help)){ 
     163            $source[]='$ctrl->hasHelp=true;'; 
     164        } 
     165 
    159166        // support of static datas or daos 
    160167        switch($controltype){ 
     
    277284        } 
    278285 
     286        if(isset($control->help)){ 
     287            if(isset($control->help['locale'])){ 
     288                $help='str_replace("\'","\\\'",jLocale::get(\''.(string)$control->help['locale'].'\'))'; 
     289            }else{ 
     290                $help='str_replace("\'","\\\'",\''.str_replace("'","\\'",(string)$control->help).'\')'; 
     291            } 
     292            $source[]='$js.="gControl.help=\'".'.$help.'."\';\n";'; 
     293        } 
     294 
    279295        $source[]='$js.="gControl.errRequired=\'".str_replace("\'","\\\'",jLocale::get(\'jelix~formserr.js.err.required\',$label))."\';\n";'; 
    280296        $source[]='$js.="gControl.errInvalid =\'".str_replace("\'","\\\'",jLocale::get(\'jelix~formserr.js.err.invalid\', $label))."\';\n";'; 
  • trunk/lib/jelix/forms/jFormsCompiler.class.php

    r518 r522  
    6363      $srcjs=array(); 
    6464      $srcjs[]='$js="gForm = new jFormsForm(\'".$this->_name."\');\n";'; 
    65       $srcjs[]='$js.="gForm.setDecorator(new ".$errorDecoratorName."());\n";'; 
     65      $srcjs[]='$js.="gForm.setErrorDecorator(new ".$errorDecoratorName."());\n";'; 
     66      $srcjs[]='$js.="gForm.setHelpDecorator(new ".$helpDecoratorName."());\n";'; 
    6667      foreach($xml->children() as $controltype=>$control){ 
    6768            $source[] = $this->generatePHPControl($controltype, $control); 
     
    7778      $srcjs[]='$js.="jForms.declareForm(gForm);\n";'; 
    7879 
    79       $srcHtmlBuilder[]=' public function getJavascriptCheck($errorDecoratorName){'; 
     80      $srcHtmlBuilder[]=' public function getJavascriptCheck($errorDecoratorName, $helpDecoratorName){'; 
    8081      $srcHtmlBuilder[]= implode("\n", $srcjs); 
    8182      $srcHtmlBuilder[]=' return $js; }'; 
     
    109110 
    110111            $dt = (string)$control['type']; 
    111             if(!in_array(strtolower($dt), array('string','boolean','decimal','integer','hexadecimal','datetime','date','time','localedatetime','localedate','localetime', 'url','email','ipv4','ipv6'))){ 
     112            if(!in_array(strtolower($dt), array('string','boolean','decimal','integer','hexadecimal', 
     113                                                'datetime','date','time','localedatetime','localedate','localetime',  
     114                                                'url','email','ipv4','ipv6'))){ 
    112115               throw new jException('jelix~formserr.datatype.unknow',array($dt,$controltype,$this->sourceFile)); 
    113116            } 
     
    157160            $source[]='$ctrl->label=\''.str_replace("'","\\'",$label).'\';'; 
    158161        } 
     162        if(isset($control->help)){ 
     163            $source[]='$ctrl->hasHelp=true;'; 
     164        } 
     165 
    159166        // support of static datas or daos 
    160167        switch($controltype){ 
     
    277284        } 
    278285 
     286        if(isset($control->help)){ 
     287            if(isset($control->help['locale'])){ 
     288                $help='str_replace("\'","\\\'",jLocale::get(\''.(string)$control->help['locale'].'\'))'; 
     289            }else{ 
     290                $help='str_replace("\'","\\\'",\''.str_replace("'","\\'",(string)$control->help).'\')'; 
     291            } 
     292            $source[]='$js.="gControl.help=\'".'.$help.'."\';\n";'; 
     293        } 
     294 
    279295        $source[]='$js.="gControl.errRequired=\'".str_replace("\'","\\\'",jLocale::get(\'jelix~formserr.js.err.required\',$label))."\';\n";'; 
    280296        $source[]='$js.="gControl.errInvalid =\'".str_replace("\'","\\\'",jLocale::get(\'jelix~formserr.js.err.invalid\', $label))."\';\n";'; 
  • trunk/lib/jelix/forms/jFormsControl.class.php

    r518 r522  
    2020   public $ref=''; 
    2121   public $datatype='string'; 
    22    public $required=false; 
    23    public $readonly=false; 
     22   public $required = false; 
     23   public $readonly = false; 
    2424   public $label=''; 
    2525   public $value=''; 
     26   public $hasHelp = false; 
    2627 
    2728   function __construct($ref){ 
  • trunk/lib/jelix/forms/jFormsControl.class.php

    r518 r522  
    2020   public $ref=''; 
    2121   public $datatype='string'; 
    22    public $required=false; 
    23    public $readonly=false; 
     22   public $required = false; 
     23   public $readonly = false; 
    2424   public $label=''; 
    2525   public $value=''; 
     26   public $hasHelp = false; 
    2627 
    2728   function __construct($ref){ 
  • trunk/lib/jelix/plugins/tpl/html/block.form.php

    r506 r522  
    2020 *                     2=>array of parameters for submit action  
    2121 *                     3=>name of your javascript object for error listener 
     22 *                     4=>name of your javascript object for help listener 
    2223 * @return string the php code corresponding to the begin or end of the block 
    2324 * @see jForms 
     
    4041    } 
    4142 
    42     if(isset($param[3])
     43    if(isset($param[3]) && $param[3] ! ''
    4344        $errdecorator = $param[3]; 
    4445    else 
    4546        $errdecorator = "'jFormsErrorDecoratorAlert'"; 
    4647 
     48    if(isset($param[4]) && $param[4] ! '') 
     49        $helpdecorator = $param[4]; 
     50    else 
     51        $helpdecorator = "'jFormsErrorDecoratorAlert'"; 
     52 
    4753    $content = ' $t->_privateVars[\'__form\'] = '.$param[0].'; 
    4854$t->_privateVars[\'__builder\'] = $t->_privateVars[\'__form\']->getBuilder(\'html\', '.$param[1].','.$param[2].'); 
    49 $t->_privateVars[\'__builder\']->outputHeader('.$errdecorator.'); 
     55$t->_privateVars[\'__builder\']->outputHeader(array('.$errdecorator.','.$helpdecorator.')); 
    5056if($GLOBALS[\'gJCoord\']->response!= null){ 
    5157    $GLOBALS[\'gJCoord\']->response->addJSLink($GLOBALS[\'gJConfig\']->urlengine[\'basePath\'].\'jelix/js/jforms.js\'); 
  • trunk/lib/jelix/plugins/tpl/html/block.form.php

    r506 r522  
    2020 *                     2=>array of parameters for submit action  
    2121 *                     3=>name of your javascript object for error listener 
     22 *                     4=>name of your javascript object for help listener 
    2223 * @return string the php code corresponding to the begin or end of the block 
    2324 * @see jForms 
     
    4041    } 
    4142 
    42     if(isset($param[3])
     43    if(isset($param[3]) && $param[3] ! ''
    4344        $errdecorator = $param[3]; 
    4445    else 
    4546        $errdecorator = "'jFormsErrorDecoratorAlert'"; 
    4647 
     48    if(isset($param[4]) && $param[4] ! '') 
     49        $helpdecorator = $param[4]; 
     50    else 
     51        $helpdecorator = "'jFormsErrorDecoratorAlert'"; 
     52 
    4753    $content = ' $t->_privateVars[\'__form\'] = '.$param[0].'; 
    4854$t->_privateVars[\'__builder\'] = $t->_privateVars[\'__form\']->getBuilder(\'html\', '.$param[1].','.$param[2].'); 
    49 $t->_privateVars[\'__builder\']->outputHeader('.$errdecorator.'); 
     55$t->_privateVars[\'__builder\']->outputHeader(array('.$errdecorator.','.$helpdecorator.')); 
    5056if($GLOBALS[\'gJCoord\']->response!= null){ 
    5157    $GLOBALS[\'gJCoord\']->response->addJSLink($GLOBALS[\'gJConfig\']->urlengine[\'basePath\'].\'jelix/js/jforms.js\'); 
  • trunk/testapp/modules/jelix_tests/tests/jforms.compiler.html.php

    r518 r522  
    192192    <selectedvalues> <value>bbb</value><value>aaa</value></selectedvalues> 
    193193</listbox>', 
     19442=>'<input ref="nom" xmlns="http://jelix.org/ns/forms/1.0"> 
     195    <label>Votre nom</label> 
     196    <help>vous devez indiquer votre nom</help> 
     197</input>', 
    194198    ); 
    195199 
     
    446450$ctrl->multiple=true; 
    447451$this->addControl($ctrl);', 
     45242=>'$ctrl= new jFormsControlinput(\'nom\'); 
     453$ctrl->datatype= new jDatatypeString(); 
     454$ctrl->label=\'Votre nom\'; 
     455$ctrl->hasHelp=true; 
     456$this->addControl($ctrl);', 
    448457); 
    449458 
     
    662671$js.="gControl.multiple = true;\n"; 
    663672$js.="gForm.addControl( gControl);\n";', 
     67342=>'$label = str_replace("\'","\\\'",\'Votre nom\'); 
     674$js.="gControl = new jFormsControl(\'nom\', \'".$label."\', \'string\');\n"; 
     675$js.="gControl.help=\'".str_replace("\'","\\\'",\'vous devez indiquer votre nom\')."\';\n"; 
     676$js.="gControl.errRequired=\'".str_replace("\'","\\\'",jLocale::get(\'jelix~formserr.js.err.required\',$label))."\';\n"; 
     677$js.="gControl.errInvalid =\'".str_replace("\'","\\\'",jLocale::get(\'jelix~formserr.js.err.invalid\', $label))."\';\n"; 
     678$js.="gForm.addControl( gControl);\n";', 
     679 
    664680    ); 
    665681 
  • trunk/testapp/modules/jelix_tests/tests/jforms.compiler.html.php

    r518 r522  
    192192    <selectedvalues> <value>bbb</value><value>aaa</value></selectedvalues> 
    193193</listbox>', 
     19442=>'<input ref="nom" xmlns="http://jelix.org/ns/forms/1.0"> 
     195    <label>Votre nom</label> 
     196    <help>vous devez indiquer votre nom</help> 
     197</input>', 
    194198    ); 
    195199 
     
    446450$ctrl->multiple=true; 
    447451$this->addControl($ctrl);', 
     45242=>'$ctrl= new jFormsControlinput(\'nom\'); 
     453$ctrl->datatype= new jDatatypeString(); 
     454$ctrl->label=\'Votre nom\'; 
     455$ctrl->hasHelp=true; 
     456$this->addControl($ctrl);', 
    448457); 
    449458 
     
    662671$js.="gControl.multiple = true;\n"; 
    663672$js.="gForm.addControl( gControl);\n";', 
     67342=>'$label = str_replace("\'","\\\'",\'Votre nom\'); 
     674$js.="gControl = new jFormsControl(\'nom\', \'".$label."\', \'string\');\n"; 
     675$js.="gControl.help=\'".str_replace("\'","\\\'",\'vous devez indiquer votre nom\')."\';\n"; 
     676$js.="gControl.errRequired=\'".str_replace("\'","\\\'",jLocale::get(\'jelix~formserr.js.err.required\',$label))."\';\n"; 
     677$js.="gControl.errInvalid =\'".str_replace("\'","\\\'",jLocale::get(\'jelix~formserr.js.err.invalid\', $label))."\';\n"; 
     678$js.="gForm.addControl( gControl);\n";', 
     679 
    664680    ); 
    665681 
  • trunk/testapp/modules/jelix_tests/tests/jforms.htmlbuilder.html.php

    r518 r522  
    2626 
    2727class testJFormsHtmlBuilder extends jFormsHtmlBuilderBase { 
    28     public function getJavascriptCheck($params){ 
     28    public function getJavascriptCheck($errDecorator,$helpDecorator){ 
    2929        return ''; 
    3030    } 
     
    4646        $formname = $builder->getName(); 
    4747        ob_start(); 
    48         $builder->outputHeader(''); 
     48        $builder->outputHeader(array('','')); 
    4949        $out = ob_get_clean(); 
    5050        $result ='<form action="/index.php" method="POST" name="'.$formname.'" onsubmit="return jForms.verifyForm(this)"><div><input type="hidden" name="module" value="jelix_tests"/> 
     
    6060        $formname = $builder->getName(); 
    6161        ob_start(); 
    62         $builder->outputHeader(''); 
     62        $builder->outputHeader(array('','')); 
    6363        $out = ob_get_clean(); 
    6464        $result ='<form action="/index.php" method="POST" name="'.$formname.'" onsubmit="return jForms.verifyForm(this)"><div><input type="hidden" name="foo" value="b&gt;ar"/> 
     
    100100        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    101101        $this->assertEqualOrDiff('<input type="text" name="nominconnu" id="'.$this->formname.'_nominconnu" value="toto"/>', $out); 
     102 
     103        $ctrl->hasHelp=true; 
     104        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     105        $this->assertEqualOrDiff('<input type="text" name="nominconnu" id="'.$this->formname.'_nominconnu" value="toto"/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. $this->formname.'\',\'nominconnu\')">?</a></span>', $out); 
     106 
    102107    } 
    103108    function testOutputCheckbox(){ 
  • trunk/testapp/modules/jelix_tests/tests/jforms.htmlbuilder.html.php

    r518 r522  
    2626 
    2727class testJFormsHtmlBuilder extends jFormsHtmlBuilderBase { 
    28     public function getJavascriptCheck($params){ 
     28    public function getJavascriptCheck($errDecorator,$helpDecorator){ 
    2929        return ''; 
    3030    } 
     
    4646        $formname = $builder->getName(); 
    4747        ob_start(); 
    48         $builder->outputHeader(''); 
     48        $builder->outputHeader(array('','')); 
    4949        $out = ob_get_clean(); 
    5050        $result ='<form action="/index.php" method="POST" name="'.$formname.'" onsubmit="return jForms.verifyForm(this)"><div><input type="hidden" name="module" value="jelix_tests"/> 
     
    6060        $formname = $builder->getName(); 
    6161        ob_start(); 
    62         $builder->outputHeader(''); 
     62        $builder->outputHeader(array('','')); 
    6363        $out = ob_get_clean(); 
    6464        $result ='<form action="/index.php" method="POST" name="'.$formname.'" onsubmit="return jForms.verifyForm(this)"><div><input type="hidden" name="foo" value="b&gt;ar"/> 
     
    100100        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    101101        $this->assertEqualOrDiff('<input type="text" name="nominconnu" id="'.$this->formname.'_nominconnu" value="toto"/>', $out); 
     102 
     103        $ctrl->hasHelp=true; 
     104        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     105        $this->assertEqualOrDiff('<input type="text" name="nominconnu" id="'.$this->formname.'_nominconnu" value="toto"/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. $this->formname.'\',\'nominconnu\')">?</a></span>', $out); 
     106 
    102107    } 
    103108    function testOutputCheckbox(){ 
Download in other formats: Unified Diff Zip Archive