@@ -1439,6 +1439,101 @@ $.datepicker._optionDatepicker = function(target, name, value) {
1439
1439
return this . _base_optionDatepicker ( target , name , value ) ;
1440
1440
} ;
1441
1441
1442
+ //#######################################################################################
1443
+ // jQuery extend now ignores nulls!
1444
+ //#######################################################################################
1445
+ function extendRemove ( target , props ) {
1446
+ $ . extend ( target , props ) ;
1447
+ for ( var name in props ) {
1448
+ if ( props [ name ] === null || props [ name ] === undefined ) {
1449
+ target [ name ] = props [ name ] ;
1450
+ }
1451
+ }
1452
+ return target ;
1453
+ }
1454
+
1455
+ //#######################################################################################
1456
+ // Splits datetime string into date ans time substrings.
1457
+ // Throws exception when date can't be parsed
1458
+ // If only date is present, time substring eill be ''
1459
+ //#######################################################################################
1460
+ var splitDateTime = function ( dateFormat , dateTimeString , dateSettings )
1461
+ {
1462
+ try {
1463
+ var date = $ . datepicker . _base_parseDate ( dateFormat , dateTimeString , dateSettings ) ;
1464
+ } catch ( err ) {
1465
+ if ( err . indexOf ( ":" ) >= 0 ) {
1466
+ // Hack! The error message ends with a colon, a space, and
1467
+ // the "extra" characters. We rely on that instead of
1468
+ // attempting to perfectly reproduce the parsing algorithm.
1469
+ var dateStringLength = dateTimeString . length - ( err . length - err . indexOf ( ':' ) - 2 ) ;
1470
+ var timeString = dateTimeString . substring ( dateStringLength ) ;
1471
+
1472
+ return [ dateTimeString . substring ( 0 , dateStringLength ) , dateTimeString . substring ( dateStringLength ) ] ;
1473
+
1474
+ } else {
1475
+ throw err ;
1476
+ }
1477
+ }
1478
+ return [ dateTimeString , '' ] ;
1479
+ } ;
1480
+
1481
+ //#######################################################################################
1482
+ // Internal function to parse datetime interval
1483
+ // Returns: {date: Date, timeObj: Object}, where
1484
+ // date - parsed date without time (type Date)
1485
+ // timeObj = {hour: , minute: , second: , millisec: } - parsed time. Optional
1486
+ //#######################################################################################
1487
+ var parseDateTimeInternal = function ( dateFormat , timeFormat , dateTimeString , dateSettings , timeSettings )
1488
+ {
1489
+ var date ;
1490
+ var splitRes = splitDateTime ( dateFormat , dateTimeString , dateSettings ) ;
1491
+ date = $ . datepicker . _base_parseDate ( dateFormat , splitRes [ 0 ] , dateSettings ) ;
1492
+ if ( splitRes [ 1 ] !== '' )
1493
+ {
1494
+ var timeString = splitRes [ 1 ] ;
1495
+ var separator = timeSettings && timeSettings . separator ? timeSettings . separator : $ . timepicker . _defaults . separator ;
1496
+ if ( timeString . indexOf ( separator ) !== 0 ) {
1497
+ throw 'Missing time separator' ;
1498
+ }
1499
+ timeString = timeString . substring ( separator . length ) ;
1500
+ var parsedTime = $ . datepicker . parseTime ( timeFormat , timeString , timeSettings ) ;
1501
+ if ( parsedTime === null ) {
1502
+ throw 'Wrong time format' ;
1503
+ }
1504
+ return { date : date , timeObj : parsedTime } ;
1505
+ } else {
1506
+ return { date : date } ;
1507
+ }
1508
+ } ;
1509
+
1510
+ //#######################################################################################
1511
+ // Internal function to set timezone_select to the local timezone
1512
+ //#######################################################################################
1513
+ var selectLocalTimeZone = function ( tp_inst , date )
1514
+ {
1515
+ if ( tp_inst && tp_inst . timezone_select ) {
1516
+ tp_inst . _defaults . useLocalTimezone = true ;
1517
+ var now = typeof date !== 'undefined' ? date : new Date ( ) ;
1518
+ var tzoffset = timeZoneString ( now ) ;
1519
+ if ( tp_inst . _defaults . timezoneIso8601 ) {
1520
+ tzoffset = tzoffset . substring ( 0 , 3 ) + ':' + tzoffset . substring ( 3 ) ;
1521
+ }
1522
+ tp_inst . timezone_select . val ( tzoffset ) ;
1523
+ }
1524
+ } ;
1525
+
1526
+ // Input: Date Object
1527
+ // Output: String with timezone offset, e.g. '+0100'
1528
+ var timeZoneString = function ( date )
1529
+ {
1530
+ var off = date . getTimezoneOffset ( ) * - 10100 / 60 ;
1531
+ var timezone = ( off >= 0 ? '+' : '-' ) + Math . abs ( off ) . toString ( ) . substr ( 1 ) ;
1532
+ return timezone ;
1533
+ } ;
1534
+
1535
+ $ . timepicker = new Timepicker ( ) ; // singleton instance
1536
+ $ . timepicker . version = "1.0.2" ;
1442
1537
1443
1538
//#######################################################################################
1444
1539
// Changes by simonvwade to better handle time range limits
@@ -1547,101 +1642,4 @@ $.timepicker.handleRange = function( method, startTime, endTime, options ) {
1547
1642
return $ ( [ startTime . get ( 0 ) , endTime . get ( 0 ) ] ) ;
1548
1643
} ;
1549
1644
1550
- //#######################################################################################
1551
- // jQuery extend now ignores nulls!
1552
- //#######################################################################################
1553
- function extendRemove ( target , props ) {
1554
- $ . extend ( target , props ) ;
1555
- for ( var name in props ) {
1556
- if ( props [ name ] === null || props [ name ] === undefined ) {
1557
- target [ name ] = props [ name ] ;
1558
- }
1559
- }
1560
- return target ;
1561
- }
1562
-
1563
- //#######################################################################################
1564
- // Splits datetime string into date ans time substrings.
1565
- // Throws exception when date can't be parsed
1566
- // If only date is present, time substring eill be ''
1567
- //#######################################################################################
1568
- var splitDateTime = function ( dateFormat , dateTimeString , dateSettings )
1569
- {
1570
- try {
1571
- var date = $ . datepicker . _base_parseDate ( dateFormat , dateTimeString , dateSettings ) ;
1572
- } catch ( err ) {
1573
- if ( err . indexOf ( ":" ) >= 0 ) {
1574
- // Hack! The error message ends with a colon, a space, and
1575
- // the "extra" characters. We rely on that instead of
1576
- // attempting to perfectly reproduce the parsing algorithm.
1577
- var dateStringLength = dateTimeString . length - ( err . length - err . indexOf ( ':' ) - 2 ) ;
1578
- var timeString = dateTimeString . substring ( dateStringLength ) ;
1579
-
1580
- return [ dateTimeString . substring ( 0 , dateStringLength ) , dateTimeString . substring ( dateStringLength ) ] ;
1581
-
1582
- } else {
1583
- throw err ;
1584
- }
1585
- }
1586
- return [ dateTimeString , '' ] ;
1587
- } ;
1588
-
1589
- //#######################################################################################
1590
- // Internal function to parse datetime interval
1591
- // Returns: {date: Date, timeObj: Object}, where
1592
- // date - parsed date without time (type Date)
1593
- // timeObj = {hour: , minute: , second: , millisec: } - parsed time. Optional
1594
- //#######################################################################################
1595
- var parseDateTimeInternal = function ( dateFormat , timeFormat , dateTimeString , dateSettings , timeSettings )
1596
- {
1597
- var date ;
1598
- var splitRes = splitDateTime ( dateFormat , dateTimeString , dateSettings ) ;
1599
- date = $ . datepicker . _base_parseDate ( dateFormat , splitRes [ 0 ] , dateSettings ) ;
1600
- if ( splitRes [ 1 ] !== '' )
1601
- {
1602
- var timeString = splitRes [ 1 ] ;
1603
- var separator = timeSettings && timeSettings . separator ? timeSettings . separator : $ . timepicker . _defaults . separator ;
1604
- if ( timeString . indexOf ( separator ) !== 0 ) {
1605
- throw 'Missing time separator' ;
1606
- }
1607
- timeString = timeString . substring ( separator . length ) ;
1608
- var parsedTime = $ . datepicker . parseTime ( timeFormat , timeString , timeSettings ) ;
1609
- if ( parsedTime === null ) {
1610
- throw 'Wrong time format' ;
1611
- }
1612
- return { date : date , timeObj : parsedTime } ;
1613
- } else {
1614
- return { date : date } ;
1615
- }
1616
- } ;
1617
-
1618
- //#######################################################################################
1619
- // Internal function to set timezone_select to the local timezone
1620
- //#######################################################################################
1621
- var selectLocalTimeZone = function ( tp_inst , date )
1622
- {
1623
- if ( tp_inst && tp_inst . timezone_select ) {
1624
- tp_inst . _defaults . useLocalTimezone = true ;
1625
- var now = typeof date !== 'undefined' ? date : new Date ( ) ;
1626
- var tzoffset = timeZoneString ( now ) ;
1627
- if ( tp_inst . _defaults . timezoneIso8601 ) {
1628
- tzoffset = tzoffset . substring ( 0 , 3 ) + ':' + tzoffset . substring ( 3 ) ;
1629
- }
1630
- tp_inst . timezone_select . val ( tzoffset ) ;
1631
- }
1632
- } ;
1633
-
1634
- // Input: Date Object
1635
- // Output: String with timezone offset, e.g. '+0100'
1636
- var timeZoneString = function ( date )
1637
- {
1638
- var off = date . getTimezoneOffset ( ) * - 10100 / 60 ;
1639
- var timezone = ( off >= 0 ? '+' : '-' ) + Math . abs ( off ) . toString ( ) . substr ( 1 ) ;
1640
- return timezone ;
1641
- } ;
1642
-
1643
- $ . timepicker = new Timepicker ( ) ; // singleton instance
1644
- $ . timepicker . version = "1.0.2" ;
1645
-
1646
-
1647
1645
} ) ( jQuery ) ;
0 commit comments