summaryrefslogtreecommitdiffstats
path: root/src/jquery-ui-timepicker-addon.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/jquery-ui-timepicker-addon.js')
-rw-r--r--src/jquery-ui-timepicker-addon.js70
1 files changed, 61 insertions, 9 deletions
diff --git a/src/jquery-ui-timepicker-addon.js b/src/jquery-ui-timepicker-addon.js
index 71ec2cd..5c7a186 100644
--- a/src/jquery-ui-timepicker-addon.js
+++ b/src/jquery-ui-timepicker-addon.js
@@ -54,6 +54,7 @@
this._defaults = { // Global defaults for all the datetime picker instances
showButtonPanel: true,
timeOnly: false,
+ timeOnlyShowDate: false,
showHour: null,
showMinute: null,
showSecond: null,
@@ -84,6 +85,8 @@
microsecMax: 999,
minDateTime: null,
maxDateTime: null,
+ maxTime: null,
+ minTime: null,
onSelect: null,
hourGrid: 0,
minuteGrid: 0,
@@ -120,6 +123,8 @@
millisec_slider: null,
microsec_slider: null,
timezone_select: null,
+ maxTime: null,
+ minTime: null,
hour: 0,
minute: 0,
second: 0,
@@ -666,6 +671,44 @@
}
}
+ if (dp_inst.settings.minTime!==null) {
+ var tempMinTime=new Date("01/01/1970 " + dp_inst.settings.minTime);
+ if (this.hour<tempMinTime.getHours()) {
+ this.hour=this._defaults.hourMin=tempMinTime.getHours();
+ this.minute=this._defaults.minuteMin=tempMinTime.getMinutes();
+ } else if (this.hour===tempMinTime.getHours() && this.minute<tempMinTime.getMinutes()) {
+ this.minute=this._defaults.minuteMin=tempMinTime.getMinutes();
+ } else {
+ if (this._defaults.hourMin<tempMinTime.getHours()) {
+ this._defaults.hourMin=tempMinTime.getHours();
+ this._defaults.minuteMin=tempMinTime.getMinutes();
+ } else if (this._defaults.hourMin===tempMinTime.getHours()===this.hour && this._defaults.minuteMin<tempMinTime.getMinutes()) {
+ this._defaults.minuteMin=tempMinTime.getMinutes();
+ } else {
+ this._defaults.minuteMin=0;
+ }
+ }
+ }
+
+ if (dp_inst.settings.maxTime!==null) {
+ var tempMaxTime=new Date("01/01/1970 " + dp_inst.settings.maxTime);
+ if (this.hour>tempMaxTime.getHours()) {
+ this.hour=this._defaults.hourMax=tempMaxTime.getHours();
+ this.minute=this._defaults.minuteMax=tempMaxTime.getMinutes();
+ } else if (this.hour===tempMaxTime.getHours() && this.minute>tempMaxTime.getMinutes()) {
+ this.minute=this._defaults.minuteMax=tempMaxTime.getMinutes();
+ } else {
+ if (this._defaults.hourMax>tempMaxTime.getHours()) {
+ this._defaults.hourMax=tempMaxTime.getHours();
+ this._defaults.minuteMax=tempMaxTime.getMinutes();
+ } else if (this._defaults.hourMax===tempMaxTime.getHours()===this.hour && this._defaults.minuteMax>tempMaxTime.getMinutes()) {
+ this._defaults.minuteMax=tempMaxTime.getMinutes();
+ } else {
+ this._defaults.minuteMax=59;
+ }
+ }
+ }
+
if (adjustSliders !== undefined && adjustSliders === true) {
var hourMax = parseInt((this._defaults.hourMax - ((this._defaults.hourMax - this._defaults.hourMin) % this._defaults.stepHour)), 10),
minMax = parseInt((this._defaults.minuteMax - ((this._defaults.minuteMax - this._defaults.minuteMin) % this._defaults.stepMinute)), 10),
@@ -674,23 +717,23 @@
microsecMax = parseInt((this._defaults.microsecMax - ((this._defaults.microsecMax - this._defaults.microsecMin) % this._defaults.stepMicrosec)), 10);
if (this.hour_slider) {
- this.control.options(this, this.hour_slider, 'hour', { min: this._defaults.hourMin, max: hourMax });
+ this.control.options(this, this.hour_slider, 'hour', { min: this._defaults.hourMin, max: hourMax, step: this._defaults.stepHour });
this.control.value(this, this.hour_slider, 'hour', this.hour - (this.hour % this._defaults.stepHour));
}
if (this.minute_slider) {
- this.control.options(this, this.minute_slider, 'minute', { min: this._defaults.minuteMin, max: minMax });
+ this.control.options(this, this.minute_slider, 'minute', { min: this._defaults.minuteMin, max: minMax, step: this._defaults.stepMinute });
this.control.value(this, this.minute_slider, 'minute', this.minute - (this.minute % this._defaults.stepMinute));
}
if (this.second_slider) {
- this.control.options(this, this.second_slider, 'second', { min: this._defaults.secondMin, max: secMax });
+ this.control.options(this, this.second_slider, 'second', { min: this._defaults.secondMin, max: secMax, step: this._defaults.stepSecond });
this.control.value(this, this.second_slider, 'second', this.second - (this.second % this._defaults.stepSecond));
}
if (this.millisec_slider) {
- this.control.options(this, this.millisec_slider, 'millisec', { min: this._defaults.millisecMin, max: millisecMax });
+ this.control.options(this, this.millisec_slider, 'millisec', { min: this._defaults.millisecMin, max: millisecMax, step: this._defaults.stepMillisec });
this.control.value(this, this.millisec_slider, 'millisec', this.millisec - (this.millisec % this._defaults.stepMillisec));
}
if (this.microsec_slider) {
- this.control.options(this, this.microsec_slider, 'microsec', { min: this._defaults.microsecMin, max: microsecMax });
+ this.control.options(this, this.microsec_slider, 'microsec', { min: this._defaults.microsecMin, max: microsecMax, step: this._defaults.stepMicrosec });
this.control.value(this, this.microsec_slider, 'microsec', this.microsec - (this.microsec % this._defaults.stepMicrosec));
}
}
@@ -812,7 +855,7 @@
this.timeDefined = true;
if (hasChanged) {
this._updateDateTime();
- this.$input.focus();
+ //this.$input.focus(); // may automatically open the picker on setDate
}
},
@@ -861,9 +904,9 @@
// return;
//}
- if (this._defaults.timeOnly === true) {
+ if (this._defaults.timeOnly === true && this._defaults.timeOnlyShowDate === false) {
formattedDateTime = this.formattedTime;
- } else if (this._defaults.timeOnly !== true && (this._defaults.alwaysSetTime || timeAvailable)) {
+ } else if ((this._defaults.timeOnly !== true && (this._defaults.alwaysSetTime || timeAvailable)) || (this._defaults.timeOnly === true && this._defaults.timeOnlyShowDate === true)) {
formattedDateTime += this._defaults.separator + this.formattedTime + this._defaults.timeSuffix;
}
@@ -1348,7 +1391,7 @@
var inst = this._getInst($(id)[0]),
tp_inst = this._get(inst, 'timepicker');
- if (tp_inst) {
+ if (tp_inst && inst.settings.showTimepicker) {
tp_inst._limitMinMaxDateTime(inst, true);
inst.inline = inst.stay_open = true;
//This way the onSelect handler called from calendarpicker get the full dateTime
@@ -2040,6 +2083,13 @@
end: {} // options for end picker
}, options);
+ // for the mean time this fixes an issue with calling getDate with timepicker()
+ var timeOnly = false;
+ if(method === 'timepicker'){
+ timeOnly = true;
+ method = 'datetimepicker';
+ }
+
function checkDates(changed, other) {
var startdt = startTime[method]('getDate'),
enddt = endTime[method]('getDate'),
@@ -2083,6 +2133,7 @@
}
$.fn[method].call(startTime, $.extend({
+ timeOnly: timeOnly,
onClose: function (dateText, inst) {
checkDates($(this), endTime);
},
@@ -2091,6 +2142,7 @@
}
}, options, options.start));
$.fn[method].call(endTime, $.extend({
+ timeOnly: timeOnly,
onClose: function (dateText, inst) {
checkDates($(this), startTime);
},