diff options
author | Trent <trsserver@trsserver.(none)> | 2011-02-05 11:17:40 -0500 |
---|---|---|
committer | Trent <trsserver@trsserver.(none)> | 2011-02-05 11:17:40 -0500 |
commit | e5577fcc89e21842eef3192b7586bc800f3ecb94 (patch) | |
tree | b7ca3b45dff87f6004ae8e959373aa073eab7ada /jquery-ui-timepicker-addon.js | |
parent | 72f763dac5a0f99e2510049b50016f623e3c1a58 (diff) | |
parent | 9efeb990d2b91a45a5b31b1081d5a548e81f2970 (diff) | |
download | jQuery-Timepicker-Addon-e5577fcc89e21842eef3192b7586bc800f3ecb94.zip jQuery-Timepicker-Addon-e5577fcc89e21842eef3192b7586bc800f3ecb94.tar.gz jQuery-Timepicker-Addon-e5577fcc89e21842eef3192b7586bc800f3ecb94.tar.bz2 |
Merge branch 'dev'
Diffstat (limited to 'jquery-ui-timepicker-addon.js')
-rw-r--r-- | jquery-ui-timepicker-addon.js | 79 |
1 files changed, 58 insertions, 21 deletions
diff --git a/jquery-ui-timepicker-addon.js b/jquery-ui-timepicker-addon.js index ea97971..387c687 100644 --- a/jquery-ui-timepicker-addon.js +++ b/jquery-ui-timepicker-addon.js @@ -65,7 +65,8 @@ function Timepicker() { secondGrid: 0, alwaysSetTime: true, separator: ' ', - altFieldTimeOnly: true + altFieldTimeOnly: true, + showTimepicker: true }; $.extend(this._defaults, this.regional['']); } @@ -125,31 +126,30 @@ $.extend(Timepicker.prototype, { } } tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, o, { - beforeShow: function(input, dp_inst) { - if (o.altField) - tp_inst.$altInput = $($.datepicker._get(dp_inst, 'altField')) - .css({ cursor: 'pointer' }) - .focus(function(){ - $input.trigger("focus"); - }); + beforeShow: function(input, dp_inst) { if ($.isFunction(o.beforeShow)) - o.beforeShow(input, dp_inst); + o.beforeShow(input, dp_inst, tp_inst); }, onChangeMonthYear: function(year, month, dp_inst) { // Update the time as well : this prevents the time from disappearing from the $input field. tp_inst._updateDateTime(dp_inst); if ($.isFunction(o.onChangeMonthYear)) - o.onChangeMonthYear(year, month, dp_inst); + o.onChangeMonthYear(year, month, dp_inst, tp_inst); }, onClose: function(dateText, dp_inst) { if (tp_inst.timeDefined === true && $input.val() != '') tp_inst._updateDateTime(dp_inst); if ($.isFunction(o.onClose)) - o.onClose(dateText, dp_inst); + o.onClose(dateText, dp_inst, tp_inst); }, timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker'); }); + if (o.altField) + tp_inst.$altInput = $(o.altField) + .css({ cursor: 'pointer' }) + .focus(function(){ $input.trigger("focus"); }); + // datepicker needs minDate/maxDate, timepicker needs minDateTime/maxDateTime.. if(tp_inst._defaults.minDate !== undefined && tp_inst._defaults.minDate instanceof Date) tp_inst._defaults.minDateTime = new Date(tp_inst._defaults.minDate.getTime()); @@ -195,7 +195,7 @@ $.extend(Timepicker.prototype, { // the time should come after x number of characters and a space. // x = at least the length of text specified by the date format var dp_dateFormat = $.datepicker._get(this.inst, 'dateFormat'); - regstr = '.{' + dp_dateFormat.length + ',}\\s*' + this._defaults.separator.replace(/\s/g, '\\s?') + regstr; + regstr = '.{' + dp_dateFormat.length + ',}' + this._defaults.separator + regstr; } treg = timeString.match(new RegExp(regstr, 'i')); @@ -254,7 +254,8 @@ $.extend(Timepicker.prototype, { dp_id = this.inst.id.toString().replace(/([^A-Za-z0-9_])/g, ''); // Prevent displaying twice - if ($dp.find("div#ui-timepicker-div-"+ dp_id).length === 0) { + //if ($dp.find("div#ui-timepicker-div-"+ dp_id).length === 0) { + if ($dp.find("div#ui-timepicker-div-"+ dp_id).length === 0 && o.showTimepicker) { var noDisplay = ' style="display:none;"', html = '<div class="ui-timepicker-div" id="ui-timepicker-div-' + dp_id + '"><dl>' + '<dt class="ui_tpicker_time_label" id="ui_tpicker_time_label_' + dp_id + '"' + @@ -458,6 +459,18 @@ $.extend(Timepicker.prototype, { this._onTimeChange(); this.timeDefined = timeDefined; } + + //Emulate datepicker onSelect behavior. Call on slidestop. + var onSelect = tp_inst._defaults['onSelect']; + if (onSelect) { + var inputEl = tp_inst.$input ? tp_inst.$input[0] : null; + var onSelectHandler = function() { + onSelect.apply(inputEl, [tp_inst.formattedDateTime, tp_inst]); // trigger custom callback*/ + } + this.hour_slider.bind('slidestop',onSelectHandler); + this.minute_slider.bind('slidestop',onSelectHandler); + this.second_slider.bind('slidestop',onSelectHandler); + } } }, @@ -549,14 +562,12 @@ $.extend(Timepicker.prototype, { if (hasChanged) { - if (hour !== false) { - this.hour = hour; - if (this._defaults.ampm) this.ampm = ampm; - } + if (hour !== false)this.hour = hour; if (minute !== false) this.minute = minute; if (second !== false) this.second = second; - } + if (this._defaults.ampm) this.ampm = ampm; + this._formatTime(); if (this.$timeObj) this.$timeObj.text(this.formattedTime); this.timeDefined = true; @@ -621,8 +632,10 @@ $.extend(Timepicker.prototype, { } this.formattedDateTime = formattedDateTime; - - if (this.$altInput && this._defaults.altFieldTimeOnly === true) { + + if(!this._defaults.showTimepicker) { + this.$input.val(this.formattedDate); + } else if (this.$altInput && this._defaults.altFieldTimeOnly === true) { this.$altInput.val(this.formattedTime); this.$input.val(this.formattedDate); } else if(this.$altInput) { @@ -689,7 +702,8 @@ $.datepicker._selectDate = function (id, dateStr) { if (tp_inst) { tp_inst._limitMinMaxDateTime(inst, true); inst.inline = inst.stay_open = true; - this._base_selectDate(id, dateStr); + //This way the onSelect handler called from calendarpicker get the full dateTime + this._base_selectDate(id, dateStr + tp_inst._defaults.separator + tp_inst.formattedTime); inst.inline = inst.stay_open = false; this._notifyChange(inst); this._updateDatepicker(inst); @@ -773,6 +787,29 @@ $.datepicker._gotoToday = function(id) { }; //####################################################################################### +// Disable & enable the Time in the datetimepicker +//####################################################################################### +$.datepicker._disableTimepickerDatepicker = function(target, date, withDate) { + var inst = this._getInst(target), + tp_inst = this._get(inst, 'timepicker'); + if (tp_inst) { + tp_inst._defaults.showTimepicker = false; + tp_inst._onTimeChange(); + tp_inst._updateDateTime(inst); + } +}; + +$.datepicker._enableTimepickerDatepicker = function(target, date, withDate) { + var inst = this._getInst(target), + tp_inst = this._get(inst, 'timepicker'); + if (tp_inst) { + tp_inst._defaults.showTimepicker = true; + tp_inst._onTimeChange(); + tp_inst._updateDateTime(inst); + } +}; + +//####################################################################################### // Create our own set time function //####################################################################################### $.datepicker._setTime = function(inst, date) { |