Ticket #554: 554-jForms-jforms_js.diff

File 554-jForms-jforms_js.diff, 5.1 kB (added by Julien, 7 months ago)

Patch based on Martus' report

  • lib/jelix-www/js/jforms.js

    old new  
    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 
    1112/* 
     
    9394                        ok = (val.search(/^0x[a-f0-9A-F]+$/) != -1); 
    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); 
    99100                        var mm = parseInt(t[2],10) -1; 
    100101                        var dd = parseInt(t[3],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; 
    107110                        else 
     
    121124                        break; 
    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; 
    132137                        else 
     
    135140                    case 'localedatetime' : 
    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); 
    141146                            mm = parseInt(t[2],10) -1; 
    142147                            dd = parseInt(t[1],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); 
    151158                            mm = parseInt(t[1],10) -1; 
    152159                            dd = parseInt(t[2],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; 
    160169                        else 
Download in other formats: Original Format