summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValentin Shevko <tuikiken@gmail.com>2012-07-20 16:59:37 +0300
committerValentin Shevko <tuikiken@gmail.com>2012-07-20 16:59:37 +0300
commitcfbadf6dc332bc303ac101d708fc70231f4bc587 (patch)
tree78e08dea923ae234d90f5a8c30039a720faddd5f
parent062ad571f76cc9297813b9ea05e5d3fb459a720c (diff)
downloadjquery-week-calendar-cfbadf6dc332bc303ac101d708fc70231f4bc587.zip
jquery-week-calendar-cfbadf6dc332bc303ac101d708fc70231f4bc587.tar.gz
jquery-week-calendar-cfbadf6dc332bc303ac101d708fc70231f4bc587.tar.bz2
Drag ignores freeBusy fix
Fixed ignoring of freeBusy areas when dragging and resizing events. Fixed bug with userId in some cases.
-rw-r--r--jquery.weekcalendar.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/jquery.weekcalendar.js b/jquery.weekcalendar.js
index df5e16a..786187b 100644
--- a/jquery.weekcalendar.js
+++ b/jquery.weekcalendar.js
@@ -1729,6 +1729,35 @@
var adjustedStart, adjustedEnd;
var self = this;
+ var freeBusyManager = self.getFreeBusyManagerForEvent(newCalEvent);
+ $.each(freeBusyManager.getFreeBusys(newCalEvent.start, newCalEvent.end), function() {
+ if (!this.getOption('free')) {
+
+ if (newCalEvent.start.getTime() == this.getStart().getTime() &&
+ newCalEvent.end.getTime() > this.getEnd().getTime()) {
+
+ adjustedStart = this.getEnd();
+ }
+
+ if (newCalEvent.end.getTime() == this.getEnd().getTime() &&
+ newCalEvent.start.getTime() < this.getStart().getTime()) {
+
+ adjustedEnd = this.getStart();
+ }
+
+ if (oldCalEvent.resizable == false ||
+ (newCalEvent.end.getTime() > this.getEnd().getTime() &&
+ newCalEvent.start.getTime() < this.getStart().getTime()) ||
+ (newCalEvent.end.getTime() == this.getEnd().getTime() &&
+ newCalEvent.start.getTime() == this.getStart().getTime())) {
+
+ adjustedStart = oldCalEvent.start;
+ adjustedEnd = oldCalEvent.end;
+ newCalEvent.userId = oldCalEvent.userId;
+ }
+ }
+ });
+
$weekDay.find('.wc-cal-event').not($calEvent).each(function() {
var currentCalEvent = $(this).data('calEvent');
@@ -1753,6 +1782,7 @@
adjustedStart = oldCalEvent.start;
adjustedEnd = oldCalEvent.end;
+ newCalEvent.userId = oldCalEvent.userId;
return false;
}