integrated get/setDate functions from datepicker

This commit is contained in:
Trent Richardson 2010-10-08 15:19:49 -04:00
parent d15881eb3c
commit 66b95d8bdc

View file

@ -498,6 +498,18 @@
jQuery.fn.datetimepicker = function(o) { jQuery.fn.datetimepicker = function(o) {
var opts = (o === undefined ? {} : o); var opts = (o === undefined ? {} : o);
var input = $(this); var input = $(this);
if(typeof(o) == 'string')
{
if(o == 'setDate')
return input.datepicker(o, arguments[1]);
if(o == 'options' && typeof(arguments[1]) == 'string')
return input.datepicker(o, arguments[1], arguments[2]);
if(o == 'dialog')
return input.datepicker(o, arguments[1], arguments[2], arguments[3], arguments[4]);
return input.datepicker(o);
}
var tp = new Timepicker(); var tp = new Timepicker();
var inlineSettings = {}; var inlineSettings = {};
@ -560,8 +572,10 @@
// shorthand just to use timepicker.. // shorthand just to use timepicker..
//######################################################################## //########################################################################
jQuery.fn.timepicker = function(opts) { jQuery.fn.timepicker = function(opts) {
opts = $.extend(opts, { timeOnly: true }); if(typeof opts == 'object')
$(this).datetimepicker(opts); opts = $.extend(opts, { timeOnly: true });
$(this).datetimepicker(opts, arguments[1], arguments[2], arguments[3], arguments[4]);
}; };
//######################################################################## //########################################################################
@ -643,10 +657,19 @@
var target = $(id); var target = $(id);
var dp_inst = this._getInst(target[0]); var dp_inst = this._getInst(target[0]);
var tp_inst = $.datepicker._get(dp_inst, 'timepicker');
if(tp_inst){ this._setTime(dp_inst, new Date());
var date = new Date();
};
//#######################################################################################
// Create our on set time function
//#######################################################################################
$.datepicker._setTime = function(inst, date) {
var tp_inst = $.datepicker._get(inst, 'timepicker');
if(tp_inst && tp_inst.hour_slider && tp_inst.minute_slider && tp_inst.second_slider){
var hour = date.getHours(); var hour = date.getHours();
var minute = date.getMinutes(); var minute = date.getMinutes();
var second = date.getSeconds(); var second = date.getSeconds();
@ -655,17 +678,53 @@
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) ){ 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) ){
hour = tp_inst.defaults.hourMin; hour = tp_inst.defaults.hourMin;
minute = tp_inst.defaults.minuteMin; minute = tp_inst.defaults.minuteMin;
second = tp_inst.defaults.secondMin; second = tp_inst.defaults.secondMin;
} }
tp_inst.hour_slider.slider('value', hour ); tp_inst.hour_slider.slider('value', hour );
tp_inst.minute_slider.slider('value', minute ); tp_inst.minute_slider.slider('value', minute );
tp_inst.second_slider.slider('value', second ); tp_inst.second_slider.slider('value', second );
tp_inst.onTimeChange(dp_inst, tp_inst); tp_inst.onTimeChange(inst, tp_inst);
} }
};
};
//#######################################################################################
// override getDate() to allow getting time too within date object
//#######################################################################################
$.datepicker._base_setDate = $.datepicker._setDate;
$.datepicker._setDate = function(inst, date, noChange) {
var tp_inst = $.datepicker._get(inst, 'timepicker');
var tp_date = new Date(date.getYear(), date.getMonth(), date.getDay(), date.getHours(), date.getMinutes(), date.getSeconds());
$.datepicker._base_setDate(inst, date, noChange);
if(tp_inst){
this._setTime(inst, tp_date);
}
};
//#######################################################################################
// override getDate() to allow getting time too within date object
//#######################################################################################
$.datepicker._base_getDate = $.datepicker._getDate;
$.datepicker._getDate = function(inst) {
var tp_inst = $.datepicker._get(inst, 'timepicker');
if(tp_inst){
var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
this._daylightSavingAdjust(new Date(
inst.currentYear, inst.currentMonth, inst.currentDay, tp_inst.hour, tp_inst.minute, tp_inst.second)));
return startDate;
}
return $.datepicker._base_getDate(inst);
};
//####################################################################################### //#######################################################################################
// jQuery extend now ignores nulls! // jQuery extend now ignores nulls!
//####################################################################################### //#######################################################################################