summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Wagner2011-10-26 16:00:30 +0200
committerSebastian Wagner2011-10-26 16:00:30 +0200
commit4e16f1f3ec6d1f413039a1ea1c18ab99bfaaf2fb (patch)
tree6ab881560dec16292a54e9c22c2fed73faef3c48
parentminor (diff)
downloadpoolctrl-4e16f1f3ec6d1f413039a1ea1c18ab99bfaaf2fb.tar.gz
poolctrl-4e16f1f3ec6d1f413039a1ea1c18ab99bfaaf2fb.tar.xz
poolctrl-4e16f1f3ec6d1f413039a1ea1c18ab99bfaaf2fb.zip
Event edit korrigiert
-rwxr-xr-xapplication/controllers/EventController.php407
-rwxr-xr-xapplication/views/scripts/event/index.phtml29
2 files changed, 312 insertions, 124 deletions
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index f92337b..0cb4954 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -464,94 +464,90 @@ class EventController extends Zend_Controller_Action
$params['immediate'] = 0;
$event->setOptions($params);
$event->setID($eventID);
- if($oldEvent->getRepeat() && isset($params['wdh'])) {
- $event->setRepeat($oldEvent->getRepeat());
- $event->setRepeatdate($oldEvent->getRepeatdate());
- $event->setRepeatend($oldEvent->getRepeatend());
- $event->setRepeatings($oldEvent->getRepeatings());
- $event->setRepeattype($oldEvent->getRepeattype());
+ $overlapping = false;
+ if($event->getRepeat() == 1 && !isset($params['wdh'])) {
+ $event->setRepeat(2);
} else {
- $event->setRepeatdate(null);
- $event->setRepeatend(null);
- $event->setRepeatings(null);
- $event->setRepeattype(null);
- unset($params['repeattype']);
- unset($params['repeatend']);
- unset($params['repeatdate']);
- unset($params['repeatings']);
- }
- $result = $this->eventcategoryMapper->findBy(array('title' => 'Shutdown'));
- $shutdownCategory = $result[0];
- 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";
- 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;
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['changefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterQuerie);
- unset($filterApiResult);
+ $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());
+ if(count($overlappingEvents) > 0 ) {
+ $overlapping = true;
}
- if(isset($diff['start']) || isset($diff['end']) || 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=" . $event->getPbs_bootmenuID() . "&title=Poolctrl-Filter for " . $event->getTitle() . "&description=This Filter was automatically created by the Poolctrl for Event " . $event->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);
- $filterID = sprintf("%s", $filterXML->filter->id);
- $event->setPbs_filterID($filterID);
- $filterentriesquery1 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=3&filtervalue=" . $event->getPbs_poolID();
- $filterentriesApiResult1 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery1);
- $filterentriesXMLString1 = $filterentriesApiResult1['http-body'];
- $filterentriesXML1 = new SimpleXMLElement($filterentriesXMLString1);
- $filterentriesID1 = sprintf("%s", $filterentriesXML1->filterentry->id);
- $startTime = date('H:i', strtotime($event->getStart()));
- if($event->getEnd()) {
- $endTime = date('H:i', strtotime($event->getEnd()));
- } else {
- $endTime = date('H:i', strtotime($event->getStart()) + 900);
- }
- $filterentriesquery2 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=7&filtervalue=" . $startTime . "&filtervalue2=" . $endTime;
- $filterentriesApiResult2 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery2);
- $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()));
+ if(!$overlapping) {
+ $result = $this->eventcategoryMapper->findBy(array('title' => 'Shutdown'));
+ $shutdownCategory = $result[0];
+ 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";
+ 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;
+ $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()) {
+ $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=" . $event->getPbs_bootmenuID() . "&title=Poolctrl-Filter for " . $event->getTitle() . "&description=This Filter was automatically created by the Poolctrl for Event " . $event->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);
+ $filterID = sprintf("%s", $filterXML->filter->id);
+ $event->setPbs_filterID($filterID);
+ $filterentriesquery1 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=3&filtervalue=" . $event->getPbs_poolID();
+ $filterentriesApiResult1 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery1);
+ $filterentriesXMLString1 = $filterentriesApiResult1['http-body'];
+ $filterentriesXML1 = new SimpleXMLElement($filterentriesXMLString1);
+ $filterentriesID1 = sprintf("%s", $filterentriesXML1->filterentry->id);
+ $startTime = date('H:i', strtotime($event->getStart()));
+ if($event->getEnd()) {
+ $endTime = date('H:i', strtotime($event->getEnd()));
+ } else {
+ $endTime = date('H:i', strtotime($event->getStart()) + 900);
+ }
+ $filterentriesquery2 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=7&filtervalue=" . $startTime . "&filtervalue2=" . $endTime;
+ $filterentriesApiResult2 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery2);
+ $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);
+ }
}
- $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);
}
}
}
- $overlapping = false;
- if($event->getRepeat()) {
- $overlapping = $this->editRepeatEvent($oldEvent, $event);
- } else {
- try {
- $this->eventMapper->save($event);
- } catch(Zend_Exception $e) {
- echo "Caught exception: " . get_class($e) . "<br/>";
- echo "Message: " . $e->getMessage() . "<br/>";
- return;
+ if(!$overlapping) {
+ if($event->getRepeat() == 1) {
+ $overlapping = $this->editRepeatEvent($oldEvent, $event);
+ } else {
+ try {
+ $this->eventMapper->save($event);
+ } catch(Zend_Exception $e) {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
}
}
$this->_redirect('/event/index/overlapping/' . $overlapping);
@@ -831,19 +827,19 @@ class EventController extends Zend_Controller_Action
$enewend = date("Y-m-d H:i:s", strtotime($e['end']) + $diffDelta);
$cfv = true;
// overlap events
- if($e['running'] == 0 ) {
- $event = new Application_Model_Event($e);
- $event->setID($e['eventID']);
- $results = $this->eventMapper->getOverlappingEvents($enewstart, $enewend, $poolID, $event);
- if(count($results) > 0) {
- foreach($results as $result) {
- if($result->getID() != $eventID) {
- $overlapswithrepeat[] = $result->toArray();
- $cfv = false;
- }
- }
- }
- }
+ if($e['running'] == 0 ) {
+ $event = new Application_Model_Event($e);
+ $event->setID($e['eventID']);
+ $results = $this->eventMapper->getOverlappingEvents($enewstart, $enewend, $poolID, $event);
+ if(count($results) > 0) {
+ foreach($results as $result) {
+ if($result->getID() != $eventID) {
+ $overlapswithrepeat[] = $result->toArray();
+ $cfv = false;
+ }
+ }
+ }
+ }
// conflict free events with repeat
if($cfv) {
$cfeventswithrepeat[] = $e;
@@ -1115,6 +1111,39 @@ class EventController extends Zend_Controller_Action
foreach($otherEvents as $event) {
$event->setRepeat(2);
+ $filterquery = "bootmenuID=" . $event->getPbs_bootmenuID() . "&title=Poolctrl-Filter for " . $event->getTitle() . "&description=This Filter was automatically created by the Poolctrl for Event " . $event->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);
+ $filterID = sprintf("%s", $filterXML->filter->id);
+ $event->setPbs_filterID($filterID);
+ $startTime = date('H:i', strtotime($event->getStart()));
+ if($event->getEnd()) {
+ $endTime = date('H:i', strtotime($event->getEnd()));
+ } else {
+ $endTime = date('H:i', strtotime($event->getStart()) + 900);
+ }
+ $filterentriesquery1 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=7&filtervalue=" . $startTime . "&filtervalue2=" . $endTime;
+ $filterentriesApiResult1 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery1);
+ $filterentriesXMLString1 = $filterentriesApiResult1['http-body'];
+ $filterentriesXML1 = new SimpleXMLElement($filterentriesXMLString1);
+ $filterentriesID1 = sprintf("%s", $filterentriesXML1->filterentry->id);
+ $filterentriesquery2 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=3&filtervalue=" . $event->getPbs_poolID();
+ $filterentriesApiResult2 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery2);
+ $filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
+ $filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
+ $filterentriesID2 = sprintf("%s", $filterentriesXML2->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);
try {
$this->eventMapper->save($event); //save the event with the new data
} catch (Zend_Exception $e) {
@@ -1390,6 +1419,52 @@ class EventController extends Zend_Controller_Action
}
}
+ $otherEvents = $this->eventMapper->getOtherRepeatEvents($events[0]->getTitle(), $eventIDs);
+
+ foreach($otherEvents as $event) {
+ $event->setRepeat(2);
+ $filterquery = "bootmenuID=" . $event->getPbs_bootmenuID() . "&title=Poolctrl-Filter for " . $event->getTitle() . "&description=This Filter was automatically created by the Poolctrl for Event " . $event->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);
+ $filterID = sprintf("%s", $filterXML->filter->id);
+ $event->setPbs_filterID($filterID);
+ $startTime = date('H:i', strtotime($event->getStart()));
+ if($event->getEnd()) {
+ $endTime = date('H:i', strtotime($event->getEnd()));
+ } else {
+ $endTime = date('H:i', strtotime($event->getStart()) + 900);
+ }
+ $filterentriesquery1 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=7&filtervalue=" . $startTime . "&filtervalue2=" . $endTime;
+ $filterentriesApiResult1 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery1);
+ $filterentriesXMLString1 = $filterentriesApiResult1['http-body'];
+ $filterentriesXML1 = new SimpleXMLElement($filterentriesXMLString1);
+ $filterentriesID1 = sprintf("%s", $filterentriesXML1->filterentry->id);
+ $filterentriesquery2 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=3&filtervalue=" . $event->getPbs_poolID();
+ $filterentriesApiResult2 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery2);
+ $filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
+ $filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
+ $filterentriesID2 = sprintf("%s", $filterentriesXML2->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);
+ try {
+ $this->eventMapper->save($event); //save the event with the new data
+ } catch (Zend_Exception $e) {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
+ }
+
if ($events!=null) {
if ($events[0]->getPbs_membershipID() != $this->userIDsNamespace['membershipID']) {
@@ -2652,6 +2727,11 @@ class EventController extends Zend_Controller_Action
private function editRepeatEvent(Application_Model_Event $oldEvent, Application_Model_Event $newEvent) {
$overlapping = false;
+ $result = $this->eventcategoryMapper->findBy(array('title' => 'Shutdown'));
+ $shutdownCategory = $result[0];
+ $repeattypeMapper = new Application_Model_RepeattypeMapper();
+ $repeattype = new Application_Model_Repeattype();
+ $repeattypeMapper->find($newEvent->getRepeattype(), $repeattype);
$diff = $this->eventMapper->compare($newEvent, $oldEvent);
if(isset($diff['start']) || isset($diff['end'])) {
if(isset($diff['start'])) {
@@ -2662,21 +2742,6 @@ class EventController extends Zend_Controller_Action
$diffEnd = intval(strtotime($newEvent->getEnd())) - intval(strtotime($oldEvent->getEnd()));
unset($diff['end']);
}
- $repeattypeMapper = new Application_Model_RepeattypeMapper();
- $repeattype = new Application_Model_Repeattype();
- $repeattypeMapper->find($newEvent->getRepeattype(), $repeattype);
- $result = $this->eventcategoryMapper->findBy(array('title' => 'Shutdown'));
- $shutdownCategory = $result[0];
- if($newEvent->getCategory() != $shutdownCategory->getID()) {
- if($repeattype == "Once a week") {
- $weekday = date('N', strtotime($diff['start']));
- $filterentriesquery1 = "filterID=" . $newEvent->getPbs_filterID() . "&filtertypeID=10&filtervalue=" . $weekday . "&filtervalue2=" . $weekday;
- $filterentriesApiResult1 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery1);
- $filterentriesXMLString1 = $filterentriesApiResult1['http-body'];
- $filterentriesXML1 = new SimpleXMLElement($filterentriesXMLString1);
- $filterentriesID = sprintf("%s", $filterentriesXML1->filterentry->id);
- }
- }
$events = $this->eventMapper->findBy(array('poolctrl_event.repeat' => 1, 'title' => $oldEvent->getTitle()));
if(count($events) > 0) {
foreach($events as $event) {
@@ -2742,8 +2807,71 @@ 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";
+ 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);
+ }
+ $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']['addfilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterquery);
+ $filterXMLString = $filterApiResult['http-body'];
+ $filterXML = new SimpleXMLElement($filterXMLString);
+ $filterID = sprintf("%s", $filterXML->filter->id);
+ $newEvent->setPbs_filterID($filterID);
+ $filterentriesquery1 = "filterID=" . $newEvent->getPbs_filterID() . "&filtertypeID=3&filtervalue=" . $newEvent->getPbs_poolID();
+ $filterentriesApiResult1 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery1);
+ $filterentriesXMLString1 = $filterentriesApiResult1['http-body'];
+ $filterentriesXML1 = new SimpleXMLElement($filterentriesXMLString1);
+ $filterentriesID1 = sprintf("%s", $filterentriesXML1->filterentry->id);
+ $startTime = date('H:i', strtotime($newEvent->getStart()));
+ if($newEvent->getEnd()) {
+ $endTime = date('H:i', strtotime($newEvent->getEnd()));
+ } else {
+ $endTime = date('H:i', strtotime($newEvent->getStart()) + 900);
+ }
+ $filterentriesquery2 = "filterID=" . $newEvent->getPbs_filterID() . "&filtertypeID=7&filtervalue=" . $startTime . "&filtervalue2=" . $endTime;
+ $filterentriesApiResult2 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery2);
+ $filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
+ $filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
+ $filterentriesID2 = sprintf("%s", $filterentriesXML2->filterentry->id);
+ if($repeattype == "Once a week") {
+ $weekday = date('N', strtotime($diff['start']));
+ $filterentriesquery3 = "filterID=" . $newEvent->getPbs_filterID() . "&filtertypeID=10&filtervalue=" . $weekday . "&filtervalue2=" . $weekday;
+ $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);
+ $filterentriesID = sprintf("%s", $filterentriesXML1->filterentry->id);
+ }
+ }
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);
+ }
$this->eventMapper->save($event);
} catch(Zend_Exception $e)
{
@@ -2755,10 +2883,69 @@ 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";
+ 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);
+ }
+ 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']['addfilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterquery);
+ $filterXMLString = $filterApiResult['http-body'];
+ $filterXML = new SimpleXMLElement($filterXMLString);
+ $filterID = sprintf("%s", $filterXML->filter->id);
+ $newEvent->setPbs_filterID($filterID);
+ $filterentriesquery1 = "filterID=" . $newEvent->getPbs_filterID() . "&filtertypeID=3&filtervalue=" . $newEvent->getPbs_poolID();
+ $filterentriesApiResult1 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery1);
+ $filterentriesXMLString1 = $filterentriesApiResult1['http-body'];
+ $filterentriesXML1 = new SimpleXMLElement($filterentriesXMLString1);
+ $filterentriesID1 = sprintf("%s", $filterentriesXML1->filterentry->id);
+ $startTime = date('H:i', strtotime($newEvent->getStart()));
+ if($newEvent->getEnd()) {
+ $endTime = date('H:i', strtotime($newEvent->getEnd()));
+ } else {
+ $endTime = date('H:i', strtotime($newEvent->getStart()) + 900);
+ }
+ $filterentriesquery2 = "filterID=" . $newEvent->getPbs_filterID() . "&filtertypeID=7&filtervalue=" . $startTime . "&filtervalue2=" . $endTime;
+ $filterentriesApiResult2 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery2);
+ $filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
+ $filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
+ $filterentriesID2 = sprintf("%s", $filterentriesXML2->filterentry->id);
+ }
+ }
$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()));
+ }
+ $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);
+ }
$this->eventMapper->save($event);
}
} catch (Zend_Exception $e) {
diff --git a/application/views/scripts/event/index.phtml b/application/views/scripts/event/index.phtml
index 7b8cfe7..acbca58 100755
--- a/application/views/scripts/event/index.phtml
+++ b/application/views/scripts/event/index.phtml
@@ -2,7 +2,7 @@
<div id='calendar'
style='margin: 3em 0; font-size: 13px'></div>
-
+
<script type="text/javascript">
$(document).ready(function() {iniCalendar();});
@@ -288,7 +288,7 @@ var dayClick = false;
},
"Edit just this Event": function() {
$(this).dialog("close");
- self.location = "/event/edit/eventID/" + event.id + "/poolID/" + $("#poolselectbox option:selected").val();
+ self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
},
"Edit all Events": function() {
$(this).dialog("close");
@@ -302,7 +302,7 @@ var dayClick = false;
});
});
$( "#eventEditWdhDialog" ).dialog('open');
- } else self.location = "/event/edit/eventID/" + event.id + "/poolID/" + $("#poolselectbox option:selected").val();
+ } else self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
} else if (!$.get("/event/checkright/rightShortcut/er")) {
$( "#errorRightsDialog" ).dialog('open');
} else $( "#errorEditImmediate" ).dialog('open');
@@ -865,7 +865,7 @@ var dayClick = false;
},
"Edit just this Event": function() {
$(this).dialog("close");
- self.location = "/event/edit/eventID/" + selectedEvent.id + "/poolID/" + $("#poolselectbox option:selected").val();
+ self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
},
"Edit all Events": function() {
$(this).dialog("close");
@@ -879,7 +879,7 @@ var dayClick = false;
});
});
$( "#eventEditWdhDialog" ).dialog('open');
- } else if (selectedEvent.repeat == 0 && selectedEvent.immediate == 0) self.location = "/event/edit/eventID/" + selectedEvent.id + "/poolID/" + $("#poolselectbox option:selected").val();
+ } else if ( ( selectedEvent.repeat == 0 || selectedEvent.repeat == 2 ) && selectedEvent.immediate == 0) self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
else if (!$.get("/event/checkright/rightShortcut/er")) {
$( "#errorRightsDialog" ).dialog('open');
} else $( "#errorEditImmediate" ).dialog('open');
@@ -1061,21 +1061,21 @@ selected one?</p>
<!-- eventNotDroppableDialog -->
<div id="eventNotDroppableDialog" style="display: none">
-<p>You can´t drop this Event here! There exists at least one collision between two events.</p>
+<p>You can´t drop this Event here! There exists at least one collision
+between two events.</p>
<p>Please choose another position</p>
<div id="accordion">
- <h3><a href="#">Show conflicts</a></h3>
- <div id="conflicts">
- </div>
- <h3><a href="#">Show conflict-free Events</a></h3>
- <div id="cfevents">
- </div>
+<h3><a href="#">Show conflicts</a></h3>
+<div id="conflicts"></div>
+<h3><a href="#">Show conflict-free Events</a></h3>
+<div id="cfevents"></div>
</div>
</div>
<!-- eventNotDroppableDialog2 -->
<div id="eventNotDroppableDialog2" style="display: none">
-<p>You can´t drop this Event here! There exists at least one collision between two events.</p>
+<p>You can´t drop this Event here! There exists at least one collision
+between two events.</p>
<p>Please choose another position</p>
</div>
@@ -1105,4 +1105,5 @@ selected one?</p>
</div>
<!-- add loading image -->
-<IMG id="progress" class="fc-progress" src="/media/img/loader.gif"/> \ No newline at end of file
+<IMG
+ id="progress" class="fc-progress" src="/media/img/loader.gif" />