Changeset 967

Show
Ignore:
Timestamp:
05/31/08 01:34:39 (6 months ago)
Author:
laurentj
Message:

jforms: <group> is now ok

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/experimental/jforms-groups/build/manifests/testapp.mn

    r920 r967  
    6363  sommaire.tpl 
    6464  sampleform.tpl 
     65  sampleformfull.tpl 
    6566  sampleformresult.tpl 
    6667  forms_edit.tpl 
  • branches/experimental/jforms-groups/build/manifests/testapp.mn

    r920 r967  
    6363  sommaire.tpl 
    6464  sampleform.tpl 
     65  sampleformfull.tpl 
    6566  sampleformresult.tpl 
    6667  forms_edit.tpl 
  • branches/experimental/jforms-groups/build/manifests/testapp.mn

    r920 r967  
    6363  sommaire.tpl 
    6464  sampleform.tpl 
     65  sampleformfull.tpl 
    6566  sampleformresult.tpl 
    6667  forms_edit.tpl 
  • branches/experimental/jforms-groups/build/manifests/testapp.mn

    r920 r967  
    6363  sommaire.tpl 
    6464  sampleform.tpl 
     65  sampleformfull.tpl 
    6566  sampleformresult.tpl 
    6667  forms_edit.tpl 
  • branches/experimental/jforms-groups/lib/jelix-www/js/jforms.js

    r914 r967  
    11/** 
    2 * @package    jelix 
    3 * @subpackage forms 
    4 * @author     Laurent Jouanneau 
    5 * @contributor 
    6 * @copyright   2007-2008 Laurent Jouanneau 
    7 * @link        http://www.jelix.org 
    8 * @licence    GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html 
     2* @package      jelix 
     3* @subpackage   forms 
     4* @author       Laurent Jouanneau 
     5* @contributor  Julien Issler 
     6* @copyright    2007-2008 Laurent Jouanneau 
     7* @copyright    2008 Julien Issler 
     8* @link         http://www.jelix.org 
     9* @licence      GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html 
    910*/ 
    1011 
     
    9495                        break; 
    9596                    case 'datetime' :  
    96                         var t = val.match(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/); 
     97                        var t = val.match(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    9798                        if(t == null){ ok=false; break; }; 
    9899                        var yy = parseInt(t[1],10); 
     
    101102                        var th = parseInt(t[4],10); 
    102103                        var tm = parseInt(t[5],10); 
    103                         var ts = parseInt(t[6],10); 
    104                         var dt = new Date(yy,mm,dd,th,tn,ts); 
     104                        var ts = 0; 
     105                        if(t[7] != null) 
     106                            ts = parseInt(t[7],10); 
     107                        var dt = new Date(yy,mm,dd,th,tm,ts); 
    105108                        if(yy != dt.getFullYear() || mm != dt.getMonth() || dd != dt.getDate() || th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    106109                            ok = false; 
     
    122125                    case 'localetime' : 
    123126                    case 'time' : 
    124                         var t = val.match(/^(\d{2}):(\d{2}):(\d{2})$/); 
     127                        var t = val.match(/^(\d{2}):(\d{2})(:(\d{2}))?$/); 
    125128                        if(t == null){ ok=false; break; }; 
    126                         var th = parseInt(t[4],10); 
    127                         var tm = parseInt(t[5],10); 
    128                         var ts = parseInt(t[6],10); 
    129                         var dt = new Date(2007,05,02,th,tn,ts); 
     129                        var th = parseInt(t[1],10); 
     130                        var tm = parseInt(t[2],10); 
     131                        var ts = 0; 
     132                        if(t[4] != null) 
     133                            ts = parseInt(t[4],10); 
     134                        var dt = new Date(2007,05,02,th,tm,ts); 
    130135                        if(th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    131136                            ok = false; 
     
    136141                        var yy, mm, dd, th, tm, ts; 
    137142                        if(c.lang.indexOf('fr_') == 0) { 
    138                             var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})$/); 
     143                            var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    139144                            if(t == null){ ok=false; break; } 
    140145                            yy = parseInt(t[3],10); 
     
    143148                            th = parseInt(t[4],10); 
    144149                            tm = parseInt(t[5],10); 
    145                             ts = parseInt(t[6],10); 
     150                            ts = 0; 
     151                            if(t[7] != null) 
     152                                ts = parseInt(t[7],10); 
    146153                        }else{ 
    147154                            //default is en_* format 
    148                             var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})$/); 
     155                            var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    149156                            if(t == null){ ok=false; break; } 
    150157                            yy = parseInt(t[3],10); 
     
    153160                            th = parseInt(t[4],10); 
    154161                            tm = parseInt(t[5],10); 
    155                             ts = parseInt(t[6],10); 
     162                            ts = 0; 
     163                            if(t[7] != null) 
     164                                ts = parseInt(t[7],10); 
    156165                        } 
    157                         var dt = new Date(yy,mm,dd,th,tn,ts); 
     166                        var dt = new Date(yy,mm,dd,th,tm,ts); 
    158167                        if(yy != dt.getFullYear() || mm != dt.getMonth() || dd != dt.getDate() || th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    159168                            ok = false; 
  • branches/experimental/jforms-groups/lib/jelix-www/js/jforms.js

    r914 r967  
    11/** 
    2 * @package    jelix 
    3 * @subpackage forms 
    4 * @author     Laurent Jouanneau 
    5 * @contributor 
    6 * @copyright   2007-2008 Laurent Jouanneau 
    7 * @link        http://www.jelix.org 
    8 * @licence    GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html 
     2* @package      jelix 
     3* @subpackage   forms 
     4* @author       Laurent Jouanneau 
     5* @contributor  Julien Issler 
     6* @copyright    2007-2008 Laurent Jouanneau 
     7* @copyright    2008 Julien Issler 
     8* @link         http://www.jelix.org 
     9* @licence      GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html 
    910*/ 
    1011 
     
    9495                        break; 
    9596                    case 'datetime' :  
    96                         var t = val.match(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/); 
     97                        var t = val.match(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    9798                        if(t == null){ ok=false; break; }; 
    9899                        var yy = parseInt(t[1],10); 
     
    101102                        var th = parseInt(t[4],10); 
    102103                        var tm = parseInt(t[5],10); 
    103                         var ts = parseInt(t[6],10); 
    104                         var dt = new Date(yy,mm,dd,th,tn,ts); 
     104                        var ts = 0; 
     105                        if(t[7] != null) 
     106                            ts = parseInt(t[7],10); 
     107                        var dt = new Date(yy,mm,dd,th,tm,ts); 
    105108                        if(yy != dt.getFullYear() || mm != dt.getMonth() || dd != dt.getDate() || th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    106109                            ok = false; 
     
    122125                    case 'localetime' : 
    123126                    case 'time' : 
    124                         var t = val.match(/^(\d{2}):(\d{2}):(\d{2})$/); 
     127                        var t = val.match(/^(\d{2}):(\d{2})(:(\d{2}))?$/); 
    125128                        if(t == null){ ok=false; break; }; 
    126                         var th = parseInt(t[4],10); 
    127                         var tm = parseInt(t[5],10); 
    128                         var ts = parseInt(t[6],10); 
    129                         var dt = new Date(2007,05,02,th,tn,ts); 
     129                        var th = parseInt(t[1],10); 
     130                        var tm = parseInt(t[2],10); 
     131                        var ts = 0; 
     132                        if(t[4] != null) 
     133                            ts = parseInt(t[4],10); 
     134                        var dt = new Date(2007,05,02,th,tm,ts); 
    130135                        if(th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    131136                            ok = false; 
     
    136141                        var yy, mm, dd, th, tm, ts; 
    137142                        if(c.lang.indexOf('fr_') == 0) { 
    138                             var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})$/); 
     143                            var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    139144                            if(t == null){ ok=false; break; } 
    140145                            yy = parseInt(t[3],10); 
     
    143148                            th = parseInt(t[4],10); 
    144149                            tm = parseInt(t[5],10); 
    145                             ts = parseInt(t[6],10); 
     150                            ts = 0; 
     151                            if(t[7] != null) 
     152                                ts = parseInt(t[7],10); 
    146153                        }else{ 
    147154                            //default is en_* format 
    148                             var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})$/); 
     155                            var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    149156                            if(t == null){ ok=false; break; } 
    150157                            yy = parseInt(t[3],10); 
     
    153160                            th = parseInt(t[4],10); 
    154161                            tm = parseInt(t[5],10); 
    155                             ts = parseInt(t[6],10); 
     162                            ts = 0; 
     163                            if(t[7] != null) 
     164                                ts = parseInt(t[7],10); 
    156165                        } 
    157                         var dt = new Date(yy,mm,dd,th,tn,ts); 
     166                        var dt = new Date(yy,mm,dd,th,tm,ts); 
    158167                        if(yy != dt.getFullYear() || mm != dt.getMonth() || dd != dt.getDate() || th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    159168                            ok = false; 
  • branches/experimental/jforms-groups/lib/jelix-www/js/jforms.js

    r914 r967  
    11/** 
    2 * @package    jelix 
    3 * @subpackage forms 
    4 * @author     Laurent Jouanneau 
    5 * @contributor 
    6 * @copyright   2007-2008 Laurent Jouanneau 
    7 * @link        http://www.jelix.org 
    8 * @licence    GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html 
     2* @package      jelix 
     3* @subpackage   forms 
     4* @author       Laurent Jouanneau 
     5* @contributor  Julien Issler 
     6* @copyright    2007-2008 Laurent Jouanneau 
     7* @copyright    2008 Julien Issler 
     8* @link         http://www.jelix.org 
     9* @licence      GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html 
    910*/ 
    1011 
     
    9495                        break; 
    9596                    case 'datetime' :  
    96                         var t = val.match(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/); 
     97                        var t = val.match(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    9798                        if(t == null){ ok=false; break; }; 
    9899                        var yy = parseInt(t[1],10); 
     
    101102                        var th = parseInt(t[4],10); 
    102103                        var tm = parseInt(t[5],10); 
    103                         var ts = parseInt(t[6],10); 
    104                         var dt = new Date(yy,mm,dd,th,tn,ts); 
     104                        var ts = 0; 
     105                        if(t[7] != null) 
     106                            ts = parseInt(t[7],10); 
     107                        var dt = new Date(yy,mm,dd,th,tm,ts); 
    105108                        if(yy != dt.getFullYear() || mm != dt.getMonth() || dd != dt.getDate() || th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    106109                            ok = false; 
     
    122125                    case 'localetime' : 
    123126                    case 'time' : 
    124                         var t = val.match(/^(\d{2}):(\d{2}):(\d{2})$/); 
     127                        var t = val.match(/^(\d{2}):(\d{2})(:(\d{2}))?$/); 
    125128                        if(t == null){ ok=false; break; }; 
    126                         var th = parseInt(t[4],10); 
    127                         var tm = parseInt(t[5],10); 
    128                         var ts = parseInt(t[6],10); 
    129                         var dt = new Date(2007,05,02,th,tn,ts); 
     129                        var th = parseInt(t[1],10); 
     130                        var tm = parseInt(t[2],10); 
     131                        var ts = 0; 
     132                        if(t[4] != null) 
     133                            ts = parseInt(t[4],10); 
     134                        var dt = new Date(2007,05,02,th,tm,ts); 
    130135                        if(th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    131136                            ok = false; 
     
    136141                        var yy, mm, dd, th, tm, ts; 
    137142                        if(c.lang.indexOf('fr_') == 0) { 
    138                             var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})$/); 
     143                            var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    139144                            if(t == null){ ok=false; break; } 
    140145                            yy = parseInt(t[3],10); 
     
    143148                            th = parseInt(t[4],10); 
    144149                            tm = parseInt(t[5],10); 
    145                             ts = parseInt(t[6],10); 
     150                            ts = 0; 
     151                            if(t[7] != null) 
     152                                ts = parseInt(t[7],10); 
    146153                        }else{ 
    147154                            //default is en_* format 
    148                             var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})$/); 
     155                            var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    149156                            if(t == null){ ok=false; break; } 
    150157                            yy = parseInt(t[3],10); 
     
    153160                            th = parseInt(t[4],10); 
    154161                            tm = parseInt(t[5],10); 
    155                             ts = parseInt(t[6],10); 
     162                            ts = 0; 
     163                            if(t[7] != null) 
     164                                ts = parseInt(t[7],10); 
    156165                        } 
    157                         var dt = new Date(yy,mm,dd,th,tn,ts); 
     166                        var dt = new Date(yy,mm,dd,th,tm,ts); 
    158167                        if(yy != dt.getFullYear() || mm != dt.getMonth() || dd != dt.getDate() || th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    159168                            ok = false; 
  • branches/experimental/jforms-groups/lib/jelix-www/js/jforms.js

    r914 r967  
    11/** 
    2 * @package    jelix 
    3 * @subpackage forms 
    4 * @author     Laurent Jouanneau 
    5 * @contributor 
    6 * @copyright   2007-2008 Laurent Jouanneau 
    7 * @link        http://www.jelix.org 
    8 * @licence    GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html 
     2* @package      jelix 
     3* @subpackage   forms 
     4* @author       Laurent Jouanneau 
     5* @contributor  Julien Issler 
     6* @copyright    2007-2008 Laurent Jouanneau 
     7* @copyright    2008 Julien Issler 
     8* @link         http://www.jelix.org 
     9* @licence      GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html 
    910*/ 
    1011 
     
    9495                        break; 
    9596                    case 'datetime' :  
    96                         var t = val.match(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/); 
     97                        var t = val.match(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    9798                        if(t == null){ ok=false; break; }; 
    9899                        var yy = parseInt(t[1],10); 
     
    101102                        var th = parseInt(t[4],10); 
    102103                        var tm = parseInt(t[5],10); 
    103                         var ts = parseInt(t[6],10); 
    104                         var dt = new Date(yy,mm,dd,th,tn,ts); 
     104                        var ts = 0; 
     105                        if(t[7] != null) 
     106                            ts = parseInt(t[7],10); 
     107                        var dt = new Date(yy,mm,dd,th,tm,ts); 
    105108                        if(yy != dt.getFullYear() || mm != dt.getMonth() || dd != dt.getDate() || th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    106109                            ok = false; 
     
    122125                    case 'localetime' : 
    123126                    case 'time' : 
    124                         var t = val.match(/^(\d{2}):(\d{2}):(\d{2})$/); 
     127                        var t = val.match(/^(\d{2}):(\d{2})(:(\d{2}))?$/); 
    125128                        if(t == null){ ok=false; break; }; 
    126                         var th = parseInt(t[4],10); 
    127                         var tm = parseInt(t[5],10); 
    128                         var ts = parseInt(t[6],10); 
    129                         var dt = new Date(2007,05,02,th,tn,ts); 
     129                        var th = parseInt(t[1],10); 
     130                        var tm = parseInt(t[2],10); 
     131                        var ts = 0; 
     132                        if(t[4] != null) 
     133                            ts = parseInt(t[4],10); 
     134                        var dt = new Date(2007,05,02,th,tm,ts); 
    130135                        if(th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    131136                            ok = false; 
     
    136141                        var yy, mm, dd, th, tm, ts; 
    137142                        if(c.lang.indexOf('fr_') == 0) { 
    138                             var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})$/); 
     143                            var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    139144                            if(t == null){ ok=false; break; } 
    140145                            yy = parseInt(t[3],10); 
     
    143148                            th = parseInt(t[4],10); 
    144149                            tm = parseInt(t[5],10); 
    145                             ts = parseInt(t[6],10); 
     150                            ts = 0; 
     151                            if(t[7] != null) 
     152                                ts = parseInt(t[7],10); 
    146153                        }else{ 
    147154                            //default is en_* format 
    148                             var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})$/); 
     155                            var t = val.match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})(:(\d{2}))?$/); 
    149156                            if(t == null){ ok=false; break; } 
    150157                            yy = parseInt(t[3],10); 
     
    153160                            th = parseInt(t[4],10); 
    154161                            tm = parseInt(t[5],10); 
    155                             ts = parseInt(t[6],10); 
     162                            ts = 0; 
     163                            if(t[7] != null) 
     164                                ts = parseInt(t[7],10); 
    156165                        } 
    157                         var dt = new Date(yy,mm,dd,th,tn,ts); 
     166                        var dt = new Date(yy,mm,dd,th,tm,ts); 
    158167                        if(yy != dt.getFullYear() || mm != dt.getMonth() || dd != dt.getDate() || th != dt.getHours() || tm != dt.getMinutes() || ts != dt.getSeconds()) 
    159168                            ok = false; 
  • branches/experimental/jforms-groups/lib/jelix/plugins/jforms/html/html.jformsbuilder.php

    r926 r967  
    359359 
    360360    protected function outputGroup($ctrl, $id, $class, $readonly, $hint) { 
    361         echo '<fieldset><legend>',htmlspecialchars($ctrl->label),'</legend>',"\n"; 
    362         echo '<table class="jforms-table-group" border="0">'
     361        echo '<fieldset><legend>',htmlspecialchars($ctrl->label),"</legend>\n"; 
     362        echo '<table class="jforms-table-group" border="0">',"\n"
    363363        foreach( $ctrl->getChildControls() as $ctrlref=>$c){ 
    364364            if($c->type == 'submit' || $c->type == 'reset' || $c->type == 'hidden') continue; 
     
    366366            echo '<tr><th scope="row">'; 
    367367            $this->outputControlLabel($c); 
    368             echo '</th><td>'
     368            echo "</th>\n<td>"
    369369            $this->outputControl($c); 
    370             echo '</td></tr>'
    371         } 
    372         echo '</table></fieldset>'
     370            echo "</td></tr>\n"
     371        } 
     372        echo "</table></fieldset>"
    373373    } 
    374374 
  • branches/experimental/jforms-groups/lib/jelix/plugins/jforms/html/html.jformsbuilder.php

    r926 r967  
    359359 
    360360    protected function outputGroup($ctrl, $id, $class, $readonly, $hint) { 
    361         echo '<fieldset><legend>',htmlspecialchars($ctrl->label),'</legend>',"\n"; 
    362         echo '<table class="jforms-table-group" border="0">'
     361        echo '<fieldset><legend>',htmlspecialchars($ctrl->label),"</legend>\n"; 
     362        echo '<table class="jforms-table-group" border="0">',"\n"
    363363        foreach( $ctrl->getChildControls() as $ctrlref=>$c){ 
    364364            if($c->type == 'submit' || $c->type == 'reset' || $c->type == 'hidden') continue; 
     
    366366            echo '<tr><th scope="row">'; 
    367367            $this->outputControlLabel($c); 
    368             echo '</th><td>'
     368            echo "</th>\n<td>"
    369369            $this->outputControl($c); 
    370             echo '</td></tr>'
    371         } 
    372         echo '</table></fieldset>'
     370            echo "</td></tr>\n"
     371        } 
     372        echo "</table></fieldset>"
    373373    } 
    374374 
  • branches/experimental/jforms-groups/lib/jelix/plugins/jforms/html/html.jformsbuilder.php

    r926 r967  
    359359 
    360360    protected function outputGroup($ctrl, $id, $class, $readonly, $hint) { 
    361         echo '<fieldset><legend>',htmlspecialchars($ctrl->label),'</legend>',"\n"; 
    362         echo '<table class="jforms-table-group" border="0">'
     361        echo '<fieldset><legend>',htmlspecialchars($ctrl->label),"</legend>\n"; 
     362        echo '<table class="jforms-table-group" border="0">',"\n"
    363363        foreach( $ctrl->getChildControls() as $ctrlref=>$c){ 
    364364            if($c->type == 'submit' || $c->type == 'reset' || $c->type == 'hidden') continue; 
     
    366366            echo '<tr><th scope="row">'; 
    367367            $this->outputControlLabel($c); 
    368             echo '</th><td>'
     368            echo "</th>\n<td>"
    369369            $this->outputControl($c); 
    370             echo '</td></tr>'
    371         } 
    372         echo '</table></fieldset>'
     370            echo "</td></tr>\n"
     371        } 
     372        echo "</table></fieldset>"
    373373    } 
    374374 
  • branches/experimental/jforms-groups/lib/jelix/plugins/jforms/html/html.jformsbuilder.php

    r926 r967  
    359359 
    360360    protected function outputGroup($ctrl, $id, $class, $readonly, $hint) { 
    361         echo '<fieldset><legend>',htmlspecialchars($ctrl->label),'</legend>',"\n"; 
    362         echo '<table class="jforms-table-group" border="0">'
     361        echo '<fieldset><legend>',htmlspecialchars($ctrl->label),"</legend>\n"; 
     362        echo '<table class="jforms-table-group" border="0">',"\n"
    363363        foreach( $ctrl->getChildControls() as $ctrlref=>$c){ 
    364364            if($c->type == 'submit' || $c->type == 'reset' || $c->type == 'hidden') continue; 
     
    366366            echo '<tr><th scope="row">'; 
    367367            $this->outputControlLabel($c); 
    368             echo '</th><td>'
     368            echo "</th>\n<td>"
    369369            $this->outputControl($c); 
    370             echo '</td></tr>'
    371         } 
    372         echo '</table></fieldset>'
     370            echo "</td></tr>\n"
     371        } 
     372        echo "</table></fieldset>"
    373373    } 
    374374 
  • branches/experimental/jforms-groups/testapp/modules/jelix_tests/tests/jforms.htmlbuilder2.html_cli.php

    r920 r967  
    3030    protected $container; 
    3131    protected $builder; 
     32    protected $formname; 
     33 
    3234    function testStart() { 
    3335        $this->container = new jFormsDataContainer('formtest',''); 
    3436        $this->form = new testHMLForm2('formtest', $this->container, true ); 
    3537        $this->builder = new testJFormsHtmlBuilder2($this->form); 
    36  
     38        $this->formname = $this->builder->getName(); 
    3739    } 
    3840 
    3941    function testOutputGroup(){ 
    4042 
     43        $group= new jFormsControlgroup('identity'); 
     44        $group->label='Your identity'; 
     45 
     46        $ctrl= new jFormsControlinput('nom'); 
     47        $ctrl->required=true; 
     48        $ctrl->label='Your name'; 
     49        $group->addChildControl($ctrl); 
     50 
     51        $ctrl= new jFormsControlinput('prenom'); 
     52        $ctrl->defaultValue='robert'; 
     53        $ctrl->label='Your firstname'; 
     54        $group->addChildControl($ctrl); 
     55 
     56        $ctrl= new jFormsControlradiobuttons('sexe'); 
     57        $ctrl->required=true; 
     58        $ctrl->label='Vous êtes '; 
     59        $ctrl->alertRequired='Vous devez indiquer le sexe, même si vous ne savez pas :-)'; 
     60        $ctrl->datasource= new jFormsStaticDatasource(); 
     61        $ctrl->datasource->data = array( 
     62        'h'=>'un homme', 
     63        'f'=>'une femme', 
     64        'no'=>'je ne sais pas', 
     65        ); 
     66        $group->addChildControl($ctrl); 
     67 
     68        $ctrl= new jFormsControlinput('mail'); 
     69        $ctrl->datatype= new jDatatypeemail(); 
     70        $ctrl->label='Votre mail'; 
     71        $group->addChildControl($ctrl); 
     72 
     73        $this->form->addControl($group); 
     74 
     75 
     76        ob_start();$this->builder->outputControlLabel($group);$out = ob_get_clean(); 
     77        $this->assertEqualOrDiff('', $out); 
     78 
     79 
     80        $expected = '<fieldset><legend>Your identity</legend>'."\n"; 
     81        $expected .= '<table class="jforms-table-group" border="0">'."\n"; 
     82        $expected .= '<tr><th scope="row"><label class="jforms-label jforms-required" for="'.$this->formname.'_nom">Your name</label></th>'."\n"; 
     83        $expected .= '<td><input type="text" name="nom" id="'.$this->formname.'_nom" class=" jforms-required" value=""/></td></tr>'."\n"; 
     84        $expected .= '<tr><th scope="row"><label class="jforms-label" for="'.$this->formname.'_prenom">Your firstname</label></th>'."\n"; 
     85        $expected .= '<td><input type="text" name="prenom" id="'.$this->formname.'_prenom" value="robert"/></td></tr>'."\n"; 
     86        $expected .= '<tr><th scope="row"><span class="jforms-label jforms-required">Vous êtes </span></th>'."\n"; 
     87        $expected .= '<td><span class="jforms-radio jforms-ctl-sexe"><input type="radio" name="sexe" id="'.$this->formname.'_sexe_0" value="h" class=" jforms-required"/><label for="'.$this->formname.'_sexe_0">un homme</label></span>'; 
     88        $expected .= '<span class="jforms-radio jforms-ctl-sexe"><input type="radio" name="sexe" id="'.$this->formname.'_sexe_1" value="f" class=" jforms-required"/><label for="'.$this->formname.'_sexe_1">une femme</label></span>'; 
     89        $expected .= '<span class="jforms-radio jforms-ctl-sexe"><input type="radio" name="sexe" id="'.$this->formname.'_sexe_2" value="no" class=" jforms-required"/><label for="'.$this->formname.'_sexe_2">je ne sais pas</label></span></td></tr>'."\n"; 
     90        $expected .= '<tr><th scope="row"><label class="jforms-label" for="'.$this->formname.'_mail">Votre mail</label></th>'."\n"; 
     91        $expected .= '<td><input type="text" name="mail" id="'.$this->formname.'_mail" value=""/></td></tr>'."\n</table></fieldset>"; 
     92 
     93 
     94        ob_start();$this->builder->outputControl($group);$out = ob_get_clean(); 
     95        $this->assertEqualOrDiff($expected, $out); 
     96 
     97        $group->setReadOnly(true); 
     98        $expected = '<fieldset><legend>Your identity</legend>'."\n"; 
     99        $expected .= '<table class="jforms-table-group" border="0">'."\n"; 
     100        $expected .= '<tr><th scope="row"><label class="jforms-label" for="'.$this->formname.'_nom">Your name</label></th>'."\n"; 
     101        $expected .= '<td><input type="text" name="nom" id="'.$this->formname.'_nom" readonly="readonly" value=""/></td></tr>'."\n"; 
     102        $expected .= '<tr><th scope="row"><label class="jforms-label" for="'.$this->formname.'_prenom">Your firstname</label></th>'."\n"; 
     103        $expected .= '<td><input type="text" name="prenom" id="'.$this->formname.'_prenom" readonly="readonly" value="robert"/></td></tr>'."\n"; 
     104        $expected .= '<tr><th scope="row"><span class="jforms-label">Vous êtes </span></th>'."\n"; 
     105        $expected .= '<td><span class="jforms-radio jforms-ctl-sexe"><input type="radio" name="sexe" id="'.$this->formname.'_sexe_0" value="h" readonly="readonly"/><label for="'.$this->formname.'_sexe_0">un homme</label></span>'; 
     106        $expected .= '<span class="jforms-radio jforms-ctl-sexe"><input type="radio" name="sexe" id="'.$this->formname.'_sexe_1" value="f" readonly="readonly"/><label for="'.$this->formname.'_sexe_1">une femme</label></span>'; 
     107        $expected .= '<span class="jforms-radio jforms-ctl-sexe"><input type="radio" name="sexe" id="'.$this->formname.'_sexe_2" value="no" readonly="readonly"/><label for="'.$this->formname.'_sexe_2">je ne sais pas</label></span></td></tr>'."\n"; 
     108        $expected .= '<tr><th scope="row"><label class="jforms-label" for="'.$this->formname.'_mail">Votre mail</label></th>'."\n"; 
     109        $expected .= '<td><input type="text" name="mail" id="'.$this->formname.'_mail" readonly="readonly" value=""/></td></tr>'."\n</table></fieldset>"; 
     110        ob_start();$this->builder->outputControl($group);$out = ob_get_clean(); 
     111        $this->assertEqualOrDiff($expected, $out); 
     112 
    41113    } 
    42  
    43114} 
    44115 
  • branches/experimental/jforms-groups/testapp/modules/jelix_tests/tests/jforms.htmlbuilder2.html_cli.php

    r920 r967  
    3030    protected $container; 
    3131    protected $builder; 
     32    protected $formname; 
     33 
    3234    function testStart() { 
    3335        $this->container = new jFormsDataContainer('formtest',''); 
    3436        $this->form = new testHMLForm2('formtest', $this->container, true ); 
    3537        $this->builder = new testJFormsHtmlBuilder2($this->form); 
    36  
     38        $this->formname = $this->builder->getName(); 
    3739    } 
    3840 
    3941    function testOutputGroup(){ 
    4042 
     43        $group= new jFormsControlgroup('identity'); 
     44        $group->label='Your identity'; 
     45 
     46        $ctrl= new jFormsControlinput('nom'); 
     47        $ctrl->required=true; 
     48        $ctrl->label='Your name'; 
     49        $group->addChildControl($ctrl); 
     50 
     51        $ctrl= new jFormsControlinput('prenom'); 
     52        $ctrl->defaultValue='robert'; 
     53        $ctrl->label='Your firstname'; 
     54        $group->addChildControl($ctrl); 
     55 
     56        $ctrl= new jFormsControlradiobuttons('sexe'); 
     57        $ctrl->required=true; 
     58        $ctrl->label='Vous êtes '; 
     59        $ctrl->alertRequired='Vous devez indiquer le sexe, même si vous ne savez pas :-)'; 
     60        $ctrl->datasource= new jFormsStaticDatasource(); 
     61        $ctrl->datasource->data = array( 
     62        'h'=>'un homme', 
     63        'f'=>'une femme', 
     64        'no'=>'je ne sais pas', 
     65        ); 
     66        $group->addChildControl($ctrl); 
     67 
     68        $ctrl= new jFormsControlinput('mail'); 
     69        $ctrl->datatype= new jDatatypeemail(); 
     70        $ctrl->label='Votre mail'; 
     71        $group->addChildControl($ctrl); 
     72 
     73        $this->form->addControl($group); 
     74 
     75 
     76        ob_start();$this->builder->outputControlLabel($group);$out = ob_get_clean(); 
     77        $this->assertEqualOrDiff('', $out); 
     78 
     79 
     80        $expected = '<fieldset><legend>Your identity</legend>'."\n"; 
     81        $expected .= '<table class="jforms-table-group" border="0">'."\n"; 
     82        $expected .= '<tr><th scope="row"><label class="jforms-label jforms-required" for="'.$this->formname.'_nom">Your name</label></th>'."\n"; 
     83        $expected .= '<td><input type="text" name="nom" id="'.$this->formname.'_nom" class=" jforms-required" value=""/></td></tr>'."\n"; 
     84        $expected .= '<tr><th scope="row"><label class="jforms-label" for="'.$this->formname.'_prenom">Your firstname</label></th>'."\n"; 
     85        $expected .= '<td><input type="text" name="prenom" id="'.$this->formname.'_prenom" value="robert"/></td></tr>'."\n"; 
     86        $expected .= '<tr><th scope="row"><span class="jforms-label jforms-requi