diff --git a/jquery-ui-timepicker-addon.js b/jquery-ui-timepicker-addon.js index 3a106ad..949ecfe 100644 --- a/jquery-ui-timepicker-addon.js +++ b/jquery-ui-timepicker-addon.js @@ -28,6 +28,7 @@ minute: 0, second: 0, ampm: '', + altFormattedDate: '', formattedDate: '', formattedTime: '', formattedDateTime: '', @@ -48,8 +49,15 @@ minute: 0, second: 0, timeFormat: 'hh:mm tt', - alwaysSetTime: true + alwaysSetTime: true, //---------------------------- + locale: { + time: 'Time', + hour: 'Hour', + minute: 'Minute', + second: 'Second', + chooseTime: 'Choose time' + } }, //######################################################################## @@ -138,17 +146,18 @@ /* End Added by Peter Medeiros */ - // Prevent displaying twice - if ($dp.find("div#ui-timepicker-div").length == 0) { + // Prevent displaying twice, changed to support inline datepickers (am I right here?) + if (dp_inst.dpDiv.find('div#ui-timepicker-div').length == 0) { + //if ($dp.find("div#ui-timepicker-div").length == 0) { var html = '
' + '
' + - '' + - '' + - '' + + '' + + '' + + '' + '' + - '' + + '' + '' + - '' + + '' + '' + '
' + '
'; @@ -156,8 +165,8 @@ $tp = $(html); if (tp_inst.defaults.timeOnly == true) { // if we only want time picker - $tp.prepend('
Choose Time
'); - $dp.find('.ui-datepicker-header, .ui-datepicker-calendar, .ui-datepicker-current').hide(); + $tp.prepend('
' + tp_inst.defaults.locale.chooseTime + '
'); + dp_inst.dpDiv.find('.ui-datepicker-header, .ui-datepicker-calendar, .ui-datepicker-current').hide(); } tp_inst.hour_slider = $tp.find('#ui_tpicker_hour').slider({ orientation: "horizontal", value: tp_inst.hour, min:0, max: hourMax, step: tp_inst.defaults.stepHour, slide: function(event, ui) { @@ -177,11 +186,11 @@ tp_inst.onTimeChange(dp_inst, tp_inst); } }); - $dp.find('.ui-datepicker-calendar').after($tp); - tp_inst.$timeObj = $('#ui_tpicker_time'); + // changed to support inline datepickers + dp_inst.dpDiv.find('.ui-datepicker-calendar').after($tp); + tp_inst.$timeObj = dp_inst.dpDiv.find('.ui-tpicker-time'); if (dp_inst != null) { - var timeDefined = tp_inst.timeDefined; tp_inst.onTimeChange(dp_inst, tp_inst); @@ -265,14 +274,22 @@ updateDateTime: function(dp_inst, tp_inst) { var dt = this.$input.datepicker('getDate'); - if (dt == null) + if (dt == null) { this.formattedDate = $.datepicker.formatDate($.datepicker._get(dp_inst, 'dateFormat'), new Date(), $.datepicker._getFormatConfig(dp_inst)); - else this.formattedDate = $.datepicker.formatDate($.datepicker._get(dp_inst, 'dateFormat'), dt, $.datepicker._getFormatConfig(dp_inst)); + if (this.$input.datepicker('option', 'altField')) { + this.altFormattedDate = $.datepicker.formatDate($.datepicker._get(dp_inst, 'altFormat'), new Date(), $.datepicker._getFormatConfig(dp_inst)); + } + } else { + this.formattedDate = $.datepicker.formatDate($.datepicker._get(dp_inst, 'dateFormat'), dt, $.datepicker._getFormatConfig(dp_inst)); + // Added to handle datepicker's alt format, if present + if (this.$input.datepicker('option', 'altField')) { + this.altFormattedDate = $.datepicker.formatDate($.datepicker._get(dp_inst, 'altFormat'), dt, $.datepicker._getFormatConfig(dp_inst)); + } + } if (this.defaults.alwaysSetTime) { this.formattedDateTime = this.formattedDate + ' ' + this.formattedTime; - } - else { + } else { if (dt == null || !tp_inst.timeDefined || tp_inst.timeDefined == false) { this.formattedDateTime = this.formattedDate; } @@ -281,10 +298,20 @@ } } //----------------------------- - - if (this.defaults.timeOnly == true) + // Added to handle datepicker's alt field, if present + if (this.$input.datepicker('option', 'altField')) { + if (this.defaults.timeOnly == true) { + $(this.$input.datepicker('option', 'altField')).val(this.formattedTime); + } else { + $(this.$input.datepicker('option', 'altField')).val(this.altFormattedDate+' '+this.formattedTime); + } + } + + if (this.defaults.timeOnly == true) { this.$input.val(this.formattedTime); - else this.$input.val(this.formattedDateTime); + } else { + this.$input.val(this.formattedDateTime); + } } };