Skip to content

Commit ca0feac

Browse files
committed
MAGETWO-53299: "Go Today" button is not working for dates range component
1 parent b366da3 commit ca0feac

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed

lib/web/mage/calendar.js

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,24 @@
2323

2424
var calendarBasePrototype;
2525

26+
/**
27+
* Get date/time according to store settings
28+
* @returns {Date}
29+
*/
30+
function getTimezoneDate() {
31+
// Get local time in ms
32+
var ms = Date.now(),
33+
options = $.calendarConfig ? $.calendarConfig : {};
34+
35+
// Use store timestamp based on store timezone settings
36+
if (typeof options.serverTimezoneSeconds !== 'undefined') {
37+
//Adjust milliseconds according to client local timezone offset
38+
ms = (options.serverTimezoneSeconds + new Date().getTimezoneOffset() * 60) * 1000;
39+
}
40+
41+
return new Date(ms);
42+
}
43+
2644
$.datepicker.markerClassName = '_has-datepicker';
2745

2846
/**
@@ -72,8 +90,6 @@
7290
* Wrapper for overwrite jQuery UI datepicker function.
7391
*/
7492
_overwriteGenerateHtml: function () {
75-
var self = this;
76-
7793
/**
7894
* Overwrite jQuery UI datepicker function.
7995
* Reason: magento date could be set before calendar show
@@ -83,7 +99,7 @@
8399
* @return {String} html template
84100
*/
85101
$.datepicker.constructor.prototype._generateHTML = function (inst) {
86-
var today = self.getTimezoneDate(),
102+
var today = getTimezoneDate(),
87103
isRTL = this._get(inst, 'isRTL'),
88104
showButtonPanel = this._get(inst, 'showButtonPanel'),
89105
hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext'),
@@ -316,32 +332,14 @@
316332
};
317333
},
318334

319-
/**
320-
* If server timezone is defined then take to account server timezone shift
321-
* @return {Object} date
322-
*/
323-
getTimezoneDate: function () {
324-
325-
// Get local time in ms
326-
var ms = Date.now();
327-
328-
// Use store timestamp based on store timezone settings
329-
if (typeof this.options.serverTimezoneSeconds !== 'undefined') {
330-
//Adjust milliseconds according to client local timezone offset
331-
ms = (this.options.serverTimezoneSeconds + new Date().getTimezoneOffset() * 60) * 1000;
332-
}
333-
334-
return new Date(ms);
335-
},
336-
337335
/**
338336
* Set current date if the date is not set
339337
* @protected
340338
* @param {Object} element
341339
*/
342340
_setCurrentDate: function (element) {
343341
if (!element.val()) {
344-
element[this._picker()]('setDate', this.getTimezoneDate())
342+
element[this._picker()]('setDate', getTimezoneDate())
345343
.val('');
346344
}
347345
},
@@ -356,6 +354,7 @@
356354
pickerButtonText = picker.next('.ui-datepicker-trigger')
357355
.find('img')
358356
.attr('title');
357+
359358
picker.next('.ui-datepicker-trigger')
360359
.addClass('v-middle')
361360
.text('') // Remove jQuery UI datepicker generated image
@@ -523,8 +522,8 @@
523522
$.datepicker._gotoToday = function (el) {
524523
var pickerObject = $(el);
525524

526-
// Set date/time according to timezone offset
527-
pickerObject.datepicker( "setDate", pickerObject.calendar("getTimezoneDate") )
525+
//Set date/time according to timezone offset
526+
pickerObject.datepicker('setDate', getTimezoneDate())
528527
// To ensure that user can re-select date field without clicking outside it first.
529528
.blur();
530529
};

0 commit comments

Comments
 (0)