1
1
/**
2
- * version 2.1.20
2
+ * version 2.1.30
3
3
* @license
4
4
* =========================================================
5
5
* bootstrap-datetimepicker.js
67
67
disabledDates : [ ] ,
68
68
enabledDates : false ,
69
69
icons : { } ,
70
- useStrict : false
70
+ useStrict : false ,
71
+ direction : "auto"
71
72
} ,
72
73
73
74
icons = {
225
226
offset = picker . component ? picker . component . offset ( ) : picker . element . offset ( ) , $window = $ ( window ) ;
226
227
picker . width = picker . component ? picker . component . outerWidth ( ) : picker . element . outerWidth ( ) ;
227
228
offset . top = offset . top + picker . element . outerHeight ( ) ;
228
-
229
- //if (offset.top + picker.widget.height() > $window.height()) offset.top = offset.top - (picker.widget.height() + picker.height + 10);
229
+
230
+ // if (picker.options.direction === 'up' || picker.options.direction === 'auto' && offset.top + picker.widget.height() > $window.height()) {
231
+ // offset.top -= picker.widget.height() + picker.element.outerHeight();
232
+ // picker.widget.addClass('up');
233
+ // } else if (picker.options.direction === 'down' || picker.options.direction === 'auto' && offset.top + picker.widget.height() <= $window.height()) {
234
+ // offset.top += picker.element.outerHeight();
235
+ // picker.widget.addClass('down');
236
+ // }
230
237
231
238
if ( picker . options . width !== undefined ) {
232
239
picker . widget . width ( picker . options . width ) ;
365
372
if ( prevMonth . isSame ( pMoment ( { y : picker . date . year ( ) , M : picker . date . month ( ) , d : picker . date . date ( ) } ) ) ) {
366
373
clsName += ' active' ;
367
374
}
368
- if ( ( pMoment ( prevMonth ) . add ( 1 , "d" ) <= picker . options . startDate ) || ( prevMonth > picker . options . endDate ) || isInDisableDates ( prevMonth ) || ! isInEnableDates ( prevMonth ) ) {
375
+ if ( isInDisableDates ( prevMonth ) || ! isInEnableDates ( prevMonth ) ) {
369
376
clsName += ' disabled' ;
370
377
}
371
378
row . append ( '<td class="day' + clsName + '">' + prevMonth . date ( ) + '</td>' ) ;
652
659
653
660
change = function ( e ) {
654
661
pMoment . lang ( picker . options . language ) ;
655
- var input = $ ( e . target ) , oldDate = pMoment ( picker . date ) , d = pMoment ( input . val ( ) , picker . format , picker . options . useStrict ) ;
656
- if ( d . isValid ( ) ) {
662
+ var input = $ ( e . target ) , oldDate = pMoment ( picker . date ) , newDate = pMoment ( input . val ( ) , picker . format , picker . options . useStrict ) ;
663
+ if ( newDate . isValid ( ) && ! isInDisableDates ( newDate ) && isInEnableDates ( newDate ) ) {
657
664
update ( ) ;
658
- picker . setValue ( d ) ;
665
+ picker . setValue ( newDate ) ;
659
666
notifyChange ( oldDate , e . type ) ;
660
667
set ( ) ;
661
668
}
662
669
else {
663
670
picker . viewDate = oldDate ;
671
+ input . val ( pMoment ( oldDate ) . format ( picker . format ) ) ;
664
672
//picker.setValue(""); // unset the date when the input is erased
665
673
notifyChange ( oldDate , e . type ) ;
666
- notifyError ( d ) ;
674
+ notifyError ( newDate ) ;
667
675
picker . unset = true ;
668
- input . val ( '' ) ;
669
676
}
670
677
} ,
671
678
801
808
else {
802
809
newDate = pMoment ( picker . date ) . subtract ( amount , unit ) ;
803
810
}
804
- if ( newDate . isAfter ( picker . options . endDate ) || pMoment ( newDate . subtract ( amount , unit ) ) . isBefore ( picker . options . startDate ) || isInDisableDates ( newDate ) ) {
811
+ if ( isInDisableDates ( pMoment ( newDate . subtract ( amount , unit ) ) ) || isInDisableDates ( newDate ) ) {
805
812
notifyError ( newDate . format ( picker . format ) ) ;
806
813
return ;
807
814
}
812
819
else {
813
820
picker . date . subtract ( amount , unit ) ;
814
821
}
822
+ picker . unset = false ;
815
823
} ,
816
824
817
825
isInDisableDates = function ( date ) {
818
826
pMoment . lang ( picker . options . language ) ;
827
+ if ( date . isAfter ( picker . options . endDate ) || date . isBefore ( picker . options . startDate ) ) return true ;
819
828
var disabled = picker . options . disabledDates , i ;
820
829
for ( i in disabled ) {
821
830
if ( disabled [ i ] == pMoment ( date ) . format ( "L" ) ) {
985
994
986
995
picker . disable = function ( ) {
987
996
var input = picker . element . find ( 'input' ) ;
988
- if ( ! input . prop ( 'disabled' ) ) return ;
997
+ if ( input . prop ( 'disabled' ) ) return ;
989
998
990
999
input . prop ( 'disabled' , true ) ;
991
1000
detachDatePickerEvents ( ) ;
995
1004
var input = picker . element . find ( 'input' ) ;
996
1005
if ( ! input . prop ( 'disabled' ) ) return ;
997
1006
998
- input . prop ( 'disabled' , true ) ;
1007
+ input . prop ( 'disabled' , false ) ;
999
1008
attachDatePickerEvents ( ) ;
1000
1009
} ,
1001
1010
1057
1066
} ,
1058
1067
1059
1068
picker . setEndDate = function ( date ) {
1069
+ if ( date == undefined ) return ;
1060
1070
picker . options . endDate = pMoment ( date ) ;
1061
- if ( ! picker . options . endDate . isValid ( ) ) {
1062
- picker . options . endDate = pMoment ( ) . add ( 50 , "y" ) ;
1063
- }
1064
1071
if ( picker . viewDate ) update ( ) ;
1065
1072
} ,
1066
1073
1067
1074
picker . setStartDate = function ( date ) {
1075
+ if ( date == undefined ) return ;
1068
1076
picker . options . startDate = pMoment ( date ) ;
1069
- if ( ! picker . options . startDate . isValid ( ) ) {
1070
- picker . options . startDate = pMoment ( { y : 1970 } ) ;
1071
- }
1072
1077
if ( picker . viewDate ) update ( ) ;
1073
1078
} ;
1074
1079
1081
1086
if ( ! data ) $this . data ( 'DateTimePicker' , new DateTimePicker ( this , options ) ) ;
1082
1087
} ) ;
1083
1088
} ;
1084
- } ) ) ;
1089
+ } ) ) ;
0 commit comments