1
1
/*
2
2
* jQuery timepicker addon
3
3
* By: Trent Richardson [http://trentrichardson.com]
4
- * Version 1.0.3
5
- * Last Modified: 09/15 /2012
4
+ * Version 1.0.4
5
+ * Last Modified: 09/29 /2012
6
6
*
7
7
* Copyright 2012 Trent Richardson
8
8
* You may use this project under MIT or GPL licenses.
35
35
*/
36
36
$ . extend ( $ . ui , {
37
37
timepicker : {
38
- version : "1.0.3 "
38
+ version : "1.0.4 "
39
39
}
40
40
} ) ;
41
41
1149
1149
case 'l' :
1150
1150
return ( '00' + time . millisec ) . slice ( - 3 ) ;
1151
1151
case 'z' :
1152
- return time . timezone ;
1152
+ return time . timezone === null ? options . defaultTimezone : time . timezone ;
1153
1153
case 't' :
1154
1154
case 'tt' :
1155
1155
if ( options . ampm ) {
1328
1328
$ . datepicker . _setTime = function ( inst , date ) {
1329
1329
var tp_inst = this . _get ( inst , 'timepicker' ) ;
1330
1330
if ( tp_inst ) {
1331
- var defaults = tp_inst . _defaults ,
1332
- // calling _setTime with no date sets time to defaults
1333
- hour = date ? date . getHours ( ) : defaults . hour ,
1334
- minute = date ? date . getMinutes ( ) : defaults . minute ,
1335
- second = date ? date . getSeconds ( ) : defaults . second ,
1336
- millisec = date ? date . getMilliseconds ( ) : defaults . millisec ;
1337
- //check if within min/max times..
1338
- // correct check if within min/max times.
1339
- // Rewritten by Scott A. Woodward
1340
- var hourEq = hour === defaults . hourMin ,
1341
- minuteEq = minute === defaults . minuteMin ,
1342
- secondEq = second === defaults . secondMin ;
1343
- var reset = false ;
1344
- if ( hour < defaults . hourMin || hour > defaults . hourMax ) reset = true ;
1345
- else if ( ( minute < defaults . minuteMin || minute > defaults . minuteMax ) && hourEq ) reset = true ;
1346
- else if ( ( second < defaults . secondMin || second > defaults . secondMax ) && hourEq && minuteEq ) reset = true ;
1347
- else if ( ( millisec < defaults . millisecMin || millisec > defaults . millisecMax ) && hourEq && minuteEq && secondEq ) reset = true ;
1348
- if ( reset ) {
1349
- hour = defaults . hourMin ;
1350
- minute = defaults . minuteMin ;
1351
- second = defaults . secondMin ;
1352
- millisec = defaults . millisecMin ;
1353
- }
1354
- tp_inst . hour = hour ;
1355
- tp_inst . minute = minute ;
1356
- tp_inst . second = second ;
1357
- tp_inst . millisec = millisec ;
1358
- if ( tp_inst . hour_slider ) tp_inst . hour_slider . slider ( 'value' , hour ) ;
1359
- if ( tp_inst . minute_slider ) tp_inst . minute_slider . slider ( 'value' , minute ) ;
1360
- if ( tp_inst . second_slider ) tp_inst . second_slider . slider ( 'value' , second ) ;
1361
- if ( tp_inst . millisec_slider ) tp_inst . millisec_slider . slider ( 'value' , millisec ) ;
1331
+ var defaults = tp_inst . _defaults ;
1332
+
1333
+ // calling _setTime with no date sets time to defaults
1334
+ tp_inst . hour = date ? date . getHours ( ) : defaults . hour ;
1335
+ tp_inst . minute = date ? date . getMinutes ( ) : defaults . minute ;
1336
+ tp_inst . second = date ? date . getSeconds ( ) : defaults . second ;
1337
+ tp_inst . millisec = date ? date . getMilliseconds ( ) : defaults . millisec ;
1338
+
1339
+ //check if within min/max times..
1340
+ tp_inst . _limitMinMaxDateTime ( inst , true ) ;
1362
1341
1363
1342
tp_inst . _onTimeChange ( ) ;
1364
1343
tp_inst . _updateDateTime ( inst ) ;
1426
1405
var tp_inst = this . _get ( inst , 'timepicker' ) ;
1427
1406
1428
1407
if ( tp_inst ) {
1429
- //this._setDateFromField(inst, noDefault); // This keeps setting to today when it shouldn't
1408
+ // if it hasn't yet been defined, grab from field
1409
+ if ( inst . lastVal === undefined ) {
1410
+ this . _setDateFromField ( inst , noDefault ) ;
1411
+ }
1412
+
1430
1413
var date = this . _getDate ( inst ) ;
1431
1414
if ( date && tp_inst . _parseTime ( $ ( target ) . val ( ) , tp_inst . timeOnly ) ) {
1432
1415
date . setHours ( tp_inst . hour , tp_inst . minute , tp_inst . second , tp_inst . millisec ) ;
1442
1425
*/
1443
1426
$ . datepicker . _base_parseDate = $ . datepicker . parseDate ;
1444
1427
$ . datepicker . parseDate = function ( format , value , settings ) {
1445
- var splitRes = splitDateTime ( format , value , settings ) ;
1446
- return $ . datepicker . _base_parseDate ( format , splitRes [ 0 ] , settings ) ;
1428
+ var date ;
1429
+ try {
1430
+ date = this . _base_parseDate ( format , value , settings ) ;
1431
+ } catch ( err ) {
1432
+ // Hack! The error message ends with a colon, a space, and
1433
+ // the "extra" characters. We rely on that instead of
1434
+ // attempting to perfectly reproduce the parsing algorithm.
1435
+ date = this . _base_parseDate ( format , value . substring ( 0 , value . length - ( err . length - err . indexOf ( ':' ) - 2 ) ) , settings ) ;
1436
+ }
1437
+ return date ;
1447
1438
} ;
1448
1439
1449
1440
/*
1568
1559
timePartsLen = timeParts . length ;
1569
1560
}
1570
1561
1571
- if ( allPartsLen > 0 ) {
1562
+ if ( allPartsLen > 1 ) {
1572
1563
return [
1573
1564
allParts . splice ( 0 , allPartsLen - timePartsLen ) . join ( separator ) ,
1574
- allParts . splice ( timePartsLen * - 1 ) . join ( separator )
1565
+ allParts . splice ( 0 , timePartsLen ) . join ( separator )
1575
1566
] ;
1576
1567
}
1577
1568
1759
1750
/*
1760
1751
* Keep up with the version
1761
1752
*/
1762
- $ . timepicker . version = "1.0.3 " ;
1753
+ $ . timepicker . version = "1.0.4 " ;
1763
1754
1764
1755
} ) ( jQuery ) ;
0 commit comments