summaryrefslogtreecommitdiffstats
path: root/application
diff options
context:
space:
mode:
authorBjörn Geiger2011-10-10 16:16:00 +0200
committerBjörn Geiger2011-10-10 16:16:00 +0200
commit5dacbda5b594ce0352e7df41351a03b2676a8e6c (patch)
treeaf26b0144323c87539ef78077117189690c98368 /application
parentminor (diff)
downloadpoolctrl-5dacbda5b594ce0352e7df41351a03b2676a8e6c.tar.gz
poolctrl-5dacbda5b594ce0352e7df41351a03b2676a8e6c.tar.xz
poolctrl-5dacbda5b594ce0352e7df41351a03b2676a8e6c.zip
EventEdit fortsetzung
Diffstat (limited to 'application')
-rwxr-xr-xapplication/controllers/EventController.php60
1 files changed, 58 insertions, 2 deletions
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index 7365d2a..db4db7d 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -640,7 +640,7 @@ class EventController extends Zend_Controller_Action
$events = $this->eventMapper->getDraggingEvents($eventID);
$others = $this->eventMapper->getNotDraggingEvents($eventID);
-
+
// Calculate time shift
$diff=0;
foreach($events as $e) {
@@ -2215,7 +2215,63 @@ class EventController extends Zend_Controller_Action
private function editRepeatEvent(Application_Model_Event $oldEvent, Application_Model_Event $newEvent) {
$diff = $this->eventMapper->compare($newEvent, $oldEvent);
if(isset($diff['start']) || isset($diff['end']) || isset($diff['pbs_filterID'])) {
-
+ if(isset($diff['start'])) {
+ $diffStart = intval(strtotime($newEvent->getStart())) - intval(strtotime($oldEvent->getStart()));
+ unset($diff['start']);
+ }
+ if($diff['end']) {
+ $diffEnd = intval(strtotime($newEvent->getEnd())) - intval(strtotime($oldEvent->getEnd()));
+ unset($diff['end']);
+ }
+ try {
+ foreach($events as $event) {
+ $event->setOptions($diff);
+ if(isset($diffStart)) {
+ $summertimeStart = intval(date('I', strtotime($event->getStart())));
+ $newSummertimeStart = intval(date('I', strtotime($vent->getStart()) + $diffStart));
+ if($summertimeStart) {
+ if(!$newSummertimeStart) {
+ $newStart = date('Y-m-d H:i:s', strtotime($event->getStart()) + $diffStart + 3600);
+ } else {
+ $newStart = date('Y-m-d H:i:s', strtotime($event->getStart()) + $diffStart);
+ }
+ } else {
+ if($newSummertimeStart) {
+ $newStart = date('Y-m-d H:i:s', strtotime($event->getStart()) + $diffStart - 3600);
+ } else {
+ $newStart = date('Y-m-d H:i:s', strtotime($event->getStart()) + $diffStart);
+ }
+ }
+ $event->setStart(newStart);
+ }
+ if(isset($diffEnd)) {
+ $summertimeEnd = intval(date('I', strtotime($event->getEnd())));
+ $newSummertimeEnd = intval(date('I', strtotime($event->getEnd()) + $diffEnd));
+ if($summertimeEnd) {
+ if(!$newSummertimeStart) {
+ $newEnd = date('Y-m-d H:i:s', strtotime($event->getEnd()) + $diffEnd + 3600);
+ } else {
+ $newEnd = date('Y-m-d H:i:s', strtotime($event->getEnde()) + $diffEnd);
+ }
+ } else {
+ if($newSummertimeEnd) {
+ $newEnd = date('Y-m-d H:i:s', strtotime($event->getEnd()) + $diffEnd - 3600);
+ } else {
+ $newEnd = date('Y-m-d H:i:s', strtotime($event->getEnd()) + $diffEnd);
+ }
+ }
+ $event->setEnd(newEnd);
+ }
+ $this->eventMapper->save($event);
+ }
+ } catch (Zend_Exception $e) {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
+ if($diff['pbs_filterID']) {
+
+ }
} else {
$events = $this->eventMapper->findBy(array($oldEvent->getTitle()));
try {