summaryrefslogtreecommitdiffstats
path: root/application/controllers/EventController.php
diff options
context:
space:
mode:
Diffstat (limited to 'application/controllers/EventController.php')
-rwxr-xr-xapplication/controllers/EventController.php221
1 files changed, 147 insertions, 74 deletions
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index 579dc28..fef6257 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -284,6 +284,42 @@ class EventController extends Zend_Controller_Action
$event->setRunning(0);
}
$event->setCreated(time());
+ if(!$event->getParticipants()) {
+ $event->setParticipants(null);
+ }
+ if(!$event->getEnd()) {
+ $event->setEnd(null);
+ }
+ if(!$event->getNote()) {
+ $event->setNote(null);
+ }
+ if(!$event->getPbs_bootosID()) {
+ $event->setPbs_bootosID(null);
+ }
+ if(!$event->getPbs_configID()) {
+ $event->setPbs_configID(null);
+ }
+ if(!$event->getPbs_filterID()) {
+ $event->setPbs_filterID(null);
+ }
+ if(!$event->getPbs_bootmenuID()) {
+ $event->setPbs_bootmenuID(null);
+ }
+ if(!$event->getRepeattype()) {
+ $event->setRepeattype(null);
+ }
+ if(!$event->getRepeatend()) {
+ $event->setRepeatend(null);
+ }
+ if(!$event->getRepeatdate()) {
+ $event->setRepeatdate(null);
+ }
+ if(!$event->getRepeatings()) {
+ $event->setRepeatings(null);
+ }
+ if(!$event->getRunningtype()) {
+ $event->setRunningtype(null);
+ }
$overlapping = 0;
if($event->repeat) {
$overlapping = $this->repeatEvent($event);
@@ -446,6 +482,10 @@ class EventController extends Zend_Controller_Action
$params['end'] = date ('Y-m-d H:i:s', strtotime($params['end']));
} else {
unset($params['end']);
+ $event->setEnd(null);
+ }
+ if(!isset($params['repeat'])) {
+ unset($params['repeat']);
}
if(!isset($params['repeattype'])) {
unset($params['repeattype']);
@@ -461,13 +501,57 @@ class EventController extends Zend_Controller_Action
if(!isset($params['repeatings'])) {
unset($params['repeatings']);
}
+ if(!isset($params['participants'])) {
+ unset($params['participants']);
+ $event->setParticipants(null);
+ }
$params['immediate'] = 0;
$event->setOptions($params);
$event->setID($eventID);
+ if(!$event->getParticipants()) {
+ $event->setParticipants(null);
+ }
+ if(!$event->getEnd()) {
+ $event->setEnd(null);
+ }
+ if(!$event->getNote()) {
+ $event->setNote(null);
+ }
+ if(!$event->getPbs_bootosID()) {
+ $event->setPbs_bootosID(null);
+ }
+ if(!$event->getPbs_configID()) {
+ $event->setPbs_configID(null);
+ }
+ if(!$event->getPbs_filterID()) {
+ $event->setPbs_filterID(null);
+ }
+ if(!$event->getPbs_bootmenuID()) {
+ $event->setPbs_bootmenuID(null);
+ }
+ if(!$event->getRepeattype()) {
+ $event->setRepeattype(null);
+ }
+ if(!$event->getRepeatend()) {
+ $event->setRepeatend(null);
+ }
+ if(!$event->getRepeatdate()) {
+ $event->setRepeatdate(null);
+ }
+ if(!$event->getRepeatings()) {
+ $event->setRepeatings(null);
+ }
+ if(!$event->getRunningtype()) {
+ $event->setRunningtype(null);
+ }
+ if(!$event->getCreated()) {
+ $event->setCreated(null);
+ }
$overlapping = 0;
- if($event->getRepeat() == 1 && !isset($params['wdh'])) {
+ if($event->getRepeat() == 1 && $params['wdh'] != 1) {
$event->setRepeat(2);
- } else {
+ }
+ if($event->getRepeat() == 0 || $event->getRepeat() == 2) {
$overlappingEvents = $this->eventMapper->getOverlappingEvents(date('Y-m-d H:i:s', strtotime($event->getStart())), date('Y-m-d H:i:s', strtotime($event->getEnd())), $event->getPbs_PoolID(), $event);
if(count($overlappingEvents) > 0 ) {
$overlapping = 1;
@@ -478,23 +562,20 @@ class EventController extends Zend_Controller_Action
if($event->getCategory() != $shutdownCategory->getID()) {
$diff = $this->eventMapper->compare($oldEvent, $event);
if(isset($diff['pbs_bootosID']) || isset($diff['title']) || isset($diff['pbs_configID'])) {
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $oldEvent->getPbs_bootmenuID());
- unset($bootmenuApiResult);
- $bootmenuquery = "bootosID=" . $event->getPbs_bootosID() . "&startcounter=0&title=Poolctrl-Bootmenu for " . $event->getTitle() . "&defaultbootmenu=0&order=0&kcl=0";
+ $bootmenuquery = "bootmenuid=" . $event->getPbs_bootmenuID() . "&bootosID=" . $event->getPbs_bootosID() . "&startcounter=0&title=Poolctrl-Bootmenu for " . $event->getTitle() . "&defaultbootmenu=0&order=0&kcl=0&changeentry=1";
if($event->getPbs_configID()) {
$bootmenuquery .= "&configID=" . $event->getPbs_configID();
}
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['addbootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
- $bootmenuXMLString = $bootmenuApiResult['http-body'];
- $bootmenuXML = new SimpleXMLElement($bootmenuXMLString);
- $bootmenuID = sprintf("%s", $bootmenuXML->bootmenu->id);
- $event->setPbs_bootmenuID($bootmenuID);
- $filterQuerie = "filterid=" . $event->getPbs_filterID() . "&bootmenuID = " . $bootmenuID;
+ $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['changebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
+
+ }
+ if(isset($diff['title'])) {
+ $filterQuerie = "filterid=" . $event->getPbs_filterID() . "&title=Poolctrl-Filter for " . $event->getTitle() . "&description=This Filter was automatically created by the Poolctrl for Event " . $event->getTitle();
$filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['changefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterQuerie);
unset($filterApiResult);
}
if(isset($diff['start']) || isset($diff['end']) || isset($diff['pbs_poolID'])) {
- if(isset($params['wdh']) || !$oldEvent->getRepeat()) {
+ if($event->getRepeat() != 2) {
$filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "filterid=" . $oldEvent->getPbs_filterID());
unset($filterApiResult);
}
@@ -520,19 +601,17 @@ class EventController extends Zend_Controller_Action
$filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
$filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
$filterentriesID2 = sprintf("%s", $filterentriesXML2->filterentry->id);
- if(!$event->getRepeat()) {
- $startDate = date('d.m.Y', strtotime($event->getStart()));
- if($event->getEnd()) {
- $endDate = date('d.m.Y', strtotime($event->getEnd()));
- } else {
- $endDate = date('d.m.Y', strtotime($event->getStart()));
- }
- $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . strtotime($startDate) . "&filtervalue2=" . strtotime($endDate);
- $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
- $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
- $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
- $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
+ $startDate = date('d.m.Y', strtotime($event->getStart()));
+ if($event->getEnd()) {
+ $endDate = date('d.m.Y', strtotime($event->getEnd()));
+ } else {
+ $endDate = date('d.m.Y', strtotime($event->getStart()));
}
+ $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . strtotime($startDate) . "&filtervalue2=" . strtotime($endDate);
+ $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
+ $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
+ $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
+ $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
}
}
}
@@ -2812,7 +2891,7 @@ class EventController extends Zend_Controller_Action
}
foreach($events as $event) {
- $overlappingEvents = $this->eventMapper->getOverlappingEvents(date('Y-m-d H:i:s', strtotime($event->getStart())), date('Y-m-d H:i:s', strtotime($event->getEnd())), $event->getPbs_PoolID());
+ $overlappingEvents = $this->eventMapper->getOverlappingEvents(date('Y-m-d H:i:s', strtotime($event->getStart())), date('Y-m-d H:i:s', strtotime($event->getEnd())), $event->getPbs_PoolID(), $event, true);
if(count($overlappingEvents) > 0 ) {
$overlapping = true;
break;
@@ -2822,20 +2901,11 @@ class EventController extends Zend_Controller_Action
if(!$overlapping) {
if($newEvent->getCategory() != $shutdownCategory->getID()) {
if(isset($diff['pbs_bootosID']) || isset($diff['title']) || isset($diff['pbs_configID'])) {
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $oldEvent->getPbs_bootmenuID());
- unset($bootmenuApiResult);
- $bootmenuquery = "bootosID=" . $newEvent->getPbs_bootosID() . "&startcounter=0&title=Poolctrl-Bootmenu for " . $newEvent->getTitle() . "&defaultbootmenu=0&order=0&kcl=0";
+ $bootmenuquery = "bootmenuid=" . $newEvent->getPbs_bootmenuID() . "&bootosID=" . $newEvent->getPbs_bootosID() . "&startcounter=0&title=Poolctrl-Bootmenu for " . $newEvent->getTitle() . "&defaultbootmenu=0&order=0&kcl=0&changeentry=1";
if($newEvent->getPbs_configID()) {
$bootmenuquery .= "&configID=" . $newEvent->getPbs_configID();
}
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['addbootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
- $bootmenuXMLString = $bootmenuApiResult['http-body'];
- $bootmenuXML = new SimpleXMLElement($bootmenuXMLString);
- $bootmenuID = sprintf("%s", $bootmenuXML->bootmenu->id);
- $newEvent->setPbs_bootmenuID($bootmenuID);
- $filterQuerie = "filterid=" . $newEvent->getPbs_filterID() . "&bootmenuID = " . $bootmenuID;
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['changefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterQuerie);
- unset($filterApiResult);
+ $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['changebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
}
$filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "filterid=" . $oldEvent->getPbs_filterID());
unset($filterApiResult);
@@ -2871,20 +2941,21 @@ class EventController extends Zend_Controller_Action
}
}
foreach($events as $event) {
- try {
- if($repeattype != "Once a week" && $event->getCategory() != $shutdownCategory->getID()) {
- $startDate = date('d.m.Y', strtotime($event->getStart()));
- if($newEvent->getEnd()) {
- $endDate = date('d.m.Y', strtotime($event->getEnd()));
- } else {
- $endDate = date('d.m.Y', strtotime($event->getStart()));
- }
- $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . strtotime($startDate) . "&filtervalue2=" . strtotime($endDate);
- $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
- $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
- $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
- $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
+ $event->setPbs_filterID($newEvent->getPbs_filterID());
+ if($repeattype != "Once a week" && $event->getCategory() != $shutdownCategory->getID()) {
+ $startDate = date('d.m.Y', strtotime($event->getStart()));
+ if($newEvent->getEnd()) {
+ $endDate = date('d.m.Y', strtotime($event->getEnd()));
+ } else {
+ $endDate = date('d.m.Y', strtotime($event->getStart()));
}
+ $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . strtotime($startDate) . "&filtervalue2=" . strtotime($endDate);
+ $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
+ $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
+ $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
+ $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
+ }
+ try {
$this->eventMapper->save($event);
} catch(Zend_Exception $e)
{
@@ -2898,27 +2969,22 @@ class EventController extends Zend_Controller_Action
} else {
if($newEvent->getCategory() != $shutdownCategory->getID()) {
if(isset($diff['pbs_bootosID']) || isset($diff['title']) || isset($diff['pbs_configID'])) {
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $oldEvent->getPbs_bootmenuID());
- unset($bootmenuApiResult);
- $bootmenuquery = "bootosID=" . $newEvent->getPbs_bootosID() . "&startcounter=0&title=Poolctrl-Bootmenu for " . $newEvent->getTitle() . "&defaultbootmenu=0&order=0&kcl=0";
+ $bootmenuquery = "bootmenuid=" . $newEvent->getPbs_bootmenuID() . "&bootosID=" . $newEvent->getPbs_bootosID() . "&startcounter=0&title=Poolctrl-Bootmenu for " . $newEvent->getTitle() . "&defaultbootmenu=0&order=0&kcl=0&changeentry=1";
if($newEvent->getPbs_configID()) {
$bootmenuquery .= "&configID=" . $newEvent->getPbs_configID();
}
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['addbootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
- $bootmenuXMLString = $bootmenuApiResult['http-body'];
- $bootmenuXML = new SimpleXMLElement($bootmenuXMLString);
- $bootmenuID = sprintf("%s", $bootmenuXML->bootmenu->id);
- $newEvent->setPbs_bootmenuID($bootmenuID);
- $filterQuerie = "filterid=" . $newEvent->getPbs_filterID() . "&bootmenuID = " . $bootmenuID;
+ $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['changebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
+ }
+ if(isset($diff['title'])) {
+ $filterQuerie = "filterid=" . $newEvent->getPbs_filterID() . "&title=Poolctrl-Filter for " . $newEvent->getTitle() . "&description=This Filter was automatically created by the Poolctrl for Event " . $newEvent->getTitle();
$filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['changefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterQuerie);
unset($filterApiResult);
}
+ $newFilter = false;
if(isset($diff['pbs_poolID'])) {
- if(isset($params['wdh']) || !$oldEvent->getRepeat()) {
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "filterid=" . $oldEvent->getPbs_filterID());
- unset($filterApiResult);
- }
- $filterquery = "bootmenuID=" . $newEvent->getPbs_bootmenuID() . "&title=Poolctrl-Filter for " . $newEvent->getTitle() . "&description=This Filter was automatically created by the Poolctrl for Event " . $newEvent->getTitle() . "&created= " . time() . "&priority=100";
+ $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "filterid=" . $oldEvent->getPbs_filterID());
+ unset($filterApiResult);
+ $filterquery = "filterID=" . $newEvent->getPbs_bootmenuID() . "&title=Poolctrl-Filter for " . $newEvent->getTitle() . "&description=This Filter was automatically created by the Poolctrl for Event " . $newEvent->getTitle() . "&created= " . time() . "&priority=100";
$filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['addfilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterquery);
$filterXMLString = $filterApiResult['http-body'];
$filterXML = new SimpleXMLElement($filterXMLString);
@@ -2940,24 +3006,31 @@ class EventController extends Zend_Controller_Action
$filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
$filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
$filterentriesID2 = sprintf("%s", $filterentriesXML2->filterentry->id);
+ $newFilter = true;
}
}
$events = $this->eventMapper->findBy(array('poolctrl_event.repeat' => $oldEvent->getRepeat(), 'title' => $oldEvent->getTitle()));
try {
foreach($events as $event) {
$event->setOptions($diff);
- if($event->getCategory() != $shutdownCategory->getID() && isset($diff['pbs_poolID'])) {
- $startDate = date('d.m.Y', strtotime($event->getStart()));
- if($newEvent->getEnd()) {
- $endDate = date('d.m.Y', strtotime($event->getEnd()));
- } else {
- $endDate = date('d.m.Y', strtotime($event->getStart()));
+ if($newFilter) {
+ $event->setPbs_filterID($newEvent->getPbs_filterID());
+ if($event->getCategory() != $shutdownCategory->getID() && isset($diff['pbs_poolID'])) {
+ $startDate = date('d.m.Y', strtotime($event->getStart()));
+ if($event->getEnd()) {
+ $endDate = date('d.m.Y', strtotime($event->getEnd()));
+ } else {
+ $endDate = date('d.m.Y', strtotime($event->getStart()));
+ }
+ $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . strtotime($startDate) . "&filtervalue2=" . strtotime($endDate);
+ $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
+ $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
+ $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
+ $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
}
- $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . strtotime($startDate) . "&filtervalue2=" . strtotime($endDate);
- $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
- $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
- $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
- $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
+ }
+ if(!$event->getParticipants()) {
+ $event->setParticipants(null);
}
$this->eventMapper->save($event);
}