Changeset 1033

Show
Ignore:
Timestamp:
07/20/08 01:32:06 (1 month ago)
Author:
laurentj
Message:

ticket #584: jforms: new emptyitem element on menulist to specify the label for the empty item when the menulist is not required

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/jelix/docs/ns/jforms_1.1.rng

    r1030 r1033  
    174174  <define name="menulist"> 
    175175     <element name="menulist"> 
    176        <ref name="control.common" /> 
    177        <ref name="control.list.common" /> 
     176       <interleave> 
     177            <ref name="control.common" /> 
     178            <ref name="control.list.common" /> 
     179            <optional><element name="emptyitem"><ref name="message.content" /></element></optional> 
     180        </interleave> 
    178181     </element> 
    179182  </define> 
     
    263266  <define name="control.common"> 
    264267     <attribute name="ref" /> 
    265      <ref name="label" /> 
    266      <optional> 
    267         <ref name="help" /> 
    268      </optional> 
    269      <optional> 
    270         <ref name="hint" /> 
    271      </optional> 
    272      <optional> 
    273         <ref name="alert" /> 
    274      </optional> 
     268     <interleave> 
     269        <ref name="label" /> 
     270        <optional> 
     271            <ref name="help" /> 
     272        </optional> 
     273        <optional> 
     274            <ref name="hint" /> 
     275        </optional> 
     276        <optional> 
     277            <ref name="alert" /> 
     278        </optional> 
     279     </interleave> 
    275280  </define> 
    276281 
  • trunk/lib/jelix/forms/jFormsCompiler_jf_1_1.class.php

    r1030 r1033  
    2626                                      'url','email','ipv4','ipv6','html'); 
    2727 
     28 
     29    protected function generateMenulist(&$source, $control, &$attributes) { 
     30        parent::generateMenulist($source, $control, $attributes); 
     31        if(isset($control->emptyitem)) { 
     32            if(isset($control->emptyitem['locale'])){ 
     33                $labellocale=(string)$control->emptyitem['locale']; 
     34                $source[]='$ctrl->emptyItemLabel=jLocale::get(\''.$labellocale.'\');'; 
     35            }else{ 
     36                $label= (string)$control->emptyitem; 
     37                $source[]='$ctrl->emptyItemLabel=\''.str_replace("'","\\'",$label).'\';'; 
     38            } 
     39        } 
     40        return false; 
     41    } 
     42 
    2843    protected function generateTextarea(&$source, $control, &$attributes) { 
    2944        if(isset($attributes['type'])){ 
  • trunk/lib/jelix/forms/jFormsControl.class.php

    r1030 r1033  
    517517    public $type="menulist"; 
    518518    public $defaultValue=''; 
     519    public $emptyItemLabel=''; 
    519520} 
    520521 
  • trunk/lib/jelix/plugins/jforms/html/html.jformsbuilder.php

    r1031 r1033  
    253253        } 
    254254        if (!$ctrl->required) { 
    255             echo '<option value=""',($value==''?' selected="selected"':''),'></option>'; 
     255            echo '<option value=""',($value==''?' selected="selected"':''),'>',htmlspecialchars($ctrl->emptyItemLabel),'</option>'; 
    256256        } 
    257257        foreach($ctrl->datasource->getData($this->_form) as $v=>$label){ 
  • trunk/testapp/modules/testapp/forms/sample.form.xml

    r1030 r1033  
    3434  <menulist ref="conf" > 
    3535      <datasource dao="testapp~config" method="findAll" labelproperty="cvalue" valueproperty="ckey" /> 
    36       <label>Selectionnez une des valeurs</label> 
     36      <label>Select one value</label> 
     37      <emptyitem>-- choices --</emptyitem> 
    3738  </menulist> 
    3839 
    3940  <listbox ref="home"> 
    40       <label>Vous habitez </label> 
     41      <label>You leave at</label> 
    4142      <item value="pa">Paris</item> 
    4243      <item value="ma">Marseille</item> 
Download in other formats: Unified Diff Zip Archive