diff options
author | Valentin Shevko <tuikiken@gmail.com> | 2012-07-20 16:59:37 +0300 |
---|---|---|
committer | Valentin Shevko <tuikiken@gmail.com> | 2012-07-20 16:59:37 +0300 |
commit | cfbadf6dc332bc303ac101d708fc70231f4bc587 (patch) | |
tree | 78e08dea923ae234d90f5a8c30039a720faddd5f | |
parent | 062ad571f76cc9297813b9ea05e5d3fb459a720c (diff) | |
download | jquery-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.js | 30 |
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; } |