Skip to content

Commit 4bca74d

Browse files
Revision of limit min/maxdatetime by voda
1 parent cc80af4 commit 4bca74d

File tree

1 file changed

+38
-21
lines changed

1 file changed

+38
-21
lines changed

jquery-ui-timepicker-addon.js

+38-21
Original file line numberDiff line numberDiff line change
@@ -514,27 +514,34 @@ $.extend(Timepicker.prototype, {
514514
//########################################################################
515515
_limitMinMaxDateTime: function(dp_inst, adjustSliders){
516516
var o = this._defaults,
517-
dp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay),
518-
tp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay, this.hour, this.minute, this.second, 0);
519-
517+
dp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay);
518+
520519
if(this._defaults.minDateTime !== null && dp_date){
521520
var minDateTime = this._defaults.minDateTime,
522521
minDateTimeDate = new Date(minDateTime.getFullYear(), minDateTime.getMonth(), minDateTime.getDate(), 0, 0, 0, 0);
523-
522+
524523
if(this.hourMinOriginal === null || this.minuteMinOriginal === null || this.secondMinOriginal === null){
525524
this.hourMinOriginal = o.hourMin;
526525
this.minuteMinOriginal = o.minuteMin;
527526
this.secondMinOriginal = o.secondMin;
528527
}
529-
530-
if(minDateTimeDate.getTime() == dp_date.getTime()){
531-
this._defaults.hourMin = minDateTime.getHours();
532-
this._defaults.minuteMin = minDateTime.getMinutes();
533-
this._defaults.secondMin = minDateTime.getSeconds();
534528

535-
if(this.hour < this._defaults.hourMin) this.hour = this._defaults.hourMin;
536-
if(this.minute < this._defaults.minuteMin) this.minute = this._defaults.minuteMin;
537-
if(this.second < this._defaults.secondMin) this.second = this._defaults.secondMin;
529+
if(dp_inst.settings.timeOnly || minDateTimeDate.getTime() == dp_date.getTime()) {
530+
this._defaults.hourMin = minDateTime.getHours();
531+
if (this.hour <= this._defaults.hourMin) {
532+
this.hour = this._defaults.hourMin;
533+
this._defaults.minuteMin = minDateTime.getMinutes();
534+
if (this.minute <= this._defaults.minuteMin) {
535+
this.minute = this._defaults.minuteMin;
536+
this._defaults.secondMin = minDateTime.getSeconds();
537+
} else {
538+
if(this.second < this._defaults.secondMin) this.second = this._defaults.secondMin;
539+
this._defaults.secondMin = this.secondMinOriginal;
540+
}
541+
} else {
542+
this._defaults.minuteMin = this.minuteMinOriginal;
543+
this._defaults.secondMin = this.secondMinOriginal;
544+
}
538545
}else{
539546
this._defaults.hourMin = this.hourMinOriginal;
540547
this._defaults.minuteMin = this.minuteMinOriginal;
@@ -551,29 +558,38 @@ $.extend(Timepicker.prototype, {
551558
this.minuteMaxOriginal = o.minuteMax;
552559
this.secondMaxOriginal = o.secondMax;
553560
}
554-
555-
if(maxDateTimeDate.getTime() == dp_date.getTime()){
561+
562+
if(dp_inst.settings.timeOnly || maxDateTimeDate.getTime() == dp_date.getTime()){
556563
this._defaults.hourMax = maxDateTime.getHours();
557-
this._defaults.minuteMax = maxDateTime.getMinutes();
558-
this._defaults.secondMax = maxDateTime.getSeconds();
559-
560-
if(this.hour > this._defaults.hourMax){ this.hour = this._defaults.hourMax; }
561-
if(this.minute > this._defaults.minuteMax) this.minute = this._defaults.minuteMax;
562-
if(this.second > this._defaults.secondMax) this.second = this._defaults.secondMax;
564+
if (this.hour >= this._defaults.hourMax) {
565+
this.hour = this._defaults.hourMax;
566+
this._defaults.minuteMax = maxDateTime.getMinutes();
567+
if (this.minute >= this._defaults.minuteMax) {
568+
this.minute = this._defaults.minuteMax;
569+
this._defaults.secondMin = maxDateTime.getSeconds();
570+
} else {
571+
if(this.second > this._defaults.secondMax) this.second = this._defaults.secondMax;
572+
this._defaults.secondMax = this.secondMaxOriginal;
573+
}
574+
} else {
575+
this._defaults.minuteMax = this.minuteMaxOriginal;
576+
this._defaults.secondMax = this.secondMaxOriginal;
577+
}
563578
}else{
564579
this._defaults.hourMax = this.hourMaxOriginal;
565580
this._defaults.minuteMax = this.minuteMaxOriginal;
566581
this._defaults.secondMax = this.secondMaxOriginal;
567582
}
568583
}
569-
584+
570585
if(adjustSliders !== undefined && adjustSliders === true){
571586
this.hour_slider.slider("option", { min: this._defaults.hourMin, max: this._defaults.hourMax }).slider('value', this.hour);
572587
this.minute_slider.slider("option", { min: this._defaults.minuteMin, max: this._defaults.minuteMax }).slider('value', this.minute);
573588
this.second_slider.slider("option", { min: this._defaults.secondMin, max: this._defaults.secondMax }).slider('value', this.second);
574589
}
575590

576591
},
592+
577593

578594
//########################################################################
579595
// when a slider moves, set the internal time...
@@ -601,6 +617,7 @@ $.extend(Timepicker.prototype, {
601617
if (minute !== false) this.minute = minute;
602618
if (second !== false) this.second = second;
603619
if (timezone !== false) this.timezone = timezone;
620+
this._limitMinMaxDateTime(this.inst, true);
604621
}
605622
if (this._defaults.ampm) this.ampm = ampm;
606623

0 commit comments

Comments
 (0)