From 9e43fedc07608ab36f3119ddea80e0659a8f1a69 Mon Sep 17 00:00:00 2001 From: dsuket Date: Thu, 19 Feb 2015 22:09:04 +0900 Subject: [PATCH 1/2] focus current selected date on showing calendar if selectionRule.range is true --- js/BeatPicker.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/js/BeatPicker.js b/js/BeatPicker.js index 172d864..55ebd34 100644 --- a/js/BeatPicker.js +++ b/js/BeatPicker.js @@ -1078,7 +1078,19 @@ BeatPicker.prototype = { }, _getDecisionOnEvents: function () { var self = this; - this.on(this.events.hide, function (data) { + if (this.selectionRule.range) { + this.on(this.events.show, function (e) { + if (!e || !self._dateInputToNode || !self._startRangeSelectedDate || !self._endRangeSelectedDate) { + return; + } + if (e.currentTarget === self._dateInputToNode[0]) { + self._updateDateMatricesExactDate(self._endRangeSelectedDate, true); + } else { + self._updateDateMatricesExactDate(self._startRangeSelectedDate, true); + } + }); + } + this.on(this.events.hide, function (e) { ( self._selectedDate || self._startRangeSelectedDate) && self._updateDateMatricesExactDate(self._selectedDate || self._startRangeSelectedDate, true); self._markToday(new Date()); }); @@ -1285,13 +1297,13 @@ BeatPicker.prototype = { show: function (e) { this._calendarMainNode.css("display", ""); this._isHide = false; - !this.view.alwaysVisible && this._notifySubscribers(this.events.show); + !this.view.alwaysVisible && this._notifySubscribers(this.events.show, e); this.selectionRule.range ? this._rangeStatesManager(e) : this._positionThisNodePlease(this.dateInputNode); }, - hide: function () { + hide: function (e) { this._calendarMainNode.css("display", "none"); this._isHide = true; - this._notifySubscribers(this.events.hide); + this._notifySubscribers(this.events.hide, e); }, today: function () { this.currentDate = new Date(); From feab1a7f88c8e2829f9f24f7954a20c913f909e2 Mon Sep 17 00:00:00 2001 From: dsuket Date: Fri, 20 Feb 2015 00:10:11 +0900 Subject: [PATCH 2/2] do not show nextMonth, when _endRangeSelectedDate filled. --- js/BeatPicker.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/js/BeatPicker.js b/js/BeatPicker.js index 55ebd34..e5a5256 100644 --- a/js/BeatPicker.js +++ b/js/BeatPicker.js @@ -357,7 +357,9 @@ BeatPicker.prototype = { var clickBehaviour = $(this).data("click-behaviour"); var isDisabled = $(this).data("disabled"); !isDisabled && self._dateSelect(e); - clickBehaviour !== "not-avail" && self._updateDateMatrices(clickBehaviour ? 1 : -1, self._monthUnit); + if (!self._endRangeSelectedDate) { + clickBehaviour !== "not-avail" && self._updateDateMatrices(clickBehaviour ? 1 : -1, self._monthUnit); + } }); li.text(dayCheck.day); this.selectionRule.single && this._findSelectedDate(this._dateRows[i].data("date"), this._dateRows[i])