added resetTime method, fixed cell's classes when range is true

This commit is contained in:
t1m0n 2016-07-02 21:16:48 +03:00
parent 1fb4c1fcd5
commit 8b5ee1642e
4 changed files with 40 additions and 18 deletions

27
dist/js/datepicker.js vendored
View File

@ -1376,6 +1376,16 @@
return parseInt(num) < 10 ? '0' + num : num;
};
/**
* Returns copy of date with hours and minutes equals to 0
* @param date {Date}
*/
datepicker.resetTime = function (date) {
if (typeof date != 'object') return;
date = datepicker.getParsedDate(date);
return new Date(date.year, date.month, date.date)
};
$.fn.datepicker = function ( options ) {
return this.each(function () {
if (!$.data(this, pluginName)) {
@ -1475,6 +1485,8 @@
var classes = "datepicker--cell datepicker--cell-" + type,
currentDate = new Date(),
parent = this.d,
minRange = dp.resetTime(parent.minRange),
maxRange = dp.resetTime(parent.maxRange),
opts = parent.opts,
d = dp.getParsedDate(date),
render = {},
@ -1519,27 +1531,26 @@
classes += render.classes ? ' ' + render.classes : '';
}
if (opts.range) {
if (dp.isSame(parent.minRange, date, type)) classes += ' -range-from-';
if (dp.isSame(parent.maxRange, date, type)) classes += ' -range-to-';
if (dp.isSame(minRange, date, type)) classes += ' -range-from-';
if (dp.isSame(maxRange, date, type)) classes += ' -range-to-';
if (parent.selectedDates.length == 1 && parent.focused) {
if (
(dp.bigger(parent.minRange, date) && dp.less(parent.focused, date)) ||
(dp.less(parent.maxRange, date) && dp.bigger(parent.focused, date)))
(dp.bigger(minRange, date) && dp.less(parent.focused, date)) ||
(dp.less(maxRange, date) && dp.bigger(parent.focused, date)))
{
classes += ' -in-range-'
}
if (dp.less(parent.maxRange, date) && dp.isSame(parent.focused, date)) {
if (dp.less(maxRange, date) && dp.isSame(parent.focused, date)) {
classes += ' -range-from-'
}
if (dp.bigger(parent.minRange, date) && dp.isSame(parent.focused, date)) {
if (dp.bigger(minRange, date) && dp.isSame(parent.focused, date)) {
classes += ' -range-to-'
}
} else if (parent.selectedDates.length == 2) {
//TODO fix bigger and less with timepicker
if (dp.bigger(parent.minRange, date) && dp.less(parent.maxRange, date)) {
if (dp.bigger(minRange, date) && dp.less(maxRange, date)) {
classes += ' -in-range-'
}
}

File diff suppressed because one or more lines are too long

View File

@ -60,6 +60,8 @@
var classes = "datepicker--cell datepicker--cell-" + type,
currentDate = new Date(),
parent = this.d,
minRange = dp.resetTime(parent.minRange),
maxRange = dp.resetTime(parent.maxRange),
opts = parent.opts,
d = dp.getParsedDate(date),
render = {},
@ -104,27 +106,26 @@
classes += render.classes ? ' ' + render.classes : '';
}
if (opts.range) {
if (dp.isSame(parent.minRange, date, type)) classes += ' -range-from-';
if (dp.isSame(parent.maxRange, date, type)) classes += ' -range-to-';
if (dp.isSame(minRange, date, type)) classes += ' -range-from-';
if (dp.isSame(maxRange, date, type)) classes += ' -range-to-';
if (parent.selectedDates.length == 1 && parent.focused) {
if (
(dp.bigger(parent.minRange, date) && dp.less(parent.focused, date)) ||
(dp.less(parent.maxRange, date) && dp.bigger(parent.focused, date)))
(dp.bigger(minRange, date) && dp.less(parent.focused, date)) ||
(dp.less(maxRange, date) && dp.bigger(parent.focused, date)))
{
classes += ' -in-range-'
}
if (dp.less(parent.maxRange, date) && dp.isSame(parent.focused, date)) {
if (dp.less(maxRange, date) && dp.isSame(parent.focused, date)) {
classes += ' -range-from-'
}
if (dp.bigger(parent.minRange, date) && dp.isSame(parent.focused, date)) {
if (dp.bigger(minRange, date) && dp.isSame(parent.focused, date)) {
classes += ' -range-to-'
}
} else if (parent.selectedDates.length == 2) {
//TODO fix bigger and less with timepicker
if (dp.bigger(parent.minRange, date) && dp.less(parent.maxRange, date)) {
if (dp.bigger(minRange, date) && dp.less(maxRange, date)) {
classes += ' -in-range-'
}
}

View File

@ -1376,6 +1376,16 @@
return parseInt(num) < 10 ? '0' + num : num;
};
/**
* Returns copy of date with hours and minutes equals to 0
* @param date {Date}
*/
datepicker.resetTime = function (date) {
if (typeof date != 'object') return;
date = datepicker.getParsedDate(date);
return new Date(date.year, date.month, date.date)
};
$.fn.datepicker = function ( options ) {
return this.each(function () {
if (!$.data(this, pluginName)) {