added swapping dates when range is true, fixes #46

This commit is contained in:
t1m0n 2016-05-16 10:35:15 +03:00
parent f5c1ae4705
commit 5aeb04c4d7
5 changed files with 78 additions and 2 deletions

View File

@ -484,6 +484,11 @@
} else {
_this.minRange = date;
}
// Swap dates if they were selected via dp.selectDate() and second date was smaller then first
if (datepicker.bigger(_this.maxRange, _this.minRange)) {
_this.maxRange = _this.minRange;
_this.minRange = date;
}
_this.selectedDates = [_this.minRange, _this.maxRange]
} else {

File diff suppressed because one or more lines are too long

View File

@ -484,6 +484,11 @@
} else {
_this.minRange = date;
}
// Swap dates if they were selected via dp.selectDate() and second date was smaller then first
if (datepicker.bigger(_this.maxRange, _this.minRange)) {
_this.maxRange = _this.minRange;
_this.minRange = date;
}
_this.selectedDates = [_this.minRange, _this.maxRange]
} else {

View File

@ -19,6 +19,7 @@
<script type="text/javascript" src="specs/options.js"></script>
<script type="text/javascript" src="specs/events.js"></script>
<script type="text/javascript" src="specs/static-methods.js"></script>
<script type="text/javascript" src="specs/api.js"></script>
<style type="text/css">
/* Remove transitions to test position options*/
.datepicker {

65
tests/specs/api.js Normal file
View File

@ -0,0 +1,65 @@
describe('API', function () {
var assert = chai.assert,
expect = chai.expect,
destroy = true,
$altInput,
$input, dp;
before(function () {
$input = $('<input>').appendTo('#container');
$altInput = $('<input class="alt-field">').appendTo('#container');
});
afterEach(function () {
if (dp && destroy) {
dp.destroy();
}
destroy = true;
});
after(function () {
$input.remove();
$altInput.remove();
});
describe('selectDate', function () {
it('should select passed date', function () {
dp = $input.datepicker().data('datepicker');
var date = new Date();
dp.selectDate(date);
expect(dp.selectedDates).to.have.length(1);
expect(dp.selectedDates[0]).to.be.equal(date)
});
it('should select multiple dates if {multipleDates: true}', function () {
dp = $input.datepicker({
multipleDates: true
}).data('datepicker');
var date = new Date(2016, 4, 16),
date2 = new Date(2016, 4, 18);
dp.selectDate(date);
dp.selectDate(date2);
expect(dp.selectedDates).to.have.length(2);
});
it('should swap dates if {range: true} and second date is smaller then first', function () {
dp = $input.datepicker({
range: true
}).data('datepicker');
var date = new Date(2016, 4, 18),
date2 = new Date(2016, 4, 16);
dp.selectDate(date);
dp.selectDate(date2);
expect(dp.selectedDates[0]).to.be.equal(date2);
})
});
});