summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStephen Vance <steve@vance.com>2013-07-28 21:24:49 -0400
committerStephen Vance <steve@vance.com>2013-07-28 21:24:49 -0400
commitdd065881f26b1c92b5e02cebb72c96dfea7c9515 (patch)
treec34d9c243276332667d0035e458ce435eda257c4 /src
parentc1112ad9e5531d0f94db452804ec70cea29e4b8d (diff)
downloadjQuery-Timepicker-Addon-dd065881f26b1c92b5e02cebb72c96dfea7c9515.zip
jQuery-Timepicker-Addon-dd065881f26b1c92b5e02cebb72c96dfea7c9515.tar.gz
jQuery-Timepicker-Addon-dd065881f26b1c92b5e02cebb72c96dfea7c9515.tar.bz2
Huge number of jshint motivated cleanups. We should consider adding jsbeautifier or some formatter to the grunt config so this doesn't have to be done manually.
Diffstat (limited to 'src')
-rw-r--r--src/jquery-ui-timepicker-addon.js797
1 files changed, 402 insertions, 395 deletions
diff --git a/src/jquery-ui-timepicker-addon.js b/src/jquery-ui-timepicker-addon.js
index 21da32e..37bfadb 100644
--- a/src/jquery-ui-timepicker-addon.js
+++ b/src/jquery-ui-timepicker-addon.js
@@ -10,9 +10,9 @@
* http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
*/
-/*jslint evil: true, white: false, undef: false, nomen: false */
+/*jslint evil: true, white: false, undef: false */
-(function($) {
+(function ($) {
/*
* Lets not redefine timepicker, Prevent "Uncaught RangeError: Maximum call stack size exceeded"
@@ -37,7 +37,7 @@
* Settings for (groups of) time pickers are maintained in an instance object,
* allowing multiple different settings on the same page.
*/
- var Timepicker = function() {
+ var Timepicker = function () {
this.regional = []; // Available regional settings, indexed by language code
this.regional[''] = { // Default regional settings
currentText: 'Now',
@@ -146,7 +146,7 @@
formattedTime: '',
formattedDateTime: '',
timezoneList: null,
- units: ['hour','minute','second','millisec', 'microsec'],
+ units: ['hour', 'minute', 'second', 'millisec', 'microsec'],
support: {},
control: null,
@@ -155,7 +155,7 @@
* @param {Object} settings object - the new settings to use as defaults (anonymous object)
* @return {Object} the manager object
*/
- setDefaults: function(settings) {
+ setDefaults: function (settings) {
extendRemove(this._defaults, settings || {});
return this;
},
@@ -163,14 +163,14 @@
/*
* Create a new Timepicker instance
*/
- _newInst: function($input, opts) {
+ _newInst: function ($input, opts) {
var tp_inst = new Timepicker(),
inlineSettings = {},
- fns = {},
- overrides, i;
+ fns = {},
+ overrides, i;
for (var attrName in this._defaults) {
- if(this._defaults.hasOwnProperty(attrName)){
+ if (this._defaults.hasOwnProperty(attrName)) {
var attrValue = $input.attr('time:' + attrName);
if (attrValue) {
try {
@@ -182,72 +182,72 @@
}
}
- overrides = {
- beforeShow: function (input, dp_inst) {
- if ($.isFunction(tp_inst._defaults.evnts.beforeShow)) {
- return tp_inst._defaults.evnts.beforeShow.call($input[0], 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(tp_inst._defaults.evnts.onChangeMonthYear)) {
- tp_inst._defaults.evnts.onChangeMonthYear.call($input[0], 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(tp_inst._defaults.evnts.onClose)) {
- tp_inst._defaults.evnts.onClose.call($input[0], dateText, dp_inst, tp_inst);
- }
- }
- };
- for (i in overrides) {
- if (overrides.hasOwnProperty(i)) {
- fns[i] = opts[i] || null;
- }
- }
-
- tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, opts, overrides, {
- evnts:fns,
- timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker');
- });
- tp_inst.amNames = $.map(tp_inst._defaults.amNames, function(val) {
+ overrides = {
+ beforeShow: function (input, dp_inst) {
+ if ($.isFunction(tp_inst._defaults.evnts.beforeShow)) {
+ return tp_inst._defaults.evnts.beforeShow.call($input[0], 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(tp_inst._defaults.evnts.onChangeMonthYear)) {
+ tp_inst._defaults.evnts.onChangeMonthYear.call($input[0], 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(tp_inst._defaults.evnts.onClose)) {
+ tp_inst._defaults.evnts.onClose.call($input[0], dateText, dp_inst, tp_inst);
+ }
+ }
+ };
+ for (i in overrides) {
+ if (overrides.hasOwnProperty(i)) {
+ fns[i] = opts[i] || null;
+ }
+ }
+
+ tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, opts, overrides, {
+ evnts: fns,
+ timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker');
+ });
+ tp_inst.amNames = $.map(tp_inst._defaults.amNames, function (val) {
return val.toUpperCase();
});
- tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function(val) {
+ tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function (val) {
return val.toUpperCase();
});
// detect which units are supported
tp_inst.support = detectSupport(
tp_inst._defaults.timeFormat +
- (tp_inst._defaults.pickerTimeFormat? tp_inst._defaults.pickerTimeFormat:'') +
- (tp_inst._defaults.altTimeFormat? tp_inst._defaults.altTimeFormat:''));
+ (tp_inst._defaults.pickerTimeFormat ? tp_inst._defaults.pickerTimeFormat : '') +
+ (tp_inst._defaults.altTimeFormat ? tp_inst._defaults.altTimeFormat : ''));
// controlType is string - key to our this._controls
- if(typeof(tp_inst._defaults.controlType) === 'string'){
- if(tp_inst._defaults.controlType == 'slider' && typeof($.ui.slider) === 'undefined'){
+ if (typeof(tp_inst._defaults.controlType) === 'string') {
+ if (tp_inst._defaults.controlType === 'slider' && typeof($.ui.slider) === 'undefined') {
tp_inst._defaults.controlType = 'select';
}
tp_inst.control = tp_inst._controls[tp_inst._defaults.controlType];
}
// controlType is an object and must implement create, options, value methods
- else{
+ else {
tp_inst.control = tp_inst._defaults.controlType;
}
// prep the timezone options
- var timezoneList = [-720,-660,-600,-570,-540,-480,-420,-360,-300,-270,-240,-210,-180,-120,-60,
- 0,60,120,180,210,240,270,300,330,345,360,390,420,480,525,540,570,600,630,660,690,720,765,780,840];
+ var timezoneList = [-720, -660, -600, -570, -540, -480, -420, -360, -300, -270, -240, -210, -180, -120, -60,
+ 0, 60, 120, 180, 210, 240, 270, 300, 330, 345, 360, 390, 420, 480, 525, 540, 570, 600, 630, 660, 690, 720, 765, 780, 840];
if (tp_inst._defaults.timezoneList !== null) {
timezoneList = tp_inst._defaults.timezoneList;
}
- var tzl=timezoneList.length,tzi=0,tzv=null;
+ var tzl = timezoneList.length, tzi = 0, tzv = null;
if (tzl > 0 && typeof timezoneList[0] !== 'object') {
- for(; tzi<tzl; tzi++){
+ for (; tzi < tzl; tzi++) {
tzv = timezoneList[tzi];
timezoneList[tzi] = { value: tzv, label: $.timepicker.timezoneOffsetString(tzv, tp_inst.support.iso8601) };
}
@@ -255,25 +255,25 @@
tp_inst._defaults.timezoneList = timezoneList;
// set the default units
- tp_inst.timezone = tp_inst._defaults.timezone !== null? $.timepicker.timezoneOffsetNumber(tp_inst._defaults.timezone) :
- ((new Date()).getTimezoneOffset()*-1);
- tp_inst.hour = tp_inst._defaults.hour < tp_inst._defaults.hourMin? tp_inst._defaults.hourMin :
- tp_inst._defaults.hour > tp_inst._defaults.hourMax? tp_inst._defaults.hourMax : tp_inst._defaults.hour;
- tp_inst.minute = tp_inst._defaults.minute < tp_inst._defaults.minuteMin? tp_inst._defaults.minuteMin :
- tp_inst._defaults.minute > tp_inst._defaults.minuteMax? tp_inst._defaults.minuteMax : tp_inst._defaults.minute;
- tp_inst.second = tp_inst._defaults.second < tp_inst._defaults.secondMin? tp_inst._defaults.secondMin :
- tp_inst._defaults.second > tp_inst._defaults.secondMax? tp_inst._defaults.secondMax : tp_inst._defaults.second;
- tp_inst.millisec = tp_inst._defaults.millisec < tp_inst._defaults.millisecMin? tp_inst._defaults.millisecMin :
- tp_inst._defaults.millisec > tp_inst._defaults.millisecMax? tp_inst._defaults.millisecMax : tp_inst._defaults.millisec;
- tp_inst.microsec = tp_inst._defaults.microsec < tp_inst._defaults.microsecMin? tp_inst._defaults.microsecMin :
- tp_inst._defaults.microsec > tp_inst._defaults.microsecMax? tp_inst._defaults.microsecMax : tp_inst._defaults.microsec;
+ tp_inst.timezone = tp_inst._defaults.timezone !== null ? $.timepicker.timezoneOffsetNumber(tp_inst._defaults.timezone) :
+ ((new Date()).getTimezoneOffset() * -1);
+ tp_inst.hour = tp_inst._defaults.hour < tp_inst._defaults.hourMin ? tp_inst._defaults.hourMin :
+ tp_inst._defaults.hour > tp_inst._defaults.hourMax ? tp_inst._defaults.hourMax : tp_inst._defaults.hour;
+ tp_inst.minute = tp_inst._defaults.minute < tp_inst._defaults.minuteMin ? tp_inst._defaults.minuteMin :
+ tp_inst._defaults.minute > tp_inst._defaults.minuteMax ? tp_inst._defaults.minuteMax : tp_inst._defaults.minute;
+ tp_inst.second = tp_inst._defaults.second < tp_inst._defaults.secondMin ? tp_inst._defaults.secondMin :
+ tp_inst._defaults.second > tp_inst._defaults.secondMax ? tp_inst._defaults.secondMax : tp_inst._defaults.second;
+ tp_inst.millisec = tp_inst._defaults.millisec < tp_inst._defaults.millisecMin ? tp_inst._defaults.millisecMin :
+ tp_inst._defaults.millisec > tp_inst._defaults.millisecMax ? tp_inst._defaults.millisecMax : tp_inst._defaults.millisec;
+ tp_inst.microsec = tp_inst._defaults.microsec < tp_inst._defaults.microsecMin ? tp_inst._defaults.microsecMin :
+ tp_inst._defaults.microsec > tp_inst._defaults.microsecMax ? tp_inst._defaults.microsecMax : tp_inst._defaults.microsec;
tp_inst.ampm = '';
tp_inst.$input = $input;
if (tp_inst._defaults.altField) {
tp_inst.$altInput = $(tp_inst._defaults.altField).css({
cursor: 'pointer'
- }).focus(function() {
+ }).focus(function () {
$input.trigger("focus");
});
}
@@ -298,7 +298,7 @@
if (tp_inst._defaults.maxDateTime !== undefined && tp_inst._defaults.maxDateTime instanceof Date) {
tp_inst._defaults.maxDate = new Date(tp_inst._defaults.maxDateTime.getTime());
}
- tp_inst.$input.bind('focus', function() {
+ tp_inst.$input.bind('focus', function () {
tp_inst._onFocus();
});
@@ -308,7 +308,7 @@
/*
* add our sliders to the calendar
*/
- _addTimePicker: function(dp_inst) {
+ _addTimePicker: function (dp_inst) {
var currDT = (this.$altInput && this._defaults.altFieldTimeOnly) ? this.$input.val() + ' ' + this.$altInput.val() : this.$input.val();
this.timeDefined = this._parseTime(currDT);
@@ -319,7 +319,7 @@
/*
* parse the time string from input value or _setTime
*/
- _parseTime: function(timeString, withDate) {
+ _parseTime: function (timeString, withDate) {
if (!this.inst) {
this.inst = $.datepicker._getInst(this.$input[0]);
}
@@ -353,7 +353,7 @@
/*
* generate and inject html for timepicker into ui datepicker
*/
- _injectTimePicker: function() {
+ _injectTimePicker: function () {
var $dp = this.inst.dpDiv,
o = this.inst.settings,
tp_inst = this,
@@ -363,44 +363,44 @@
max = {},
gridSize = {},
size = null,
- i=0,
- l=0;
+ i = 0,
+ l = 0;
// Prevent displaying twice
if ($dp.find("div.ui-timepicker-div").length === 0 && o.showTimepicker) {
var noDisplay = ' style="display:none;"',
- html = '<div class="ui-timepicker-div'+ (o.isRTL? ' ui-timepicker-rtl' : '') +'"><dl>' + '<dt class="ui_tpicker_time_label"' + ((o.showTime) ? '' : noDisplay) + '>' + o.timeText + '</dt>' +
+ html = '<div class="ui-timepicker-div' + (o.isRTL ? ' ui-timepicker-rtl' : '') + '"><dl>' + '<dt class="ui_tpicker_time_label"' + ((o.showTime) ? '' : noDisplay) + '>' + o.timeText + '</dt>' +
'<dd class="ui_tpicker_time"' + ((o.showTime) ? '' : noDisplay) + '></dd>';
// Create the markup
- for(i=0,l=this.units.length; i<l; i++){
+ for (i = 0, l = this.units.length; i < l; i++) {
litem = this.units[i];
- uitem = litem.substr(0,1).toUpperCase() + litem.substr(1);
- show = o['show'+uitem] !== null? o['show'+uitem] : this.support[litem];
+ uitem = litem.substr(0, 1).toUpperCase() + litem.substr(1);
+ show = o['show' + uitem] !== null ? o['show' + uitem] : this.support[litem];
// Added by Peter Medeiros:
// - Figure out what the hour/minute/second max should be based on the step values.
// - Example: if stepMinute is 15, then minMax is 45.
- max[litem] = parseInt((o[litem+'Max'] - ((o[litem+'Max'] - o[litem+'Min']) % o['step'+uitem])), 10);
+ max[litem] = parseInt((o[litem + 'Max'] - ((o[litem + 'Max'] - o[litem + 'Min']) % o['step' + uitem])), 10);
gridSize[litem] = 0;
- html += '<dt class="ui_tpicker_'+ litem +'_label"' + (show ? '' : noDisplay) + '>' + o[litem +'Text'] + '</dt>' +
- '<dd class="ui_tpicker_'+ litem +'"><div class="ui_tpicker_'+ litem +'_slider"' + (show ? '' : noDisplay) + '></div>';
+ html += '<dt class="ui_tpicker_' + litem + '_label"' + (show ? '' : noDisplay) + '>' + o[litem + 'Text'] + '</dt>' +
+ '<dd class="ui_tpicker_' + litem + '"><div class="ui_tpicker_' + litem + '_slider"' + (show ? '' : noDisplay) + '></div>';
- if (show && o[litem+'Grid'] > 0) {
+ if (show && o[litem + 'Grid'] > 0) {
html += '<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>';
- if(litem == 'hour'){
- for (var h = o[litem+'Min']; h <= max[litem]; h += parseInt(o[litem+'Grid'], 10)) {
+ if (litem === 'hour') {
+ for (var h = o[litem + 'Min']; h <= max[litem]; h += parseInt(o[litem + 'Grid'], 10)) {
gridSize[litem]++;
- var tmph = $.datepicker.formatTime(this.support.ampm? 'hht':'HH', {hour:h}, o);
- html += '<td data-for="'+litem+'">' + tmph + '</td>';
+ var tmph = $.datepicker.formatTime(this.support.ampm ? 'hht' : 'HH', {hour: h}, o);
+ html += '<td data-for="' + litem + '">' + tmph + '</td>';
}
}
- else{
- for (var m = o[litem+'Min']; m <= max[litem]; m += parseInt(o[litem+'Grid'], 10)) {
+ else {
+ for (var m = o[litem + 'Min']; m <= max[litem]; m += parseInt(o[litem + 'Grid'], 10)) {
gridSize[litem]++;
- html += '<td data-for="'+litem+'">' + ((m < 10) ? '0' : '') + m + '</td>';
+ html += '<td data-for="' + litem + '">' + ((m < 10) ? '0' : '') + m + '</td>';
}
}
@@ -410,7 +410,7 @@
}
// Timezone
- var showTz = o.showTimezone !== null? o.showTimezone : this.support.timezone;
+ var showTz = o.showTimezone !== null ? o.showTimezone : this.support.timezone;
html += '<dt class="ui_tpicker_timezone_label"' + (showTz ? '' : noDisplay) + '>' + o.timezoneText + '</dt>';
html += '<dd class="ui_tpicker_timezone" ' + (showTz ? '' : noDisplay) + '></dd>';
@@ -425,41 +425,41 @@
}
// add sliders, adjust grids, add events
- for(i=0,l=tp_inst.units.length; i<l; i++){
+ for (i = 0, l = tp_inst.units.length; i < l; i++) {
litem = tp_inst.units[i];
- uitem = litem.substr(0,1).toUpperCase() + litem.substr(1);
- show = o['show'+uitem] !== null? o['show'+uitem] : this.support[litem];
+ uitem = litem.substr(0, 1).toUpperCase() + litem.substr(1);
+ show = o['show' + uitem] !== null ? o['show' + uitem] : this.support[litem];
// add the slider
- tp_inst[litem+'_slider'] = tp_inst.control.create(tp_inst, $tp.find('.ui_tpicker_'+litem+'_slider'), litem, tp_inst[litem], o[litem+'Min'], max[litem], o['step'+uitem]);
+ tp_inst[litem + '_slider'] = tp_inst.control.create(tp_inst, $tp.find('.ui_tpicker_' + litem + '_slider'), litem, tp_inst[litem], o[litem + 'Min'], max[litem], o['step' + uitem]);
// adjust the grid and add click event
- if (show && o[litem+'Grid'] > 0) {
- size = 100 * gridSize[litem] * o[litem+'Grid'] / (max[litem] - o[litem+'Min']);
- $tp.find('.ui_tpicker_'+litem+' table').css({
+ if (show && o[litem + 'Grid'] > 0) {
+ size = 100 * gridSize[litem] * o[litem + 'Grid'] / (max[litem] - o[litem + 'Min']);
+ $tp.find('.ui_tpicker_' + litem + ' table').css({
width: size + "%",
- marginLeft: o.isRTL? '0' : ((size / (-2 * gridSize[litem])) + "%"),
- marginRight: o.isRTL? ((size / (-2 * gridSize[litem])) + "%") : '0',
+ marginLeft: o.isRTL ? '0' : ((size / (-2 * gridSize[litem])) + "%"),
+ marginRight: o.isRTL ? ((size / (-2 * gridSize[litem])) + "%") : '0',
borderCollapse: 'collapse'
- }).find("td").click(function(e){
+ }).find("td").click(function (e) {
var $t = $(this),
h = $t.html(),
- n = parseInt(h.replace(/[^0-9]/g),10),
+ n = parseInt(h.replace(/[^0-9]/g), 10),
ap = h.replace(/[^apm]/ig),
f = $t.data('for'); // loses scope, so we use data-for
- if(f == 'hour'){
- if(ap.indexOf('p') !== -1 && n < 12){
+ if (f === 'hour') {
+ if (ap.indexOf('p') !== -1 && n < 12) {
n += 12;
}
- else{
- if(ap.indexOf('a') !== -1 && n === 12){
+ else {
+ if (ap.indexOf('a') !== -1 && n === 12) {
n = 0;
}
}
}
- tp_inst.control.value(tp_inst, tp_inst[f+'_slider'], litem, n);
+ tp_inst.control.value(tp_inst, tp_inst[f + '_slider'], litem, n);
tp_inst._onTimeChange();
tp_inst._onSelectHandler();
@@ -475,24 +475,24 @@
// Add timezone options
this.timezone_select = $tp.find('.ui_tpicker_timezone').append('<select></select>').find("select");
$.fn.append.apply(this.timezone_select,
- $.map(o.timezoneList, function(val, idx) {
- return $("<option />").val(typeof val == "object" ? val.value : val).text(typeof val == "object" ? val.label : val);
+ $.map(o.timezoneList, function (val, idx) {
+ return $("<option />").val(typeof val === "object" ? val.value : val).text(typeof val === "object" ? val.label : val);
}));
- if (typeof(this.timezone) != "undefined" && this.timezone !== null && this.timezone !== "") {
- var local_timezone = (new Date(this.inst.selectedYear, this.inst.selectedMonth, this.inst.selectedDay, 12)).getTimezoneOffset()*-1;
- if (local_timezone == this.timezone) {
+ if (typeof(this.timezone) !== "undefined" && this.timezone !== null && this.timezone !== "") {
+ var local_timezone = (new Date(this.inst.selectedYear, this.inst.selectedMonth, this.inst.selectedDay, 12)).getTimezoneOffset() * -1;
+ if (local_timezone === this.timezone) {
selectLocalTimezone(tp_inst);
} else {
this.timezone_select.val(this.timezone);
}
} else {
- if (typeof(this.hour) != "undefined" && this.hour !== null && this.hour !== "") {
+ if (typeof(this.hour) !== "undefined" && this.hour !== null && this.hour !== "") {
this.timezone_select.val(o.timezone);
} else {
selectLocalTimezone(tp_inst);
}
}
- this.timezone_select.change(function() {
+ this.timezone_select.change(function () {
tp_inst._onTimeChange();
tp_inst._onSelectHandler();
});
@@ -520,21 +520,21 @@
rtl = this._defaults.isRTL;
sliderAccessArgs.isRTL = rtl;
- setTimeout(function() { // fix for inline mode
+ setTimeout(function () { // fix for inline mode
if ($tp.find('.ui-slider-access').length === 0) {
$tp.find('.ui-slider:visible').sliderAccess(sliderAccessArgs);
// fix any grids since sliders are shorter
var sliderAccessWidth = $tp.find('.ui-slider-access:eq(0)').outerWidth(true);
if (sliderAccessWidth) {
- $tp.find('table:visible').each(function() {
+ $tp.find('table:visible').each(function () {
var $g = $(this),
oldWidth = $g.outerWidth(),
- oldMarginLeft = $g.css(rtl? 'marginRight':'marginLeft').toString().replace('%', ''),
+ oldMarginLeft = $g.css(rtl ? 'marginRight' : 'marginLeft').toString().replace('%', ''),
newWidth = oldWidth - sliderAccessWidth,
newMarginLeft = ((oldMarginLeft * newWidth) / oldWidth) + '%',
css = { width: newWidth, marginRight: 0, marginLeft: 0 };
- css[rtl? 'marginRight':'marginLeft'] = newMarginLeft;
+ css[rtl ? 'marginRight' : 'marginLeft'] = newMarginLeft;
$g.css(css);
});
}
@@ -551,7 +551,7 @@
* This function tries to limit the ability to go outside the
* min/max date range
*/
- _limitMinMaxDateTime: function(dp_inst, adjustSliders) {
+ _limitMinMaxDateTime: function (dp_inst, adjustSliders) {
var o = this._defaults,
dp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay);
@@ -571,7 +571,7 @@
this.microsecMinOriginal = o.microsecMin;
}
- if (dp_inst.settings.timeOnly || minDateTimeDate.getTime() == dp_date.getTime()) {
+ if (dp_inst.settings.timeOnly || minDateTimeDate.getTime() === dp_date.getTime()) {
this._defaults.hourMin = minDateTime.getHours();
if (this.hour <= this._defaults.hourMin) {
this.hour = this._defaults.hourMin;
@@ -582,7 +582,7 @@
if (this.second <= this._defaults.secondMin) {
this.second = this._defaults.secondMin;
this._defaults.millisecMin = minDateTime.getMilliseconds();
- if(this.millisec <= this._defaults.millisecMin) {
+ if (this.millisec <= this._defaults.millisecMin) {
this.millisec = this._defaults.millisecMin;
this._defaults.microsecMin = minDateTime.getMicroseconds();
} else {
@@ -627,7 +627,7 @@
this.microsecMaxOriginal = o.microsecMax;
}
- if (dp_inst.settings.timeOnly || maxDateTimeDate.getTime() == dp_date.getTime()) {
+ if (dp_inst.settings.timeOnly || maxDateTimeDate.getTime() === dp_date.getTime()) {
this._defaults.hourMax = maxDateTime.getHours();
if (this.hour >= this._defaults.hourMax) {
this.hour = this._defaults.hourMax;
@@ -706,7 +706,7 @@
* when a slider moves, set the internal time...
* on time change is also called when the time is updated in the text field
*/
- _onTimeChange: function() {
+ _onTimeChange: function () {
var hour = (this.hour_slider) ? this.control.value(this, this.hour_slider, 'hour') : false,
minute = (this.minute_slider) ? this.control.value(this, this.minute_slider, 'minute') : false,
second = (this.second_slider) ? this.control.value(this, this.second_slider, 'second') : false,
@@ -717,22 +717,22 @@
pickerTimeFormat = o.pickerTimeFormat || o.timeFormat,
pickerTimeSuffix = o.pickerTimeSuffix || o.timeSuffix;
- if (typeof(hour) == 'object') {
+ if (typeof(hour) === 'object') {
hour = false;
}
- if (typeof(minute) == 'object') {
+ if (typeof(minute) === 'object') {
minute = false;
}
- if (typeof(second) == 'object') {
+ if (typeof(second) === 'object') {
second = false;
}
- if (typeof(millisec) == 'object') {
+ if (typeof(millisec) === 'object') {
millisec = false;
}
- if (typeof(microsec) == 'object') {
+ if (typeof(microsec) === 'object') {
microsec = false;
}
- if (typeof(timezone) == 'object') {
+ if (typeof(timezone) === 'object') {
timezone = false;
}
@@ -756,7 +756,7 @@
// If the update was done in the input field, the input field should not be updated.
// If the update was done using the sliders, update the input field.
- var hasChanged = (hour != this.hour || minute != this.minute || second != this.second || millisec != this.millisec || microsec != this.microsec
+ var hasChanged = (hour != this.hour || minute != this.minute || second != this.second || millisec != this.millisec || microsec != this.microsec
|| (this.ampm.length > 0 && (hour < 12) != ($.inArray(this.ampm.toUpperCase(), this.amNames) !== -1))
|| (this.timezone !== null && timezone != this.timezone));
@@ -794,10 +794,10 @@
// Updates the time within the timepicker
this.formattedTime = $.datepicker.formatTime(o.timeFormat, this, o);
if (this.$timeObj) {
- if(pickerTimeFormat === o.timeFormat){
+ if (pickerTimeFormat === o.timeFormat) {
this.$timeObj.text(this.formattedTime + pickerTimeSuffix);
}
- else{
+ else {
this.$timeObj.text($.datepicker.formatTime(pickerTimeFormat, this, o) + pickerTimeSuffix);
}
}
@@ -812,7 +812,7 @@
* call custom onSelect.
* bind to sliders slidestop, and grid click.
*/
- _onSelectHandler: function() {
+ _onSelectHandler: function () {
var onSelect = this._defaults.onSelect || this.inst.settings.onSelect;
var inputEl = this.$input ? this.$input[0] : null;
if (onSelect && inputEl) {
@@ -823,7 +823,7 @@
/*
* update our input with the new date time..
*/
- _updateDateTime: function(dp_inst) {
+ _updateDateTime: function (dp_inst) {
dp_inst = this.inst || dp_inst;
//var dt = $.datepicker._daylightSavingAdjust(new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay)),
var dt = $.datepicker._daylightSavingAdjust(new Date(dp_inst.currentYear, dp_inst.currentMonth, dp_inst.currentDay)),
@@ -834,10 +834,10 @@
var formattedDateTime = this.formattedDate;
// if a slider was changed but datepicker doesn't have a value yet, set it
- if(dp_inst.lastVal===""){
- dp_inst.currentYear=dp_inst.selectedYear;
- dp_inst.currentMonth=dp_inst.selectedMonth;
- dp_inst.currentDay=dp_inst.selectedDay;
+ if (dp_inst.lastVa === "") {
+ dp_inst.currentYear = dp_inst.selectedYear;
+ dp_inst.currentMonth = dp_inst.selectedMonth;
+ dp_inst.currentDay = dp_inst.selectedDay;
}
/*
@@ -868,23 +868,23 @@
altSeparator = this._defaults.altSeparator ? this._defaults.altSeparator : this._defaults.separator,
altTimeSuffix = this._defaults.altTimeSuffix ? this._defaults.altTimeSuffix : this._defaults.timeSuffix;
- if(!this._defaults.timeOnly){
- if (this._defaults.altFormat){
+ if (!this._defaults.timeOnly) {
+ if (this._defaults.altFormat) {
altFormattedDateTime = $.datepicker.formatDate(this._defaults.altFormat, (dt === null ? new Date() : dt), formatCfg);
}
- else{
+ else {
altFormattedDateTime = this.formattedDate;
}
- if (altFormattedDateTime){
+ if (altFormattedDateTime) {
altFormattedDateTime += altSeparator;
}
}
- if(this._defaults.altTimeFormat){
+ if (this._defaults.altTimeFormat) {
altFormattedDateTime += $.datepicker.formatTime(this._defaults.altTimeFormat, this, this._defaults) + altTimeSuffix;
}
- else{
+ else {
altFormattedDateTime += this.formattedTime + altTimeSuffix;
}
this.$altInput.val(altFormattedDateTime);
@@ -895,13 +895,13 @@
this.$input.trigger("change");
},
- _onFocus: function() {
+ _onFocus: function () {
if (!this.$input.val() && this._defaults.defaultValue) {
this.$input.val(this._defaults.defaultValue);
var inst = $.datepicker._getInst(this.$input.get(0)),
tp_inst = $.datepicker._get(inst, 'timepicker');
if (tp_inst) {
- if (tp_inst._defaults.timeOnly && (inst.input.val() != inst.lastVal)) {
+ if (tp_inst._defaults.timeOnly && (inst.input.val() !== inst.lastVal)) {
try {
$.datepicker._updateDatepicker(inst);
} catch (err) {
@@ -919,29 +919,29 @@
_controls: {
// slider methods
slider: {
- create: function(tp_inst, obj, unit, val, min, max, step){
+ create: function (tp_inst, obj, unit, val, min, max, step) {
var rtl = tp_inst._defaults.isRTL; // if rtl go -60->0 instead of 0->60
return obj.prop('slide', null).slider({
orientation: "horizontal",
- value: rtl? val*-1 : val,
- min: rtl? max*-1 : min,
- max: rtl? min*-1 : max,
+ value: rtl ? val * -1 : val,
+ min: rtl ? max * -1 : min,
+ max: rtl ? min * -1 : max,
step: step,
- slide: function(event, ui) {
- tp_inst.control.value(tp_inst, $(this), unit, rtl? ui.value*-1:ui.value);
+ slide: function (event, ui) {
+ tp_inst.control.value(tp_inst, $(this), unit, rtl ? ui.value * -1 : ui.value);
tp_inst._onTimeChange();
},
- stop: function(event, ui) {
+ stop: function (event, ui) {
tp_inst._onSelectHandler();
}
});
},
- options: function(tp_inst, obj, unit, opts, val){
- if(tp_inst._defaults.isRTL){
- if(typeof(opts) == 'string'){
- if(opts == 'min' || opts == 'max'){
- if(val !== undefined){
- return obj.slider(opts, val*-1);
+ options: function (tp_inst, obj, unit, opts, val) {
+ if (tp_inst._defaults.isRTL) {
+ if (typeof(opts) === 'string') {
+ if (opts === 'min' || opts === 'max') {
+ if (val !== undefined) {
+ return obj.slider(opts, val * -1);
}
return Math.abs(obj.slider(opts));
}
@@ -950,27 +950,27 @@
var min = opts.min,
max = opts.max;
opts.min = opts.max = null;
- if(min !== undefined){
+ if (min !== undefined) {
opts.max = min * -1;
}
- if(max !== undefined){
+ if (max !== undefined) {
opts.min = max * -1;
}
return obj.slider(opts);
}
- if(typeof(opts) == 'string' && val !== undefined){
- return obj.slider(opts, val);
+ if (typeof(opts) === 'string' && val !== undefined) {
+ return obj.slider(opts, val);
}
return obj.slider(opts);
},
- value: function(tp_inst, obj, unit, val){
- if(tp_inst._defaults.isRTL){
- if(val !== undefined){
- return obj.slider('value', val*-1);
+ value: function (tp_inst, obj, unit, val) {
+ if (tp_inst._defaults.isRTL) {
+ if (val !== undefined) {
+ return obj.slider('value', val * -1);
}
return Math.abs(obj.slider('value'));
}
- if(val !== undefined){
+ if (val !== undefined) {
return obj.slider('value', val);
}
return obj.slider('value');
@@ -978,45 +978,45 @@
},
// select methods
select: {
- create: function(tp_inst, obj, unit, val, min, max, step){
- var sel = '<select class="ui-timepicker-select" data-unit="'+ unit +'" data-min="'+ min +'" data-max="'+ max +'" data-step="'+ step +'">',
+ create: function (tp_inst, obj, unit, val, min, max, step) {
+ var sel = '<select class="ui-timepicker-select" data-unit="' + unit + '" data-min="' + min + '" data-max="' + max + '" data-step="' + step + '">',
format = tp_inst._defaults.pickerTimeFormat || tp_inst._defaults.timeFormat;
- for(var i=min; i<=max; i+=step){
- sel += '<option value="'+ i +'"'+ (i==val? ' selected':'') +'>';
- if(unit == 'hour'){
- sel += $.datepicker.formatTime($.trim(format.replace(/[^ht ]/ig,'')), {hour:i}, tp_inst._defaults);
+ for (var i = min; i <= max; i += step) {
+ sel += '<option value="' + i + '"' + (i === val ? ' selected' : '') + '>';
+ if (unit === 'hour') {
+ sel += $.datepicker.formatTime($.trim(format.replace(/[^ht ]/ig, '')), {hour: i}, tp_inst._defaults);
}
- else if(unit == 'millisec' || unit == 'microsec' || i >= 10){ sel += i; }
- else {sel += '0'+ i.toString(); }
+ else if (unit === 'millisec' || unit === 'microsec' || i >= 10) { sel += i; }
+ else {sel += '0' + i.toString(); }
sel += '</option>';
}
sel += '</select>';
obj.children('select').remove();
- $(sel).appendTo(obj).change(function(e){
+ $(sel).appendTo(obj).change(function (e) {
tp_inst._onTimeChange();
tp_inst._onSelectHandler();
});
return obj;
},
- options: function(tp_inst, obj, unit, opts, val){
+ options: function (tp_inst, obj, unit, opts, val) {
var o = {},
$t = obj.children('select');
- if(typeof(opts) == 'string'){
- if(val === undefined){
+ if (typeof(opts) === 'string') {
+ if (val === undefined) {
return $t.data(opts);
}
o[opts] = val;
}
- else{ o = opts; }
+ else { o = opts; }
return tp_inst.control.create(tp_inst, obj, $t.data('unit'), $t.val(), o.min || $t.data('min'), o.max || $t.data('max'), o.step || $t.data('step'));
},
- value: function(tp_inst, obj, unit, val){
+ value: function (tp_inst, obj, unit, val) {
var $t = obj.children('select');
- if(val !== undefined){
+ if (val !== undefined) {
return $t.val(val);
}
return $t.val();
@@ -1030,17 +1030,17 @@
/*
* shorthand just to use timepicker.
*/
- timepicker: function(o) {
+ timepicker: function (o) {
o = o || {};
var tmp_args = Array.prototype.slice.call(arguments);
- if (typeof o == 'object') {
+ if (typeof o === 'object') {
tmp_args[0] = $.extend(o, {
timeOnly: true
});
}
- return $(this).each(function() {
+ return $(this).each(function () {
$.fn.datetimepicker.apply($(this), tmp_args);
});
},
@@ -1048,21 +1048,21 @@
/*
* extend timepicker to datepicker
*/
- datetimepicker: function(o) {
+ datetimepicker: function (o) {
o = o || {};
var tmp_args = arguments;
- if (typeof(o) == 'string') {
- if (o == 'getDate') {
+ if (typeof(o) === 'string') {
+ if (o === 'getDate') {
return $.fn.datepicker.apply($(this[0]), tmp_args);
} else {
- return this.each(function() {
+ return this.each(function () {
var $t = $(this);
$t.datepicker.apply($t, tmp_args);
});
}
} else {
- return this.each(function() {
+ return this.each(function () {
var $t = $(this);
$t.datepicker($.timepicker._newInst($t, o)._defaults);
});
@@ -1073,7 +1073,7 @@
/*
* Public Utility to parse date and time
*/
- $.datepicker.parseDateTime = function(dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings) {
+ $.datepicker.parseDateTime = function (dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings) {
var parseRes = parseDateTimeInternal(dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings);
if (parseRes.timeObj) {
var t = parseRes.timeObj;
@@ -1087,15 +1087,15 @@
/*
* Public utility to parse time
*/
- $.datepicker.parseTime = function(timeFormat, timeString, options) {
+ $.datepicker.parseTime = function (timeFormat, timeString, options) {
var o = extendRemove(extendRemove({}, $.timepicker._defaults), options || {}),
- iso8601 = (timeFormat.replace(/\'.*?\'/g,'').indexOf('Z') !== -1);
+ iso8601 = (timeFormat.replace(/\'.*?\'/g, '').indexOf('Z') !== -1);
// Strict parse requires the timeString to match the timeFormat exactly
- var strictParse = function(f, s, o){
+ var strictParse = function (f, s, o) {
// pattern for standard and localized AM/PM markers
- var getPatternAmpm = function(amNames, pmNames) {
+ var getPatternAmpm = function (amNames, pmNames) {
var markers = [];
if (amNames) {
$.merge(markers, amNames);
@@ -1103,14 +1103,14 @@
if (pmNames) {
$.merge(markers, pmNames);
}
- markers = $.map(markers, function(val) {
+ markers = $.map(markers, function (val) {
return val.replace(/[.*+?|()\[\]{}\\]/g, '\\$&');
});
return '(' + markers.join('|') + ')?';
};
// figure out position of time elements.. cause js cant do named captures
- var getFormatPositions = function(timeFormat) {
+ var getFormatPositions = function (timeFormat) {
var finds = timeFormat.toLowerCase().match(/(h{1,2}|m{1,2}|s{1,2}|l{1}|c{1}|t{1,2}|z|'.*?')/g),
orders = {
h: -1,
@@ -1124,7 +1124,7 @@
if (finds) {
for (var i = 0; i < finds.length; i++) {
- if (orders[finds[i].toString().charAt(0)] == -1) {
+ if (orders[finds[i].toString().charAt(0)] === -1) {
orders[finds[i].toString().charAt(0)] = i + 1;
}
}
@@ -1136,15 +1136,22 @@
.replace(/([hH]{1,2}|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g, function (match) {
var ml = match.length;
switch (match.charAt(0).toLowerCase()) {
- case 'h': return ml === 1? '(\\d?\\d)':'(\\d{'+ml+'})';
- case 'm': return ml === 1? '(\\d?\\d)':'(\\d{'+ml+'})';
- case 's': return ml === 1? '(\\d?\\d)':'(\\d{'+ml+'})';
- case 'l': return '(\\d?\\d?\\d)';
- case 'c': return '(\\d?\\d?\\d)';
- case 'z': return '(z|[-+]\\d\\d:?\\d\\d|\\S+)?';
- case 't': return getPatternAmpm(o.amNames, o.pmNames);
- default: // literal escaped in quotes
- return '(' + match.replace(/\'/g, "").replace(/(\.|\$|\^|\\|\/|\(|\)|\[|\]|\?|\+|\*)/g, function (m) { return "\\" + m; }) + ')?';
+ case 'h':
+ return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml + '})';
+ case 'm':
+ return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml + '})';
+ case 's':
+ return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml + '})';
+ case 'l':
+ return '(\\d?\\d?\\d)';
+ case 'c':
+ return '(\\d?\\d?\\d)';
+ case 'z':
+ return '(z|[-+]\\d\\d:?\\d\\d|\\S+)?';
+ case 't':
+ return getPatternAmpm(o.amNames, o.pmNames);
+ default: // literal escaped in quotes
+ return '(' + match.replace(/\'/g, "").replace(/(\.|\$|\^|\\|\/|\(|\)|\[|\]|\?|\+|\*)/g, function (m) { return "\\" + m; }) + ')?';
}
})
.replace(/\s/g, '\\s?') +
@@ -1170,15 +1177,15 @@
resTime.ampm = '';
} else {
ampm = $.inArray(treg[order.t].toUpperCase(), o.amNames) !== -1 ? 'AM' : 'PM';
- resTime.ampm = o[ampm == 'AM' ? 'amNames' : 'pmNames'][0];
+ resTime.ampm = o[ampm === 'AM' ? 'amNames' : 'pmNames'][0];
}
}
if (order.h !== -1) {
- if (ampm == 'AM' && treg[order.h] == '12') {
+ if (ampm === 'AM' && treg[order.h] === '12') {
resTime.hour = 0; // 12am = 0 hour
} else {
- if (ampm == 'PM' && treg[order.h] != '12') {
+ if (ampm === 'PM' && treg[order.h] !== '12') {
resTime.hour = parseInt(treg[order.h], 10) + 12; // 12pm = 12 hour, any other pm = hour + 12
} else {
resTime.hour = Number(treg[order.h]);
@@ -1209,15 +1216,15 @@
};// end strictParse
// First try JS Date, if that fails, use strictParse
- var looseParse = function(f,s,o){
- try{
- var d = new Date('2012-01-01 '+ s);
- if(isNaN(d.getTime())){
- d = new Date('2012-01-01T'+ s);
- if(isNaN(d.getTime())){
- d = new Date('01/01/2012 '+ s);
- if(isNaN(d.getTime())){
- throw "Unable to parse time with native Date: "+ s;
+ var looseParse = function (f, s, o) {
+ try {
+ var d = new Date('2012-01-01 ' + s);
+ if (isNaN(d.getTime())) {
+ d = new Date('2012-01-01T' + s);
+ if (isNaN(d.getTime())) {
+ d = new Date('01/01/2012 ' + s);
+ if (isNaN(d.getTime())) {
+ throw "Unable to parse time with native Date: " + s;
}
}
}
@@ -1228,24 +1235,24 @@
second: d.getSeconds(),
millisec: d.getMilliseconds(),
microsec: d.getMicroseconds(),
- timezone: d.getTimezoneOffset()*-1
+ timezone: d.getTimezoneOffset() * -1
};
}
- catch(err){
- try{
- return strictParse(f,s,o);
+ catch (err) {
+ try {
+ return strictParse(f, s, o);
}
- catch(err2){
- $.timepicker.log("Unable to parse \ntimeString: "+ s +"\ntimeFormat: "+ f);
+ catch (err2) {
+ $.timepicker.log("Unable to parse \ntimeString: " + s + "\ntimeFormat: " + f);
}
}
return false;
}; // end looseParse
- if(typeof o.parse === "function"){
+ if (typeof o.parse === "function") {
return o.parse(timeFormat, timeString, o);
}
- if(o.parse === 'loose'){
+ if (o.parse === 'loose') {
return looseParse(timeFormat, timeString, o);
}
return strictParse(timeFormat, timeString, o);
@@ -1258,7 +1265,7 @@
* @param {Object} [options] essentially the regional[].. amNames, pmNames, ampm
* @returns {string} the formatted time
*/
- $.datepicker.formatTime = function(format, time, options) {
+ $.datepicker.formatTime = function (format, time, options) {
options = options || {};
options = $.extend({}, $.timepicker._defaults, options);
time = $.extend({
@@ -1278,8 +1285,8 @@
ampmName = options.pmNames[0];
}
- tmptime = tmptime.replace(/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g, function(match) {
- switch (match) {
+ tmptime = tmptime.replace(/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g, function (match) {
+ switch (match) {
case 'HH':
return ('0' + hour).slice(-2);
case 'H':
@@ -1301,12 +1308,12 @@
case 'c':
return ('00' + time.microsec).slice(-3);
case 'z':
- return $.timepicker.timezoneOffsetString(time.timezone === null? options.timezone : time.timezone, false);
+ return $.timepicker.timezoneOffsetString(time.timezone === null ? options.timezone : time.timezone, false);
case 'Z':
- return $.timepicker.timezoneOffsetString(time.timezone === null? options.timezone : time.timezone, true);
- case 'T':
+ return $.timepicker.timezoneOffsetString(time.timezone === null ? options.timezone : time.timezone, true);
+ case 'T':
return ampmName.charAt(0).toUpperCase();
- case 'TT':
+ case 'TT':
return ampmName.toUpperCase();
case 't':
return ampmName.charAt(0).toLowerCase();
@@ -1325,7 +1332,7 @@
// inspired: http://stackoverflow.com/questions/1252512/jquery-datepicker-prevent-closing-picker-when-clicking-a-date/1762378#1762378
*/
$.datepicker._base_selectDate = $.datepicker._selectDate;
- $.datepicker._selectDate = function(id, dateStr) {
+ $.datepicker._selectDate = function (id, dateStr) {
var inst = this._getInst($(id)[0]),
tp_inst = this._get(inst, 'timepicker');
@@ -1347,7 +1354,7 @@
* and does not redraw the datepicker on every selectDate event
*/
$.datepicker._base_updateDatepicker = $.datepicker._updateDatepicker;
- $.datepicker._updateDatepicker = function(inst) {
+ $.datepicker._updateDatepicker = function (inst) {
// don't popup the datepicker if there is another instance already opened
var input = inst.input[0];
@@ -1371,14 +1378,14 @@
* third bad hack :/ override datepicker so it allows spaces and colon in the input field
*/
$.datepicker._base_doKeyPress = $.datepicker._doKeyPress;
- $.datepicker._doKeyPress = function(event) {
+ $.datepicker._doKeyPress = function (event) {
var inst = $.datepicker._getInst(event.target),
tp_inst = $.datepicker._get(inst, 'timepicker');
if (tp_inst) {
if ($.datepicker._get(inst, 'constrainInput')) {
var ampm = tp_inst.support.ampm,
- tz = tp_inst._defaults.showTimezone !== null? tp_inst._defaults.showTimezone : tp_inst.support.timezone,
+ tz = tp_inst._defaults.showTimezone !== null ? tp_inst._defaults.showTimezone : tp_inst.support.timezone,
dateChars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat')),
datetimeChars = tp_inst._defaults.timeFormat.toString()
.replace(/[hms]/g, '')
@@ -1406,9 +1413,9 @@
*/
$.datepicker._base_updateAlternate = $.datepicker._updateAlternate;
/* Update any alternate field to synchronise with the main field. */
- $.datepicker._updateAlternate = function(inst) {
+ $.datepicker._updateAlternate = function (inst) {
var tp_inst = this._get(inst, 'timepicker');
- if(tp_inst){
+ if (tp_inst) {
var altField = tp_inst._defaults.altField;
if (altField) { // update alternate field too
var altFormat = tp_inst._defaults.altFormat || tp_inst._defaults.dateFormat,
@@ -1420,18 +1427,18 @@
altTimeFormat = tp_inst._defaults.altTimeFormat !== null ? tp_inst._defaults.altTimeFormat : tp_inst._defaults.timeFormat;
altFormattedDateTime += $.datepicker.formatTime(altTimeFormat, tp_inst, tp_inst._defaults) + altTimeSuffix;
- if(!tp_inst._defaults.timeOnly && !tp_inst._defaults.altFieldTimeOnly && date !== null){
- if(tp_inst._defaults.altFormat){
+ if (!tp_inst._defaults.timeOnly && !tp_inst._defaults.altFieldTimeOnly && date !== null) {
+ if (tp_inst._defaults.altFormat) {
altFormattedDateTime = $.datepicker.formatDate(tp_inst._defaults.altFormat, date, formatCfg) + altSeparator + altFormattedDateTime;
}
- else{
+ else {
altFormattedDateTime = tp_inst.formattedDate + altSeparator + altFormattedDateTime;
}
}
$(altField).val(altFormattedDateTime);
}
}
- else{
+ else {
$.datepicker._base_updateAlternate(inst);
}
};
@@ -1440,7 +1447,7 @@
* Override key up event to sync manual input changes.
*/
$.datepicker._base_doKeyUp = $.datepicker._doKeyUp;
- $.datepicker._doKeyUp = function(event) {
+ $.datepicker._doKeyUp = function (event) {
var inst = $.datepicker._getInst(event.target),
tp_inst = $.datepicker._get(inst, 'timepicker');
@@ -1461,7 +1468,7 @@
* override "Today" button to also grab the time.
*/
$.datepicker._base_gotoToday = $.datepicker._gotoToday;
- $.datepicker._gotoToday = function(id) {
+ $.datepicker._gotoToday = function (id) {
var inst = this._getInst($(id)[0]),
$dp = inst.dpDiv;
this._base_gotoToday(id);
@@ -1475,7 +1482,7 @@
/*
* Disable & enable the Time in the datetimepicker
*/
- $.datepicker._disableTimepickerDatepicker = function(target) {
+ $.datepicker._disableTimepickerDatepicker = function (target) {
var inst = this._getInst(target);
if (!inst) {
return;
@@ -1489,7 +1496,7 @@
}
};
- $.datepicker._enableTimepickerDatepicker = function(target) {
+ $.datepicker._enableTimepickerDatepicker = function (target) {
var inst = this._getInst(target);
if (!inst) {
return;
@@ -1507,7 +1514,7 @@
/*
* Create our own set time function
*/
- $.datepicker._setTime = function(inst, date) {
+ $.datepicker._setTime = function (inst, date) {
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
var defaults = tp_inst._defaults;
@@ -1530,7 +1537,7 @@
/*
* Create new public method to set only time, callable as $().datepicker('setTime', date)
*/
- $.datepicker._setTimeDatepicker = function(target, date, withDate) {
+ $.datepicker._setTimeDatepicker = function (target, date, withDate) {
var inst = this._getInst(target);
if (!inst) {
return;
@@ -1542,7 +1549,7 @@
this._setDateFromField(inst);
var tp_date;
if (date) {
- if (typeof date == "string") {
+ if (typeof date === "string") {
tp_inst._parseTime(date, withDate);
tp_date = new Date();
tp_date.setHours(tp_inst.hour, tp_inst.minute, tp_inst.second, tp_inst.millisec);
@@ -1551,7 +1558,7 @@
tp_date = new Date(date.getTime());
tp_date.setMicroseconds(date.getMicroseconds());
}
- if (tp_date.toString() == 'Invalid Date') {
+ if (tp_date.toString() === 'Invalid Date') {
tp_date = undefined;
}
this._setTime(inst, tp_date);
@@ -1564,15 +1571,15 @@
* override setDate() to allow setting time too within Date object
*/
$.datepicker._base_setDateDatepicker = $.datepicker._setDateDatepicker;
- $.datepicker._setDateDatepicker = function(target, date) {
+ $.datepicker._setDateDatepicker = function (target, date) {
var inst = this._getInst(target);
if (!inst) {
return;
}
- if(typeof(date) === 'string'){
+ if (typeof(date) === 'string') {
date = new Date(date);
- if(!date.getTime()){
+ if (!date.getTime()) {
$.timepicker.log("Error creating Date object from string.");
}
}
@@ -1590,10 +1597,10 @@
// object will only return the timezone offset for the current locale, so we
// adjust it accordingly. If not using timezone option this won't matter..
// If a timezone is different in tp, keep the timezone as is
- if(tp_inst){
+ if (tp_inst) {
// look out for DST if tz wasn't specified
- if(!tp_inst.support.timezone && tp_inst._defaults.timezone === null){
- tp_inst.timezone = tp_date.getTimezoneOffset()*-1;
+ if (!tp_inst.support.timezone && tp_inst._defaults.timezone === null) {
+ tp_inst.timezone = tp_date.getTimezoneOffset() * -1;
}
date = $.timepicker.timezoneAdjust(date, tp_inst.timezone);
tp_date = $.timepicker.timezoneAdjust(tp_date, tp_inst.timezone);
@@ -1608,7 +1615,7 @@
* override getDate() to allow getting time too within Date object
*/
$.datepicker._base_getDateDatepicker = $.datepicker._getDateDatepicker;
- $.datepicker._getDateDatepicker = function(target, noDefault) {
+ $.datepicker._getDateDatepicker = function (target, noDefault) {
var inst = this._getInst(target);
if (!inst) {
return;
@@ -1618,7 +1625,7 @@
if (tp_inst) {
// if it hasn't yet been defined, grab from field
- if(inst.lastVal === undefined){
+ if (inst.lastVal === undefined) {
this._setDateFromField(inst, noDefault);
}
@@ -1630,10 +1637,10 @@
// This is important if you are using the timezone option, javascript's Date
// object will only return the timezone offset for the current locale, so we
// adjust it accordingly. If not using timezone option this won't matter..
- if(tp_inst.timezone != null){
+ if (tp_inst.timezone != null) {
// look out for DST if tz wasn't specified
- if(!tp_inst.support.timezone && tp_inst._defaults.timezone === null){
- tp_inst.timezone = date.getTimezoneOffset()*-1;
+ if (!tp_inst.support.timezone && tp_inst._defaults.timezone === null) {
+ tp_inst.timezone = date.getTimezoneOffset() * -1;
}
date = $.timepicker.timezoneAdjust(date, tp_inst.timezone);
}
@@ -1648,7 +1655,7 @@
* An option in datapicker to ignore extra format characters would be nicer.
*/
$.datepicker._base_parseDate = $.datepicker.parseDate;
- $.datepicker.parseDate = function(format, value, settings) {
+ $.datepicker.parseDate = function (format, value, settings) {
var date;
try {
date = this._base_parseDate(format, value, settings);
@@ -1657,7 +1664,7 @@
// the "extra" characters. We rely on that instead of
// attempting to perfectly reproduce the parsing algorithm.
if (err.indexOf(":") >= 0) {
- date = this._base_parseDate(format, value.substring(0,value.length-(err.length-err.indexOf(':')-2)), settings);
+ date = this._base_parseDate(format, value.substring(0, value.length - (err.length - err.indexOf(':') - 2)), settings);
$.timepicker.log("Error parsing the date string: " + err + "\ndate string = " + value + "\ndate format = " + format);
} else {
throw err;
@@ -1670,7 +1677,7 @@
* override formatDate to set date with time to the input
*/
$.datepicker._base_formatDate = $.datepicker._formatDate;
- $.datepicker._formatDate = function(inst, day, month, year) {
+ $.datepicker._formatDate = function (inst, day, month, year) {
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
tp_inst._updateDateTime(inst);
@@ -1683,9 +1690,9 @@
* override options setter to add time to maxDate(Time) and minDate(Time). MaxDate
*/
$.datepicker._base_optionDatepicker = $.datepicker._optionDatepicker;
- $.datepicker._optionDatepicker = function(target, name, value) {
+ $.datepicker._optionDatepicker = function (target, name, value) {
var inst = this._getInst(target),
- name_clone;
+ name_clone;
if (!inst) {
return null;
}
@@ -1698,63 +1705,63 @@
overrides = tp_inst._defaults.evnts,
fns = {},
prop;
- if (typeof name == 'string') { // if min/max was set with the string
- if (name === 'minDate' || name === 'minDateTime') {
- min = value;
- } else if (name === 'maxDate' || name === 'maxDateTime') {
- max = value;
- } else if (name === 'onSelect') {
- onselect = value;
- } else if (overrides.hasOwnProperty(name)) {
- if (typeof (value) === 'undefined') {
- return overrides[name];
- }
- fns[name] = value;
- name_clone = {}; //empty results in exiting function after overrides updated
- }
- } else if (typeof name == 'object') { //if min/max was set with the JSON
- if (name.minDate) {
- min = name.minDate;
- } else if (name.minDateTime) {
- min = name.minDateTime;
- } else if (name.maxDate) {
- max = name.maxDate;
- } else if (name.maxDateTime) {
- max = name.maxDateTime;
- }
- for (prop in overrides) {
- if (overrides.hasOwnProperty(prop) && name[prop]) {
- fns[prop] = name[prop];
- }
- }
- }
- for (prop in fns) {
- if (fns.hasOwnProperty(prop)) {
- overrides[prop] = fns[prop];
- if (!name_clone) { name_clone = $.extend({}, name);}
- delete name_clone[prop];
- }
- }
- if (name_clone && isEmptyObject(name_clone)) { return; }
- if (min) { //if min was set
- if (min === 0) {
- min = new Date();
- } else {
- min = new Date(min);
- }
- tp_inst._defaults.minDate = min;
- tp_inst._defaults.minDateTime = min;
- } else if (max) { //if max was set
- if (max === 0) {
- max = new Date();
- } else {
- max = new Date(max);
- }
- tp_inst._defaults.maxDate = max;
- tp_inst._defaults.maxDateTime = max;
- } else if (onselect) {
- tp_inst._defaults.onSelect = onselect;
- }
+ if (typeof name === 'string') { // if min/max was set with the string
+ if (name === 'minDate' || name === 'minDateTime') {
+ min = value;
+ } else if (name === 'maxDate' || name === 'maxDateTime') {
+ max = value;
+ } else if (name === 'onSelect') {
+ onselect = value;
+ } else if (overrides.hasOwnProperty(name)) {
+ if (typeof (value) === 'undefined') {
+ return overrides[name];
+ }
+ fns[name] = value;
+ name_clone = {}; //empty results in exiting function after overrides updated
+ }
+ } else if (typeof name === 'object') { //if min/max was set with the JSON
+ if (name.minDate) {
+ min = name.minDate;
+ } else if (name.minDateTime) {
+ min = name.minDateTime;
+ } else if (name.maxDate) {
+ max = name.maxDate;
+ } else if (name.maxDateTime) {
+ max = name.maxDateTime;
+ }
+ for (prop in overrides) {
+ if (overrides.hasOwnProperty(prop) && name[prop]) {
+ fns[prop] = name[prop];
+ }
+ }
+ }
+ for (prop in fns) {
+ if (fns.hasOwnProperty(prop)) {
+ overrides[prop] = fns[prop];
+ if (!name_clone) { name_clone = $.extend({}, name); }
+ delete name_clone[prop];
+ }
+ }
+ if (name_clone && isEmptyObject(name_clone)) { return; }
+ if (min) { //if min was set
+ if (min === 0) {
+ min = new Date();
+ } else {
+ min = new Date(min);
+ }
+ tp_inst._defaults.minDate = min;
+ tp_inst._defaults.minDateTime = min;
+ } else if (max) { //if max was set
+ if (max === 0) {
+ max = new Date();
+ } else {
+ max = new Date(max);
+ }
+ tp_inst._defaults.maxDate = max;
+ tp_inst._defaults.maxDateTime = max;
+ } else if (onselect) {
+ tp_inst._defaults.onSelect = onselect;
+ }
}
if (value === undefined) {
return this._base_optionDatepicker.call($.datepicker, target, name);
@@ -1766,7 +1773,7 @@
* jQuery isEmptyObject does not check hasOwnProperty - if someone has added to the object prototype,
* it will return false for all objects
*/
- var isEmptyObject = function(obj) {
+ var isEmptyObject = function (obj) {
var prop;
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
@@ -1779,7 +1786,7 @@
/*
* jQuery extend now ignores nulls!
*/
- var extendRemove = function(target, props) {
+ var extendRemove = function (target, props) {
$.extend(target, props);
for (var name in props) {
if (props[name] === null || props[name] === undefined) {
@@ -1793,19 +1800,19 @@
* Determine by the time format which units are supported
* Returns an object of booleans for each unit
*/
- var detectSupport = function(timeFormat){
- var tf = timeFormat.replace(/'.*?'/g,'').toLowerCase(), // removes literals
- isIn = function(f, t){ // does the format contain the token?
+ var detectSupport = function (timeFormat) {
+ var tf = timeFormat.replace(/'.*?'/g, '').toLowerCase(), // removes literals
+ isIn = function (f, t) { // does the format contain the token?
return !!(f.indexOf(t) !== -1);
};
return {
- hour: isIn(tf,'h'),
- minute: isIn(tf,'m'),
- second: isIn(tf,'s'),
- millisec: isIn(tf,'l'),
- microsec: isIn(tf,'c'),
- timezone: isIn(tf,'z'),
- ampm: isIn(tf, 't') && isIn(timeFormat,'h'),
+ hour: isIn(tf, 'h'),
+ minute: isIn(tf, 'm'),
+ second: isIn(tf, 's'),
+ millisec: isIn(tf, 'l'),
+ microsec: isIn(tf, 'c'),
+ timezone: isIn(tf, 'z'),
+ ampm: isIn(tf, 't') && isIn(timeFormat, 'h'),
iso8601: isIn(timeFormat, 'Z')
};
};
@@ -1814,7 +1821,7 @@
* Converts 24 hour format into 12 hour
* Returns 12 hour without leading 0
*/
- var convert24to12 = function(hour) {
+ var convert24to12 = function (hour) {
hour %= 12;
if (hour === 0) {
@@ -1833,7 +1840,7 @@
* Throws exception when date can't be parsed
* Returns {dateString: dateString, timeString: timeString}
*/
- var splitDateTime = function(dateTimeString, timeSettings) {
+ var splitDateTime = function (dateTimeString, timeSettings) {
// The idea is to get the number separator occurrences in datetime and the time format requested (since time has
// fewer unknowns, mostly numbers and am/pm). We will use the time pattern to split.
var separator = computeEffectiveSetting(timeSettings, 'separator'),
@@ -1845,8 +1852,8 @@
if (allPartsLen > 1) {
return {
- dateString: allParts.splice(0,allPartsLen-timePartsLen).join(separator),
- timeString: allParts.splice(0,timePartsLen).join(separator)
+ dateString: allParts.splice(0, allPartsLen - timePartsLen).join(separator),
+ timeString: allParts.splice(0, timePartsLen).join(separator)
};
}
@@ -1862,7 +1869,7 @@
* date - parsed date without time (type Date)
* timeObj = {hour: , minute: , second: , millisec: , microsec: } - parsed time. Optional
*/
- var parseDateTimeInternal = function(dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings) {
+ var parseDateTimeInternal = function (dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings) {
var date,
parts,
parsedTime;
@@ -1891,7 +1898,7 @@
/*
* Internal function to set timezone_select to the local timezone
*/
- var selectLocalTimezone = function(tp_inst, date) {
+ var selectLocalTimezone = function (tp_inst, date) {
if (tp_inst && tp_inst.timezone_select) {
var now = date || new Date();
tp_inst.timezone_select.val(-now.getTimezoneOffset());
@@ -1909,18 +1916,18 @@
* @param {boolean} iso8601 if true formats in accordance to iso8601 "+12:45"
* @return {string}
*/
- $.timepicker.timezoneOffsetString = function(tzMinutes, iso8601) {
- if(isNaN(tzMinutes) || tzMinutes > 840 || tzMinutes < -720){
+ $.timepicker.timezoneOffsetString = function (tzMinutes, iso8601) {
+ if (isNaN(tzMinutes) || tzMinutes > 840 || tzMinutes < -720) {
return tzMinutes;
}
var off = tzMinutes,
minutes = off % 60,
hours = (off - minutes) / 60,
- iso = iso8601? ':':'',
+ iso = iso8601 ? ':' : '',
tz = (off >= 0 ? '+' : '-') + ('0' + Math.abs(hours)).slice(-2) + iso + ('0' + Math.abs(minutes)).slice(-2);
- if(tz == '+00:00'){
+ if (tz === '+00:00') {
return 'Z';
}
return tz;
@@ -1931,20 +1938,20 @@
* @param {string} tzString formatted like "+0500", "-1245", "Z"
* @return {number} the offset minutes or the original string if it doesn't match expectations
*/
- $.timepicker.timezoneOffsetNumber = function(tzString) {
- var normalized = tzString.toString().replace(':',''); // excuse any iso8601, end up with "+1245"
+ $.timepicker.timezoneOffsetNumber = function (tzString) {
+ var normalized = tzString.toString().replace(':', ''); // excuse any iso8601, end up with "+1245"
- if(normalized.toUpperCase() === 'Z'){ // if iso8601 with Z, its 0 minute offset
+ if (normalized.toUpperCase() === 'Z') { // if iso8601 with Z, its 0 minute offset
return 0;
}
- if(!/^(\-|\+)\d{4}$/.test(normalized)){ // possibly a user defined tz, so just give it back
+ if (!/^(\-|\+)\d{4}$/.test(normalized)) { // possibly a user defined tz, so just give it back
return tzString;
}
- return ((normalized.substr(0,1) =='-'? -1 : 1) * // plus or minus
- ((parseInt(normalized.substr(1,2),10)*60) + // hours (converted to minutes)
- parseInt(normalized.substr(3,2),10))); // minutes
+ return ((normalized.substr(0, 1) === '-' ? -1 : 1) * // plus or minus
+ ((parseInt(normalized.substr(1, 2), 10) * 60) + // hours (converted to minutes)
+ parseInt(normalized.substr(3, 2), 10))); // minutes
};
/**
@@ -1953,9 +1960,9 @@
* @param {string} toTimezone formatted like "+0500", "-1245"
* @return {Date}
*/
- $.timepicker.timezoneAdjust = function(date, toTimezone) {
+ $.timepicker.timezoneAdjust = function (date, toTimezone) {
var toTz = $.timepicker.timezoneOffsetNumber(toTimezone);
- if(!isNaN(toTz)){
+ if (!isNaN(toTz)) {
date.setMinutes(date.getMinutes() + -date.getTimezoneOffset() - toTz);
}
return date;
@@ -1970,7 +1977,7 @@
* @param {Object} options Options for the timepicker() call
* @return {jQuery}
*/
- $.timepicker.timeRange = function(startTime, endTime, options) {
+ $.timepicker.timeRange = function (startTime, endTime, options) {
return $.timepicker.handleRange('timepicker', startTime, endTime, options);
};
@@ -1984,7 +1991,7 @@
* @param {string} method Can be used to specify the type of picker to be added
* @return {jQuery}
*/
- $.timepicker.datetimeRange = function(startTime, endTime, options) {
+ $.timepicker.datetimeRange = function (startTime, endTime, options) {
$.timepicker.handleRange('datetimepicker', startTime, endTime, options);
};
@@ -1997,7 +2004,7 @@
* a boolean value that can be used to reformat the input values to the `dateFormat`.
* @return {jQuery}
*/
- $.timepicker.dateRange = function(startTime, endTime, options) {
+ $.timepicker.dateRange = function (startTime, endTime, options) {
$.timepicker.handleRange('datepicker', startTime, endTime, options);
};
@@ -2011,7 +2018,7 @@
* a boolean value that can be used to reformat the input values to the `dateFormat`.
* @return {jQuery}
*/
- $.timepicker.handleRange = function(method, startTime, endTime, options) {
+ $.timepicker.handleRange = function (method, startTime, endTime, options) {
options = $.extend({}, {
minInterval: 0, // min allowed interval in milliseconds
maxInterval: 0, // max allowed interval in milliseconds
@@ -2019,47 +2026,26 @@
end: {} // options for end picker
}, options);
- $.fn[method].call(startTime, $.extend({
- onClose: function(dateText, inst) {
- checkDates($(this), endTime);
- },
- onSelect: function(selectedDateTime) {
- selected($(this), endTime, 'minDate');
- }
- }, options, options.start));
- $.fn[method].call(endTime, $.extend({
- onClose: function(dateText, inst) {
- checkDates($(this), startTime);
- },
- onSelect: function(selectedDateTime) {
- selected($(this), startTime, 'maxDate');
- }
- }, options, options.end));
-
- checkDates(startTime, endTime);
- selected(startTime, endTime, 'minDate');
- selected(endTime, startTime, 'maxDate');
-
function checkDates(changed, other) {
var startdt = startTime[method]('getDate'),
enddt = endTime[method]('getDate'),
changeddt = changed[method]('getDate');
- if(startdt !== null){
+ if (startdt !== null) {
var minDate = new Date(startdt.getTime()),
maxDate = new Date(startdt.getTime());
minDate.setMilliseconds(minDate.getMilliseconds() + options.minInterval);
maxDate.setMilliseconds(maxDate.getMilliseconds() + options.maxInterval);
- if(options.minInterval > 0 && minDate > enddt){ // minInterval check
- endTime[method]('setDate',minDate);
+ if (options.minInterval > 0 && minDate > enddt) { // minInterval check
+ endTime[method]('setDate', minDate);
}
- else if(options.maxInterval > 0 && maxDate < enddt){ // max interval check
- endTime[method]('setDate',maxDate);
+ else if (options.maxInterval > 0 && maxDate < enddt) { // max interval check
+ endTime[method]('setDate', maxDate);
}
else if (startdt > enddt) {
- other[method]('setDate',changeddt);
+ other[method]('setDate', changeddt);
}
}
}
@@ -2069,11 +2055,11 @@
return;
}
var date = changed[method].call(changed, 'getDate');
- if(date !== null && options.minInterval > 0){
- if(option == 'minDate'){
- date.setMilliseconds(date.getMilliseconds() + options.minInterval);
+ if (date !== null && options.minInterval > 0) {
+ if (option === 'minDate') {
+ date.setMilliseconds(date.getMilliseconds() + options.minInterval);
}
- if(option == 'maxDate'){
+ if (option === 'maxDate') {
date.setMilliseconds(date.getMilliseconds() - options.minInterval);
}
}
@@ -2081,6 +2067,27 @@
other[method].call(other, 'option', option, date);
}
}
+
+ $.fn[method].call(startTime, $.extend({
+ onClose: function (dateText, inst) {
+ checkDates($(this), endTime);
+ },
+ onSelect: function (selectedDateTime) {
+ selected($(this), endTime, 'minDate');
+ }
+ }, options, options.start));
+ $.fn[method].call(endTime, $.extend({
+ onClose: function (dateText, inst) {
+ checkDates($(this), startTime);
+ },
+ onSelect: function (selectedDateTime) {
+ selected($(this), startTime, 'maxDate');
+ }
+ }, options, options.end));
+
+ checkDates(startTime, endTime);
+ selected(startTime, endTime, 'minDate');
+ selected(endTime, startTime, 'maxDate');
return $([startTime.get(0), endTime.get(0)]);
};
@@ -2089,8 +2096,8 @@
* @param {Object} err pass any type object to log to the console during error or debugging
* @return {void}
*/
- $.timepicker.log = function(err){
- if(window.console){
+ $.timepicker.log = function (err) {
+ if (window.console) {
console.log(err);
}
};
@@ -2112,12 +2119,12 @@
/*
* Microsecond support
*/
- if(!Date.prototype.getMicroseconds){
+ if (!Date.prototype.getMicroseconds) {
Date.prototype.microseconds = 0;
- Date.prototype.getMicroseconds = function(){ return this.microseconds; };
- Date.prototype.setMicroseconds = function(m){
- this.setMilliseconds(this.getMilliseconds() + Math.floor(m/1000));
- this.microseconds = m%1000;
+ Date.prototype.getMicroseconds = function () { return this.microseconds; };
+ Date.prototype.setMicroseconds = function (m) {
+ this.setMilliseconds(this.getMilliseconds() + Math.floor(m / 1000));
+ this.microseconds = m % 1000;
return this;
};
}