summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xapplication/controllers/EventController.php61
-rwxr-xr-xpublic/media/js/script.js4
2 files changed, 39 insertions, 26 deletions
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index a3ed720..70db0f4 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -382,6 +382,9 @@ class EventController extends Zend_Controller_Action
unset($filterApiResult);
}
$params['immediate'] = 0;
+ if($event->getRepeat()) {
+ $this->deleteRepeatEvents($event);
+ }
$event->setOptions($params);
$event->setID($eventID);
$bootmenuquery = "bootosID=" . $event->getPbs_bootosID() . "&startcounter=0&title=" . $event->getTitle() . "&defaultbootmenu=1&order=0&kcl=0";
@@ -412,25 +415,19 @@ class EventController extends Zend_Controller_Action
$filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
$filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
$filterentriesID2 = sprintf("%s", $filterentriesXML2->filterentry->id);
- if($event->getRepeat()) {
- $weekday = date('N', strtotime($event->getStart()));
- $filterentriesquery3 = "filterID=" . $event->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);
- $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
+ $startDate = date('Y-m-d', strtotime($event->getStart()));
+ if($event->getEnd()) {
+ $endDate = date('Y-m-d', strtotime($event->getEnd()));
} else {
- $startDate = date('Y-m-d', strtotime($event->getStart()));
- if($event->getEnd()) {
- $endDate = date('Y-m-d', strtotime($event->getEnd()));
- } else {
- $endDate = date('Y-m-d', strtotime($event->getStart()));
- }
- $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . $startDate . "&filtervalue2=" . $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);
+ $endDate = date('Y-m-d', strtotime($event->getStart()));
+ }
+ $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . $startDate . "&filtervalue2=" . $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->getRepeat()) {
+ $this->repeatEvent($event);
}
try {
$this->eventMapper->save($event);
@@ -440,6 +437,9 @@ class EventController extends Zend_Controller_Action
echo "Message: " . $e->getMessage() . "<br/>";
return;
}
+ if($event->getRepeat()) {
+ $this->repeatEvent($event);
+ }
$this->_redirect('/event/');
}
} else {
@@ -1376,7 +1376,7 @@ class EventController extends Zend_Controller_Action
case 'Daily':
$onedaytime = 24 * 60 * 60;
$newStartTime = strtotime($event->getStart() + $onedaytime);
- if(isset($event->getEnd())) {
+ if($event->getEnd()) {
$newEndTime = strtotime($event->getEnd() + $onedaytime);
}
$newEvent = $event;
@@ -1462,7 +1462,7 @@ class EventController extends Zend_Controller_Action
$filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
$oneweektime = 7 * 24 * 60 * 60;
$newStartTime = strtotime($event->getStart() + $oneweektime);
- if(isset($event->getEnd())) {
+ if($event->getEnd()) {
$newEndTime = strtotime($event->getEnd() + $oneweektime);
}
$newEvent = $event;
@@ -1508,7 +1508,7 @@ class EventController extends Zend_Controller_Action
case 'Every couple of weeks':
$twoweekstime = 14 * 24 * 60 * 60;
$newStartTime = strtotime($event->getStart() + $twoweekstime);
- if(isset($event->getEnd())) {
+ if($event->getEnd()) {
$newEndTime = strtotime($event->getEnd() + $twoweekstime);
}
$newEvent = $event;
@@ -1593,7 +1593,7 @@ class EventController extends Zend_Controller_Action
$newStartMonth++;
}
$newStartTime = strtotime($newStartDate);
- if(isset($event->getEnd())) {
+ if($event->getEnd()) {
$endMonth = date('m', $event->getEnd());
$newEndMonth = $endMonth + 1;
while(!checkdate(newEndMonth, date('d', $event->getEnd()), date('Y', $event->getEnd()))) {
@@ -1613,7 +1613,7 @@ class EventController extends Zend_Controller_Action
$newStartMonth++;
}
$newStartTime = strtotime($newStartDate);
- if(isset($event->getEnd())) {
+ if($event->getEnd()) {
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$endMonth = date('m', $newEndTime);
$newEndMonth = $endMonth + 1;
@@ -1660,7 +1660,7 @@ class EventController extends Zend_Controller_Action
$newStartMonth++;
}
$newStartTime = strtotime($newStartDate);
- if(isset($event->getEnd())) {
+ if($event->getEnd()) {
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$endMonth = date('m', $newEndTime);
$newEndMonth = $endMonth + 1;
@@ -1701,4 +1701,17 @@ class EventController extends Zend_Controller_Action
break;
}
}
+
+ function deleteRepeatEvents(Application_Model_Event $repeatEvent) {
+ $events = $this->eventMapper->findBy(array("title" => $repeatEvent->getTitle()));
+ try {
+ foreach($events as $event) {
+ $this->eventMapper->delete($event);
+ }
+ } catch (Zend_Exception $e) {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
+ }
} \ No newline at end of file
diff --git a/public/media/js/script.js b/public/media/js/script.js
index 048011a..0e299bc 100755
--- a/public/media/js/script.js
+++ b/public/media/js/script.js
@@ -233,14 +233,14 @@ function editeventcategoryfieldChanged(name) {
function repeatendChanged(name) {
value = getElementValue(name);
- if (value == 'after') {
+ if (value == '1') {
setElementInvisible("repeatdate-label");
setElementInvisible("repeatdate-element");
disableElement('repeatdate');
setElementVisible("repeatings-label");
setElementVisible("repeatings-element");
enableElement('repeatings');
- } else if (value == 'date') {
+ } else if (value == '2') {
setElementVisible("repeatdate-label");
setElementVisible("repeatdate-element");
enableElement('repeatdate');