1
1
/*
2
2
* jQuery timepicker addon
3
3
* By: Trent Richardson [http://trentrichardson.com]
4
- * Version 1.1.1
5
- * Last Modified: 11/07/2012
4
+ * Version 1.1.2
5
+ * Last Modified: 01/19/2013
6
6
*
7
7
* Copyright 2012 Trent Richardson
8
8
* You may use this project under MIT or GPL licenses.
27
27
*/
28
28
$ . extend ( $ . ui , {
29
29
timepicker : {
30
- version : "1.1.1 "
30
+ version : "1.1.2 "
31
31
}
32
32
} ) ;
33
33
237
237
}
238
238
239
239
tp_inst . timezone = tp_inst . _defaults . timezone ;
240
- tp_inst . hour = tp_inst . _defaults . hour ;
241
- tp_inst . minute = tp_inst . _defaults . minute ;
242
- tp_inst . second = tp_inst . _defaults . second ;
243
- tp_inst . millisec = tp_inst . _defaults . millisec ;
240
+ tp_inst . hour = tp_inst . _defaults . hour < tp_inst . _defaults . hourMin ? tp_inst . _defaults . hourMin :
241
+ tp_inst . _defaults . hour > tp_inst . _defaults . hourMax ? tp_inst . _defaults . hourMax : tp_inst . _defaults . hour ;
242
+ tp_inst . minute = tp_inst . _defaults . minute < tp_inst . _defaults . minuteMin ? tp_inst . _defaults . minuteMin :
243
+ tp_inst . _defaults . minute > tp_inst . _defaults . minuteMax ? tp_inst . _defaults . minuteMax : tp_inst . _defaults . minute ;
244
+ tp_inst . second = tp_inst . _defaults . second < tp_inst . _defaults . secondMin ? tp_inst . _defaults . secondMin :
245
+ tp_inst . _defaults . second > tp_inst . _defaults . secondMax ? tp_inst . _defaults . secondMax : tp_inst . _defaults . second ;
246
+ tp_inst . millisec = tp_inst . _defaults . millisec < tp_inst . _defaults . millisecMin ? tp_inst . _defaults . millisecMin :
247
+ tp_inst . _defaults . millisec > tp_inst . _defaults . millisecMax ? tp_inst . _defaults . millisecMax : tp_inst . _defaults . millisec ;
244
248
tp_inst . ampm = '' ;
245
249
tp_inst . $input = $input ;
246
250
396
400
for ( var i = 0 , l = tp_inst . units . length ; i < l ; i ++ ) {
397
401
litem = tp_inst . units [ i ] ;
398
402
uitem = litem . substr ( 0 , 1 ) . toUpperCase ( ) + litem . substr ( 1 ) ;
399
-
403
+
400
404
// add the slider
401
405
tp_inst [ litem + '_slider' ] = tp_inst . control . create ( tp_inst , $tp . find ( '.ui_tpicker_' + litem + '_slider' ) , litem , tp_inst [ litem ] , o [ litem + 'Min' ] , max [ litem ] , o [ 'step' + uitem ] ) ;
402
406
464
468
this . timezone_select . change ( function ( ) {
465
469
tp_inst . _defaults . useLocalTimezone = false ;
466
470
tp_inst . _onTimeChange ( ) ;
471
+ tp_inst . _onSelectHandler ( ) ;
467
472
} ) ;
468
473
// End timezone options
469
474
591
596
if ( this . minute >= this . _defaults . minuteMax ) {
592
597
this . minute = this . _defaults . minuteMax ;
593
598
this . _defaults . secondMax = maxDateTime . getSeconds ( ) ;
594
- } else if ( this . second >= this . _defaults . secondMax ) {
595
- this . second = this . _defaults . secondMax ;
596
- this . _defaults . millisecMax = maxDateTime . getMilliseconds ( ) ;
597
- } else {
598
- if ( this . millisec > this . _defaults . millisecMax ) {
599
- this . millisec = this . _defaults . millisecMax ;
599
+ if ( this . second >= this . _defaults . secondMax ) {
600
+ this . second = this . _defaults . secondMax ;
601
+ this . _defaults . millisecMax = maxDateTime . getMilliseconds ( ) ;
602
+ } else {
603
+ if ( this . millisec > this . _defaults . millisecMax ) {
604
+ this . millisec = this . _defaults . millisecMax ;
605
+ }
606
+ this . _defaults . millisecMax = this . millisecMaxOriginal ;
600
607
}
608
+ } else {
609
+ this . _defaults . secondMax = this . secondMaxOriginal ;
601
610
this . _defaults . millisecMax = this . millisecMaxOriginal ;
602
611
}
603
612
} else {
621
630
622
631
if ( this . hour_slider ) {
623
632
this . control . options ( this , this . hour_slider , 'hour' , { min : this . _defaults . hourMin , max : hourMax } ) ;
624
- this . control . value ( this , this . hour_slider , 'hour' , this . hour ) ;
633
+ this . control . value ( this , this . hour_slider , 'hour' , this . hour - ( this . hour % this . _defaults . stepHour ) ) ;
625
634
}
626
635
if ( this . minute_slider ) {
627
636
this . control . options ( this , this . minute_slider , 'minute' , { min : this . _defaults . minuteMin , max : minMax } ) ;
628
- this . control . value ( this , this . minute_slider , 'minute' , this . minute ) ;
637
+ this . control . value ( this , this . minute_slider , 'minute' , this . minute - ( this . minute % this . _defaults . stepMinute ) ) ;
629
638
}
630
639
if ( this . second_slider ) {
631
640
this . control . options ( this , this . second_slider , 'second' , { min : this . _defaults . secondMin , max : secMax } ) ;
632
- this . control . value ( this , this . second_slider , 'second' , this . second ) ;
641
+ this . control . value ( this , this . second_slider , 'second' , this . second - ( this . second % this . _defaults . stepSecond ) ) ;
633
642
}
634
643
if ( this . millisec_slider ) {
635
644
this . control . options ( this , this . millisec_slider , 'millisec' , { min : this . _defaults . millisecMin , max : millisecMax } ) ;
636
- this . control . value ( this , this . millisec_slider , 'millisec' , this . millisec ) ;
645
+ this . control . value ( this , this . millisec_slider , 'millisec' , this . millisec - ( this . millisec % this . _defaults . stepMillisec ) ) ;
637
646
}
638
647
}
639
648
1028
1037
1029
1038
var regstr = '^' + f . toString ( )
1030
1039
. replace ( / ( [ h H ] { 1 , 2 } | m m ? | s s ? | [ t T ] { 1 , 2 } | [ l z ] | ' .* ?' ) / g, function ( match ) {
1040
+ var ml = match . length ;
1031
1041
switch ( match . charAt ( 0 ) . toLowerCase ( ) ) {
1032
- case 'h' : return '(\\d?\\d)' ;
1033
- case 'm' : return '(\\d?\\d)' ;
1034
- case 's' : return '(\\d?\\d)' ;
1042
+ case 'h' : return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml + '} )';
1043
+ case 'm' : return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml + '} )';
1044
+ case 's' : return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml + '} )';
1035
1045
case 'l' : return '(\\d?\\d?\\d)' ;
1036
1046
case 'z' : return '(z|[-+]\\d\\d:?\\d\\d|\\S+)?' ;
1037
1047
case 't' : return getPatternAmpm ( o . amNames , o . pmNames ) ;
1123
1133
var looseParse = function ( f , s , o ) {
1124
1134
try {
1125
1135
var d = new Date ( '2012-01-01 ' + s ) ;
1136
+ if ( isNaN ( d . getTime ( ) ) ) {
1137
+ d = new Date ( '2012-01-01T' + s ) ;
1138
+ if ( isNaN ( d . getTime ( ) ) ) {
1139
+ d = new Date ( '01/01/2012 ' + s ) ;
1140
+ if ( isNaN ( d . getTime ( ) ) ) {
1141
+ throw "Unable to parse time with native Date: " + s ;
1142
+ }
1143
+ }
1144
+ }
1145
+
1126
1146
return {
1127
1147
hour : d . getHours ( ) ,
1128
- minutes : d . getMinutes ( ) ,
1129
- seconds : d . getSeconds ( ) ,
1148
+ minute : d . getMinutes ( ) ,
1149
+ second : d . getSeconds ( ) ,
1130
1150
millisec : d . getMilliseconds ( ) ,
1131
1151
timezone : $ . timepicker . timeZoneOffsetString ( d )
1132
1152
} ;
1259
1279
if ( tp_inst ) {
1260
1280
tp_inst . _addTimePicker ( inst ) ;
1261
1281
1262
- if ( tp_inst . _defaults . useLocalTimezone ) { //checks daylight saving with the new date.
1263
- var date = new Date ( inst . selectedYear , inst . selectedMonth , inst . selectedDay , 12 ) ;
1264
- selectLocalTimeZone ( tp_inst , date ) ;
1265
- tp_inst . _onTimeChange ( ) ;
1266
- }
1282
+ // if (tp_inst._defaults.useLocalTimezone) { //checks daylight saving with the new date.
1283
+ // var date = new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay, 12);
1284
+ // selectLocalTimeZone(tp_inst, date);
1285
+ // tp_inst._onTimeChange();
1286
+ // }
1267
1287
}
1268
1288
}
1269
1289
} ;
1320
1340
altTimeFormat = tp_inst . _defaults . altTimeFormat !== null ? tp_inst . _defaults . altTimeFormat : tp_inst . _defaults . timeFormat ;
1321
1341
1322
1342
altFormattedDateTime += $ . datepicker . formatTime ( altTimeFormat , tp_inst , tp_inst . _defaults ) + altTimeSuffix ;
1323
- if ( ! tp_inst . _defaults . timeOnly && ! tp_inst . _defaults . altFieldTimeOnly ) {
1343
+ if ( ! tp_inst . _defaults . timeOnly && ! tp_inst . _defaults . altFieldTimeOnly && date !== null ) {
1324
1344
if ( tp_inst . _defaults . altFormat )
1325
- altFormattedDateTime = $ . datepicker . formatDate ( tp_inst . _defaults . altFormat , ( date === null ? new Date ( ) : date ) , formatCfg ) + altSeparator + altFormattedDateTime ;
1345
+ altFormattedDateTime = $ . datepicker . formatDate ( tp_inst . _defaults . altFormat , date , formatCfg ) + altSeparator + altFormattedDateTime ;
1326
1346
else altFormattedDateTime = tp_inst . formattedDate + altSeparator + altFormattedDateTime ;
1327
1347
}
1328
1348
$ ( altField ) . val ( altFormattedDateTime ) ;
1767
1787
var off = date . getTimezoneOffset ( ) * - 1 ,
1768
1788
minutes = off % 60 ,
1769
1789
hours = ( off - minutes ) / 60 ;
1770
- return ( off >= 0 ? '+' : '-' ) + ( '0' + ( hours * 101 ) . toString ( ) ) . substr ( - 2 ) + ( '0' + ( minutes * 101 ) . toString ( ) ) . substr ( - 2 ) ;
1790
+ return ( off >= 0 ? '+' : '-' ) + ( '0' + ( hours * 101 ) . toString ( ) ) . slice ( - 2 ) + ( '0' + ( minutes * 101 ) . toString ( ) ) . slice ( - 2 ) ;
1771
1791
} ;
1772
1792
1773
1793
/**
1877
1897
/*
1878
1898
* Keep up with the version
1879
1899
*/
1880
- $ . timepicker . version = "1.1.1 " ;
1900
+ $ . timepicker . version = "1.1.2 " ;
1881
1901
1882
- } ) ( jQuery ) ;
1902
+ } ) ( jQuery ) ;
0 commit comments