summaryrefslogtreecommitdiffstats
path: root/application/controllers/EventController.php
diff options
context:
space:
mode:
Diffstat (limited to 'application/controllers/EventController.php')
-rwxr-xr-xapplication/controllers/EventController.php35
1 files changed, 23 insertions, 12 deletions
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index db271ed..dfe8b78 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -664,25 +664,21 @@ class EventController extends Zend_Controller_Action
$eventID = $this->getRequest()->getParam('eventID');
$date = intval(strtotime(substr($this->getRequest()->getParam('date'), 0, 24)));
- $repeat = $this->getRequest()->getParam('repeat');
- if($repeat) {
- $events = $this->eventMapper->getDraggingEvents($eventID);
- } else {
- $events = $this->eventMapper->getDraggingEvent($eventID);
- }
+ $events['withrepeat'] = $this->eventMapper->getDraggingEvents($eventID);
+ $events['withoutrepeat'] = $this->eventMapper->getDraggingEvent($eventID);
$others = $this->eventMapper->getNotDraggingEvents($eventID);
// Calculate time shift
$diff=0;
- foreach($events as $e) {
+ foreach($events['withrepeat'] as $e) {
if($e['eventID'] == $eventID)
$diff = $date - strtotime($e['start']);
}
- // Check for overlap
- $overlaps = array();
- foreach($events as $e) {
+ // Check for overlap with repeat
+ $overlapswithrepeat = array();
+ foreach($events['withrepeat'] as $e) {
$enewstart = strtotime($e['start']) + $diff;
$enewend = strtotime($e['end']) + $diff;
@@ -690,13 +686,28 @@ class EventController extends Zend_Controller_Action
foreach($others as $o) {
if($enewstart <= strtotime($o['start']) && $enewend >= strtotime($o['start'])
|| $enewstart >= strtotime($o['start']) && $enewstart <= strtotime($o['end']))
- $overlaps[] = $o;
+ $overlapswithrepeat[] = $o;
}
}
+
+ // Check for overlap without repeat
+ $overlapswithoutrepeat = array();
+ foreach($events['withoutrepeat'] as $e) {
+
+ $enewstart = strtotime($e['start']) + $diff;
+ $enewend = strtotime($e['end']) + $diff;
+
+ foreach($others as $o) {
+ if($enewstart <= strtotime($o['start']) && $enewend >= strtotime($o['start'])
+ || $enewstart >= strtotime($o['start']) && $enewstart <= strtotime($o['end']))
+ $overlapswithoutrepeat[] = $o;
+ }
+ }
$this->view->events = $events;
$this->view->others = $others;
- $this->view->overlaps = $overlaps;
+ $this->view->overlapswithrepeat = $overlapswithrepeat;
+ $this->view->overlapswithoutrepeat = $overlapswithoutrepeat;
}