Skip to content

Commit 66b95d8

Browse files
integrated get/setDate functions from datepicker
1 parent d15881e commit 66b95d8

File tree

1 file changed

+66
-7
lines changed

1 file changed

+66
-7
lines changed

jquery-ui-timepicker-addon.js

Lines changed: 66 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,18 @@
498498
jQuery.fn.datetimepicker = function(o) {
499499
var opts = (o === undefined ? {} : o);
500500
var input = $(this);
501+
502+
if(typeof(o) == 'string')
503+
{
504+
if(o == 'setDate')
505+
return input.datepicker(o, arguments[1]);
506+
if(o == 'options' && typeof(arguments[1]) == 'string')
507+
return input.datepicker(o, arguments[1], arguments[2]);
508+
if(o == 'dialog')
509+
return input.datepicker(o, arguments[1], arguments[2], arguments[3], arguments[4]);
510+
return input.datepicker(o);
511+
}
512+
501513
var tp = new Timepicker();
502514
var inlineSettings = {};
503515

@@ -560,8 +572,10 @@
560572
// shorthand just to use timepicker..
561573
//########################################################################
562574
jQuery.fn.timepicker = function(opts) {
563-
opts = $.extend(opts, { timeOnly: true });
564-
$(this).datetimepicker(opts);
575+
if(typeof opts == 'object')
576+
opts = $.extend(opts, { timeOnly: true });
577+
578+
$(this).datetimepicker(opts, arguments[1], arguments[2], arguments[3], arguments[4]);
565579
};
566580

567581
//########################################################################
@@ -643,10 +657,19 @@
643657

644658
var target = $(id);
645659
var dp_inst = this._getInst(target[0]);
646-
var tp_inst = $.datepicker._get(dp_inst, 'timepicker');
647660

648-
if(tp_inst){
649-
var date = new Date();
661+
this._setTime(dp_inst, new Date());
662+
663+
};
664+
665+
//#######################################################################################
666+
// Create our on set time function
667+
//#######################################################################################
668+
$.datepicker._setTime = function(inst, date) {
669+
670+
var tp_inst = $.datepicker._get(inst, 'timepicker');
671+
672+
if(tp_inst && tp_inst.hour_slider && tp_inst.minute_slider && tp_inst.second_slider){
650673
var hour = date.getHours();
651674
var minute = date.getMinutes();
652675
var second = date.getSeconds();
@@ -655,17 +678,53 @@
655678
if( (hour < tp_inst.defaults.hourMin || hour > tp_inst.defaults.hourMax) || (minute < tp_inst.defaults.minuteMin || minute > tp_inst.defaults.minuteMax) || (second < tp_inst.defaults.secondMin || second > tp_inst.defaults.secondMax) ){
656679
hour = tp_inst.defaults.hourMin;
657680
minute = tp_inst.defaults.minuteMin;
658-
second = tp_inst.defaults.secondMin;
681+
second = tp_inst.defaults.secondMin;
659682
}
660683

661684
tp_inst.hour_slider.slider('value', hour );
662685
tp_inst.minute_slider.slider('value', minute );
663686
tp_inst.second_slider.slider('value', second );
664687

665-
tp_inst.onTimeChange(dp_inst, tp_inst);
688+
tp_inst.onTimeChange(inst, tp_inst);
666689
}
690+
667691
};
692+
693+
//#######################################################################################
694+
// override getDate() to allow getting time too within date object
695+
//#######################################################################################
696+
$.datepicker._base_setDate = $.datepicker._setDate;
697+
$.datepicker._setDate = function(inst, date, noChange) {
698+
var tp_inst = $.datepicker._get(inst, 'timepicker');
699+
var tp_date = new Date(date.getYear(), date.getMonth(), date.getDay(), date.getHours(), date.getMinutes(), date.getSeconds());
700+
701+
$.datepicker._base_setDate(inst, date, noChange);
702+
703+
if(tp_inst){
704+
this._setTime(inst, tp_date);
705+
}
706+
668707

708+
};
709+
710+
//#######################################################################################
711+
// override getDate() to allow getting time too within date object
712+
//#######################################################################################
713+
$.datepicker._base_getDate = $.datepicker._getDate;
714+
$.datepicker._getDate = function(inst) {
715+
716+
var tp_inst = $.datepicker._get(inst, 'timepicker');
717+
718+
if(tp_inst){
719+
var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
720+
this._daylightSavingAdjust(new Date(
721+
inst.currentYear, inst.currentMonth, inst.currentDay, tp_inst.hour, tp_inst.minute, tp_inst.second)));
722+
return startDate;
723+
}
724+
725+
return $.datepicker._base_getDate(inst);
726+
};
727+
669728
//#######################################################################################
670729
// jQuery extend now ignores nulls!
671730
//#######################################################################################

0 commit comments

Comments
 (0)