2010-05-23 02:30:16 +02:00
|
|
|
|
|
|
|
|
2010-07-04 03:00:38 +02:00
|
|
|
function selection_dayMousedown(view, hoverListener, cellDate, cellIsAllDay, renderSelection, clearSelection, reportSelection, unselect) {
|
2010-06-29 06:51:13 +02:00
|
|
|
return function(ev) {
|
|
|
|
if (view.option('selectable')) {
|
|
|
|
unselect();
|
2010-07-04 03:00:38 +02:00
|
|
|
var _mousedownElement = this;
|
2010-06-29 06:51:13 +02:00
|
|
|
var dates;
|
|
|
|
hoverListener.start(function(cell, origCell) {
|
|
|
|
clearSelection();
|
2010-07-04 03:00:38 +02:00
|
|
|
if (cell && cellIsAllDay(cell)) {
|
2010-06-29 06:51:13 +02:00
|
|
|
dates = [ cellDate(origCell), cellDate(cell) ].sort(cmp);
|
|
|
|
renderSelection(dates[0], addDays(cloneDate(dates[1]), 1), true);
|
2010-07-04 03:00:38 +02:00
|
|
|
}else{
|
|
|
|
dates = null;
|
2010-06-29 06:51:13 +02:00
|
|
|
}
|
|
|
|
}, ev);
|
|
|
|
$(document).one('mouseup', function(ev) {
|
2010-07-04 03:00:38 +02:00
|
|
|
hoverListener.stop();
|
|
|
|
if (dates) {
|
|
|
|
if (+dates[0] == +dates[1]) {
|
|
|
|
view.trigger('dayClick', _mousedownElement, dates[0], true, ev);
|
|
|
|
}
|
2010-06-29 06:51:13 +02:00
|
|
|
reportSelection(dates[0], dates[1], true);
|
|
|
|
}
|
|
|
|
});
|
2010-05-23 02:30:16 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-06-29 06:51:13 +02:00
|
|
|
function selection_unselectAuto(view, unselect) {
|
2010-05-29 07:11:26 +02:00
|
|
|
if (view.option('selectable') && view.option('unselectAuto')) {
|
2010-05-23 02:30:16 +02:00
|
|
|
$(document).mousedown(function(ev) {
|
|
|
|
var ignore = view.option('unselectCancel');
|
|
|
|
if (ignore) {
|
|
|
|
if ($(ev.target).parents(ignore).length) { // could be optimized to stop after first match
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
2010-06-29 06:51:13 +02:00
|
|
|
unselect();
|
2010-05-23 02:30:16 +02:00
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|