summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Geiger2011-09-28 17:46:27 +0200
committerBjörn Geiger2011-09-28 17:46:27 +0200
commite4bfe9c7230ae5fcf78095dab008389ef4b6b1f6 (patch)
tree447698c582c8d62bacfdf87743f50213cc5abbd2
parentRepeat Events getestet und korrigiert (diff)
downloadpoolctrl-e4bfe9c7230ae5fcf78095dab008389ef4b6b1f6.tar.gz
poolctrl-e4bfe9c7230ae5fcf78095dab008389ef4b6b1f6.tar.xz
poolctrl-e4bfe9c7230ae5fcf78095dab008389ef4b6b1f6.zip
verschiedene Korrekturen
-rwxr-xr-xapplication/controllers/EventController.php390
-rwxr-xr-xapplication/forms/EventAdd.php32
-rwxr-xr-xapplication/forms/EventEdit.php73
-rwxr-xr-xapplication/models/Event.php12
-rwxr-xr-xapplication/models/EventMapper.php4
-rwxr-xr-xlibrary/Poolctrl/Validator/TitleUnique.php44
-rwxr-xr-xpublic/media/js/script.js19
-rwxr-xr-xsetup/poolctrl.sql2
-rwxr-xr-xsetup/poolctrl_data.sql8
9 files changed, 466 insertions, 118 deletions
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index 6a56263..ab24d63 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -105,8 +105,23 @@ class EventController extends Zend_Controller_Action
$bootosobj->setSource(sprintf("%s", $bootos->source));
$bootosobj->setTitle(sprintf("%s", $bootos->title));
$bootoslist[$bootosobj->getID()] = $bootosobj;
+ foreach($bootos->configs->config as $config) {
+ $configobj = new Application_Model_Config();
+ $configobj->setID(sprintf("%s", $config->configid));
+ $configobj->setBootosID(sprintf("%s", $bootosobj->getID()));
+ $configobj->setCreated(sprintf("%s", $config->created));
+ $configobj->setMembershipID(sprintf("%s", $config->membershipid));
+ $configobj->setDescription(sprintf("%s", $config->description));
+ $configobj->setGroupID(sprintf("%s", $config->groupid));
+ $configobj->setTitle(sprintf("%s", $config->title));
+ $configobj->setVisible(sprintf("%s", $config->visible));
+ if($configobj->getVisible()) {
+ $configlist[$bootosobj->getID()][$configobj->getID()] = $configobj;
+ }
+ }
}
}
+
if(!isset($this->userIDsNamespace['poolID'])) {
$poolApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getpools'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
$poolXMLString = $poolApiResult['http-body'];
@@ -147,38 +162,58 @@ class EventController extends Zend_Controller_Action
}
}
if(isset($this->userIDsNamespace['poolID'])) {
- $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'start' => $start, 'end' => $end, 'defaultEventCategoryID' => $defaultEventCategoryID, 'poolID' => $this->userIDsNamespace['poolID']));
+ $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'configlist' => $configlist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'start' => $start, 'end' => $end, 'defaultEventCategoryID' => $defaultEventCategoryID, 'poolID' => $this->userIDsNamespace['poolID']));
} else {
- $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'poollist' => $poollist, 'start' => $start, 'end' => $end, 'defaultEventCategoryID' => $defaultEventCategoryID));
+ $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'configlist' => $configlist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'poollist' => $poollist, 'start' => $start, 'end' => $end, 'defaultEventCategoryID' => $defaultEventCategoryID));
}
} else {
- $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'start' => $start, 'end' => $end, $this->getRequest()->getParams()));
+ $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'configlist' => $configlist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'start' => $start, 'end' => $end, $this->getRequest()->getParams()));
$params = $this->getRequest()->getParams();
if(!isset($params['pbs_poolID'])) {
$params['pbs_poolID'] = $this->userIDsNamespace['poolID'];
}
if ($addForm->isValid($params)) {
+ $configName = 'pbs_configID_' . $params['pbs_bootosID'];
+ if(isset($params[$configName]) && $params[$configName] != 'default') {
+ $params['pbs_configID'] = $params[$configName];
+ unset($params[$configName]);
+ } else {
+ unset($params[$configName]);
+ unset($params['pbs_configID']);
+ }
if($params['immediate']) {
$params['start'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('start')));
unset($params['end']);
unset($params['repeatEnd']);
$params['repeat'] = 0;
} else {
- $params['start'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('start')));
- if($params['end']) {
- $params['end'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('end')));
+ $params['start'] = date ('Y-m-d H:i', strtotime($params['start']));
+ if(isset($params['end'])) {
+ $params['end'] = date ('Y-m-d H:i', strtotime($params['end']));
} else {
unset($params['end']);
}
+ if(!isset($params['repeattype'])) {
+ unset($params['repeattype']);
+ }
+ if(!isset($params['repeatend'])) {
+ unset($params['repeatend']);
+ }
if(isset($params['repeatdate'])) {
- $params['repeatdate'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('repeatdate')));
+ $params['repeatdate'] = date ('Y-m-d H:i', strtotime($params['repeatdate']));
} else {
unset($params['repeatdate']);
}
+ if(!isset($params['repeatings'])) {
+ unset($params['repeatings']);
+ }
}
$event = new Application_Model_Event($params);
$event->setPbs_membershipID($this->userIDsNamespace['membershipID']);
$bootmenuquery = "bootosID=" . $event->getPbs_bootosID() . "&startcounter=0&title=" . $event->getTitle() . "&defaultbootmenu=1&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);
@@ -206,17 +241,19 @@ class EventController extends Zend_Controller_Action
$filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
$filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
$filterentriesID2 = sprintf("%s", $filterentriesXML2->filterentry->id);
- $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()));
+ if(!$event->getRepeat()) {
+ $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);
}
- $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->getImmediate()) {
$eventcategoryMapper = new Application_Model_EventcategoryMapper();
$result = $eventcategoryMapper->fetchAll();
@@ -233,21 +270,22 @@ class EventController extends Zend_Controller_Action
$event->setRunning(false);
}
$event->setCreated(time());
- try {
- $eventID = $this->eventMapper->save($event);
- } catch(Zend_Exception $e)
- {
- echo "Caught exception: " . get_class($e) . "<br/>";
- echo "Message: " . $e->getMessage() . "<br/>";
- return;
+ if($event->repeat) {
+ $eventID = $this->repeatEvent($event);
+ } else {
+ try {
+ $eventID = $this->eventMapper->save($event);
+ } catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
}
$event->setID($eventID);
if($event->getImmediate()) {
$this->runEvent($event, $this->userIDsNamespace['apikey']);
}
- if($event->repeat) {
- $this->repeatEvent($event);
- }
$this->_redirect('/event/');
}
}
@@ -265,18 +303,18 @@ class EventController extends Zend_Controller_Action
$eventID = $this->_request->getParam('eventID');
if(isset($eventID)) {
$event = new Application_Model_Event();
- if($event->getPbs_bootmenuID()) {
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_bootmenuID());
- }
- if($event->getPbs_filterID()) {
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_filterID());
- }
$this->eventMapper->find($eventID, $event);
if($event->getPbs_membershipID() != $this->userIDsNamespace['membershipID']) {
if(!$this->acl->checkRight('edo')) {
$this->_redirect('/');
}
}
+ if($event->getPbs_bootmenuID()) {
+ $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_bootmenuID());
+ }
+ if($event->getPbs_filterID()) {
+ $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "filterid=" . $event->getPbs_filterID());
+ }
try {
$this->eventMapper->delete($event);
} catch(Zend_Exception $e)
@@ -330,6 +368,19 @@ class EventController extends Zend_Controller_Action
$bootosobj->setSource(sprintf("%s", $bootos->source));
$bootosobj->setTitle(sprintf("%s", $bootos->title));
$bootoslist[$bootosobj->getID()] = $bootosobj;
+ foreach($bootos->configs->config as $config) {
+ $configobj = new Application_Model_Config();
+ $configobj->setID(sprintf("%s", $config->configid));
+ $configobj->setBootosID(sprintf("%s", $bootosobj->getID()));
+ $configobj->setCreated(sprintf("%s", $config->created));
+ $configobj->setDescription(sprintf("%s", $config->description));
+ $configobj->setGroupID(sprintf("%s", $config->groupid));
+ $configobj->setTitle(sprintf("%s", $config->title));
+ $configobj->setVisible(sprintf("%s", $config->visible));
+ if($configobj->getVisible()) {
+ $configlist[$bootosobj->getID()][$configobj->getID()] = $configobj;
+ }
+ }
}
}
$poolApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getpools'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
@@ -356,36 +407,57 @@ class EventController extends Zend_Controller_Action
$repeattypeMapper = new Application_Model_RepeattypeMapper();
$repeattypelist = $repeattypeMapper->fetchAll();
$save = $this->getRequest()->getParam("save");
+
if (isset($save)){
$params = $this->getRequest()->getParams();
- $editForm = new Application_Form_EventEdit(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'poollist' => $poollist, 'repeattypelist' => $repeattypelist, 'repeatendlist' => $repeatendlist, 'params' => $params));
+ $editForm = new Application_Form_EventEdit(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'configlist' => $configlist, 'poollist' => $poollist, 'repeattypelist' => $repeattypelist, 'repeatendlist' => $repeatendlist, 'oldtitle' => $event->getTitle(), 'params' => $params));
if ($editForm->isValid($params)) {
- $params['start'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('start')));
- if($params['end']) {
- $params['end'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('end')));
+ $configName = 'pbs_configID_' . $params['pbs_bootosID'];
+ if(isset($params[$configName]) && $params[$configName] != 'default') {
+ $params['pbs_configID'] = $params[$configName];
+ unset($params[$configName]);
+ } else {
+ unset($params[$configName]);
+ $event->setPbs_configID(null);
+ }
+ $params['start'] = date ('Y-m-d H:i', strtotime($params['start']));
+ if(isset($params['end'])) {
+ $params['end'] = date ('Y-m-d H:i', strtotime($params['end']));
} else {
unset($params['end']);
}
- if($params['repeatdate']) {
- $params['repeatdate'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('repeatdate')));
+ if(!isset($params['repeattype'])) {
+ unset($params['repeattype']);
+ }
+ if(!isset($params['repeatend'])) {
+ unset($params['repeatend']);
+ }
+ if(isset($params['repeatdate'])) {
+ $params['repeatdate'] = date ('Y-m-d H:i', strtotime($params['repeatdate']));
} else {
unset($params['repeatdate']);
}
+ if(!isset($params['repeatings'])) {
+ unset($params['repeatings']);
+ }
if($event->getPbs_bootmenuID()) {
$bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_bootmenuID());
unset($bootmenuApiResult);
}
if($event->getPbs_filterID()) {
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_filterID());
+ $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "filterid=" . $event->getPbs_filterID());
unset($filterApiResult);
}
$params['immediate'] = 0;
- if($event->getRepeat()) {
+ if($event->getRepeat() && isset($params['wdh'])) {
$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";
+ 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);
@@ -413,27 +485,29 @@ class EventController extends Zend_Controller_Action
$filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
$filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
$filterentriesID2 = sprintf("%s", $filterentriesXML2->filterentry->id);
- $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);
- try {
- $this->eventMapper->save($event);
- } catch(Zend_Exception $e)
- {
- echo "Caught exception: " . get_class($e) . "<br/>";
- echo "Message: " . $e->getMessage() . "<br/>";
- return;
+ if(!$event->getRepeat()) {
+ $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);
}
- if($event->getRepeat()) {
+ if($event->getRepeat() && isset($params['wdh'])) {
$this->repeatEvent($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/');
}
@@ -462,9 +536,10 @@ class EventController extends Zend_Controller_Action
$this->getRequest()->setParam('note', $event->getNote());
$this->getRequest()->setParam('pbs_poolID', $event->getPbs_poolID());
$this->getRequest()->setParam('pbs_bootosID', $event->getPbs_bootosID());
+ $this->getRequest()->setParam('pbs_configID_' . $event->getPbs_bootosID(), $event->getPbs_configID());
$this->getRequest()->setParam('pbs_membershipID', $event->getPbs_membershipID());
$params = $this->getRequest()->getParams();
- $editForm = new Application_Form_EventEdit(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'poollist' => $poollist, 'repeattypelist' => $repeattypelist, 'repeatendlist' => $repeatendlist, 'params' => $params));
+ $editForm = new Application_Form_EventEdit(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'configlist' => $configlist, 'poollist' => $poollist, 'repeattypelist' => $repeattypelist, 'repeatendlist' => $repeatendlist, 'oldtitle' => $event->getTitle(), 'params' => $params));
}
$this->view->editForm = $editForm;
$this->view->params = $params;
@@ -485,18 +560,18 @@ class EventController extends Zend_Controller_Action
$eventTitle = $this->_request->getParam('eventTitle');
if (isset ($eventTitle)) {
$event = new Application_Model_Event();
- if ($event->getPbs_bootmenuID()) {
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_bootmenuID());
- }
- if ($event->getPbs_filterID()) {
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_filterID());
- }
$events = $this->eventMapper->findBy(array("title" => $eventTitle));
if ($events[0]->getPbs_membershipID() != $this->userIDsNamespace['membershipID']) {
if (!$this->acl->checkRight('edo')) {
$this->_redirect('/');
}
}
+ if ($events[0]->getPbs_bootmenuID()) {
+ $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $events[0]->getPbs_bootmenuID());
+ }
+ if ($events[0]->getPbs_filterID()) {
+ $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $events[0]->getPbs_filterID());
+ }
try {
foreach($events as $event) {
$this->eventMapper->delete($event);
@@ -1361,27 +1436,72 @@ class EventController extends Zend_Controller_Action
}
private function repeatEvent(Application_Model_Event $event) {
+ try {
+ $eventID = $this->eventMapper->save($event);
+ } catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
$repeattypeMapper = new Application_Model_RepeattypeMapper();
$repeattype = new Application_Model_Repeattype();
$repeattypes = $repeattypeMapper->find($event->getRepeattype(), $repeattype);
$repeatendMapper = new Application_Model_RepeatendMapper();
$repeatend = new Application_Model_Repeatend();
$repeatendMapper->find($event->getRepeatend(), $repeatend);
+ $summertimeStart = intval(date('I', strtotime($event->getStart())));
+ if($event->getEnd()) {
+ $summertimeEnd = intval(date('I', strtotime($event->getEnd())));
+ }
+ $newEvent = $event;
+ $newEvent->setID(null);
+ $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()));
+ }
switch($repeattype->getTitle()) {
case 'Daily':
+ $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);
$onedaytime = 24 * 60 * 60;
$newStartTime = strtotime($event->getStart()) + $onedaytime;
if($event->getEnd()) {
$newEndTime = strtotime($event->getEnd()) + $onedaytime;
}
- $newEvent = $event;
- $newEvent->setID(null);
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newStartTime = $newStartTime + $onedaytime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $onedaytime;
}
@@ -1414,9 +1534,31 @@ class EventController extends Zend_Controller_Action
} else if($repeatend->getTitle() == 'Date') {
$repeatendtime = strtotime($event->getRepeatdate());
while($newStartTime <= $repeatendtime) {
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
$newStartTime = $newStartTime + $onedaytime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $onedaytime;
}
@@ -1462,14 +1604,34 @@ class EventController extends Zend_Controller_Action
if($event->getEnd()) {
$newEndTime = strtotime($event->getEnd()) + $oneweektime;
}
- $newEvent = $event;
- $newEvent->setID(null);
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
$newStartTime = $newStartTime + $oneweektime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $oneweektime;
}
@@ -1485,9 +1647,31 @@ class EventController extends Zend_Controller_Action
} else if($repeatend->getTitle() == 'Date') {
$repeatendtime = strtotime($event->getRepeatdate());
while($newStartTime <= $repeatendtime) {
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
$newStartTime = $newStartTime + $oneweektime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $oneweektime;
}
@@ -1505,19 +1689,44 @@ class EventController extends Zend_Controller_Action
break;
case 'Every couple of weeks':
+ $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);
$twoweekstime = 14 * 24 * 60 * 60;
$newStartTime = strtotime($event->getStart()) + $twoweekstime;
if($event->getEnd()) {
$newEndTime = strtotime($event->getEnd()) + $twoweekstime;
}
- $newEvent = $event;
- $newEvent->setID(null);
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
- $newStartTime = strtotime($newStartTime + $twoweekstime);
+ $newStartTime = $newStartTime + $twoweekstime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $twoweekstime;
}
@@ -1550,9 +1759,31 @@ class EventController extends Zend_Controller_Action
} else if($repeatend->getTitle() == 'Date') {
$repeatendtime = strtotime($event->getRepeatdate());
while($newStartTime <= $repeatendtime) {
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
$newStartTime = $newStartTime + $twoweekstime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $twoweekstime;
}
@@ -1587,6 +1818,11 @@ class EventController extends Zend_Controller_Action
break;
case 'Every month':
+ $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);
$startMonth = date('m', strtotime($event->getStart())) + 1;
$startDay = date('d', strtotime($event->getStart()));
$startYear = date('Y', strtotime($event->getStart()));
@@ -1624,8 +1860,6 @@ class EventController extends Zend_Controller_Action
$newEndDate = $endYear . "-" . $endMonth . "-" . $endDay . " " . date('H:i', strtotime($event->getEnd()));
$newEndTime = strtotime($newEndDate);
}
- $newEvent = $event;
- $newEvent->setID(null);
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
@@ -1761,12 +1995,16 @@ class EventController extends Zend_Controller_Action
break;
}
+ return $eventID;
}
function deleteRepeatEvents(Application_Model_Event $repeatEvent) {
$events = $this->eventMapper->findBy(array("title" => $repeatEvent->getTitle()));
try {
foreach($events as $event) {
+ if($event->getID() == $repeatEvent) {
+ continue;
+ }
$this->eventMapper->delete($event);
}
} catch (Zend_Exception $e) {
diff --git a/application/forms/EventAdd.php b/application/forms/EventAdd.php
index bb166f3..f5503d3 100755
--- a/application/forms/EventAdd.php
+++ b/application/forms/EventAdd.php
@@ -5,6 +5,7 @@ class Application_Form_EventAdd extends Zend_Form
private $membershiplist;
private $bootoslist;
private $poollist;
+ private $configlist;
private $repeattypelist;
private $repeatendlist;
private $eventcategorylist;
@@ -43,6 +44,16 @@ class Application_Form_EventAdd extends Zend_Form
return $this->poollist;
}
+ public function setConfiglist($configlist){
+ $this->configlist = $configlist;
+ return $this;
+
+ }
+
+ public function getConfiglist(){
+ return $this->configlist;
+ }
+
public function setRepeattypelist($repeattypelist){
$this->repeattypelist = $repeattypelist;
return $this;
@@ -144,7 +155,7 @@ class Application_Form_EventAdd extends Zend_Form
'filters' => array('StringTrim'),
'validators' => array(
array('StringLength', false, array(0, 30)),
- array('TitleUnique', false, array()),
+ array('TitleUnique', false, array('title' => '')),
),
'required' => true,
'label' => 'Title:',
@@ -280,8 +291,24 @@ class Application_Form_EventAdd extends Zend_Form
}
$bootosfield->setRegisterInArrayValidator(false);
+ $bootosfield->setAttrib('onchange', "bootosfieldChanged('pbs_bootosID', " . count($this->bootoslist) . ");");
$this->addElement($bootosfield);
+ foreach($this->configlist as $id => $bootosConfigs) {
+ $configfield = $this->createElement('select','pbs_configID_' . $id);
+ $configfield->setLabel('Config:');
+ $configfield->addMultiOption('default', '---no config---');
+
+ if(count($bootosConfigs)>0){
+ foreach($bootosConfigs as $config => $c){
+ $configfield->addMultiOption($c->getID(), $c->getTitle());
+ }
+
+ $configfield->setRegisterInArrayValidator(false);
+ $this->addElement($configfield);
+ }
+ }
+
$this->addElement('submit', 'add', array(
'required' => false,
'ignore' => true,
@@ -298,10 +325,11 @@ class Application_Form_EventAdd extends Zend_Form
echo '<script type="text/javascript">
addeventcategoryfieldChanged("category");
immediateChanged("immediate");
+ bootosfieldChanged("pbs_bootosID", ' . count($this->bootoslist) . ');
$(function() {
$("#start").datetimepicker();
$("#end").datetimepicker();
- $("#repeatEnd").datetimepicker();
+ $("#repeatdate").datetimepicker();
});
</script>';
}
diff --git a/application/forms/EventEdit.php b/application/forms/EventEdit.php
index 100eb89..2e1a4a9 100755
--- a/application/forms/EventEdit.php
+++ b/application/forms/EventEdit.php
@@ -5,9 +5,11 @@ class Application_Form_EventEdit extends Zend_Form
private $membershiplist;
private $bootoslist;
private $poollist;
+ private $configlist;
private $repeattypelist;
private $repeatendlist;
private $eventcategorylist;
+ private $oldtitle;
private $params;
public function setMembershiplist($membershiplist){
@@ -37,6 +39,16 @@ class Application_Form_EventEdit extends Zend_Form
return $this->poollist;
}
+ public function setConfiglist($configlist){
+ $this->configlist = $configlist;
+ return $this;
+
+ }
+
+ public function getConfiglist(){
+ return $this->configlist;
+ }
+
public function setRepeattypelist($repeattypelist){
$this->repeattypelist = $repeattypelist;
return $this;
@@ -66,6 +78,15 @@ class Application_Form_EventEdit extends Zend_Form
$this->eventcategorylist = $eventcategorylist;
}
+ public function setOldtitle($oldtitle){
+ $this->oldtitle = $oldtitle;
+
+ }
+
+ public function getOldtitle(){
+ return $this->oldtitle;
+ }
+
public function getParams()
{
return $this->params;
@@ -99,7 +120,7 @@ class Application_Form_EventEdit extends Zend_Form
'filters' => array('StringTrim'),
'validators' => array(
array('StringLength', false, array(0, 30)),
- array('TitleUnique', false, array()),
+ array('TitleUnique', false, array('title' => $this->oldtitle)),
),
'required' => true,
'label' => 'Title:',
@@ -183,8 +204,8 @@ class Application_Form_EventEdit extends Zend_Form
$repeatendfield = $this->createElement('select','repeatend');
$repeatendfield ->setLabel('Repeat End:');
- if(count($this->$repeatendlist)>0){
- foreach($this->$repeatendlist as $end => $e){
+ if(count($this->repeatendlist)>0){
+ foreach($this->repeatendlist as $end => $e){
$title = $e->getTitle();
$id = $e->getID();
$repeatendfield->addMultiOption($id, $title);
@@ -198,29 +219,6 @@ class Application_Form_EventEdit extends Zend_Form
}
$this->addElement($repeatendfield);
- if(isset($this->params['repeatend'])) {
- $this->addElement('select', 'repeatend', array(
- 'multioptions' => array(
- '1' => 'After',
- '2' => 'Date',
- ),
- 'required' => false,
- 'label' => 'Repeat End:',
- 'value' => $this->params['repeatend'],
- 'onchange' => 'repeatendChanged("repeatend");',
- ));
- } else {
- $this->addElement('select', 'repeatend', array(
- 'multioptions' => array(
- '1' => 'After',
- '2' => 'Date',
- ),
- 'required' => false,
- 'label' => 'Repeat End:',
- 'onchange' => 'repeatendChanged("repeatend");',
- ));
- }
-
if(isset($this->params['repeatdate'])) {
$this->addElement('text', 'repeatdate', array(
'filters' => array('StringTrim'),
@@ -330,9 +328,29 @@ class Application_Form_EventEdit extends Zend_Form
}
$bootosfield->setRegisterInArrayValidator(false);
+ $bootosfield->setAttrib('onchange', "bootosfieldChanged('pbs_bootosID', " . count($this->bootoslist) . ");");
$bootosfield->setValue( $this->params['pbs_bootosID']);
$this->addElement($bootosfield);
+ foreach($this->configlist as $id => $bootosConfigs) {
+ $configfield = $this->createElement('select','pbs_configID_' . $id);
+ $configfield->setLabel('Config:');
+ $configfield->addMultiOption('default', '---no config---');
+
+ if(count($bootosConfigs)>0){
+ foreach($bootosConfigs as $config => $c){
+ $configfield->addMultiOption($c->getID(), $c->getTitle());
+ }
+
+ $configfield->setRegisterInArrayValidator(false);
+ $configName = 'pbs_configID_' . $this->params['pbs_bootosID'];
+ if(isset( $this->params[$configName])) {
+ $configfield->setValue($this->params[$configName]);
+ }
+ $this->addElement($configfield);
+ }
+ }
+
$this->addElement('submit', 'save', array(
'required' => false,
'ignore' => true,
@@ -348,10 +366,11 @@ class Application_Form_EventEdit extends Zend_Form
echo '<script type="text/javascript">
editeventcategoryfieldChanged("category");
+ bootosfieldChanged("pbs_bootosID", ' . count($this->bootoslist) . ');
$(function() {
$("#start").datetimepicker();
$("#end").datetimepicker();
- $("#repeatEnd").datetimepicker();
+ $("#repeatdate").datetimepicker();
});
</script>';
}
diff --git a/application/models/Event.php b/application/models/Event.php
index 24cbcd4..d14bbb9 100755
--- a/application/models/Event.php
+++ b/application/models/Event.php
@@ -21,6 +21,7 @@ class Application_Model_Event
protected $_pbs_poolID;
protected $_pbs_membershipID;
protected $_pbs_bootosID;
+ protected $_pbs_configID;
protected $_pbs_bootmenuID;
protected $_pbs_filterID;
protected $_repeat;
@@ -205,6 +206,17 @@ class Application_Model_Event
return $this;
}
+ public function getPbs_configID()
+ {
+ return $this->_pbs_configID;
+ }
+
+ public function setPbs_configID($_pbs_configID)
+ {
+ $this->_pbs_configID = $_pbs_configID;
+ return $this;
+ }
+
public function getRepeat()
{
return $this->_repeat;
diff --git a/application/models/EventMapper.php b/application/models/EventMapper.php
index 864353c..cacff29 100755
--- a/application/models/EventMapper.php
+++ b/application/models/EventMapper.php
@@ -85,7 +85,7 @@ class Application_Model_EventMapper
public function save(Application_Model_Event $event)
{
- $data = array('eventID'=> $event->getID() ,'category'=> $event->getCategory() ,'title'=> $event->getTitle(), 'pbs_membershipID'=> $event->getPbs_membershipID(),'end'=> $event->getEnd() ,'immediate'=> $event->getImmediate() ,'note'=> $event->getNote() ,'participants'=> $event->getParticipants() ,'pbs_bootosID'=> $event->getPbs_bootosID(),'pbs_poolID'=> $event->getPbs_poolID(),'repeat'=> $event->getRepeat(),'repeattype'=> $event->getRepeattype(),'repeatend'=> $event->getRepeatend(),'repeatdate'=> $event->getRepeatdate(),'repeatings'=> $event->getRepeatings(),'start'=> $event->getStart(),'pbs_bootmenuID'=> $event->getPbs_bootmenuID(),'pbs_filterID'=> $event->getPbs_filterID(), 'running' => $event->getRunning(), 'runningtype' => $event->getRunningtype(), 'created' => $event->getCreated() );
+ $data = array('eventID'=> $event->getID() ,'category'=> $event->getCategory() ,'title'=> $event->getTitle(), 'pbs_membershipID'=> $event->getPbs_membershipID(),'end'=> $event->getEnd() ,'immediate'=> $event->getImmediate() ,'note'=> $event->getNote() ,'participants'=> $event->getParticipants() ,'pbs_bootosID'=> $event->getPbs_bootosID(),'pbs_configID'=> $event->getPbs_configID(),'pbs_poolID'=> $event->getPbs_poolID(),'repeat'=> $event->getRepeat(),'repeattype'=> $event->getRepeattype(),'repeatend'=> $event->getRepeatend(),'repeatdate'=> $event->getRepeatdate(),'repeatings'=> $event->getRepeatings(),'start'=> $event->getStart(), 'pbs_bootmenuID'=> $event->getPbs_bootmenuID(),'pbs_filterID'=> $event->getPbs_filterID(), 'running' => $event->getRunning(), 'runningtype' => $event->getRunningtype(), 'created' => $event->getCreated() );
if (null === ($id = $event->getID()) ) {
unset($data['eventID']);
return $this->getDbTable()->insert($data);
@@ -126,6 +126,7 @@ class Application_Model_EventMapper
->setNote($row->note)
->setParticipants($row->participants)
->setPbs_bootosID($row->pbs_bootosID)
+ ->setPbs_configID($row->pbs_configID)
->setPbs_poolID($row->pbs_poolID)
->setPbs_filterID($row->pbs_filterID)
->setPbs_bootmenuID($row->pbs_bootmenuID)
@@ -158,6 +159,7 @@ class Application_Model_EventMapper
->setNote($row->note)
->setParticipants($row->participants)
->setPbs_bootosID($row->pbs_bootosID)
+ ->setPbs_configID($row->pbs_configID)
->setPbs_poolID($row->pbs_poolID)
->setPbs_filterID($row->pbs_filterID)
->setPbs_bootmenuID($row->pbs_bootmenuID)
diff --git a/library/Poolctrl/Validator/TitleUnique.php b/library/Poolctrl/Validator/TitleUnique.php
index e935736..f051438 100755
--- a/library/Poolctrl/Validator/TitleUnique.php
+++ b/library/Poolctrl/Validator/TitleUnique.php
@@ -9,17 +9,49 @@ class Poolctrl_Validate_TitleUnique extends Zend_Validate_Abstract
self::NOT_UNIQUE => "Title is already assigned",
);
+ public function __construct($option)
+ {
+ if ($option instanceof Zend_Config) {
+ $option = $option->toArray();
+ }
+
+ if (is_array($option)) {
+ if (array_key_exists('title', $option)) {
+ $this->oldTitle = $option['title'];
+ }
+ }
+ }
+
+ protected $oldTitle;
+
public function isValid($value)
{
$this->_setValue($value);
- $eventMapper = new Application_Model_EventMapper();
- $sameEvent = $eventMapper->findBy(array("title" => $value));
+ if(empty($this->oldTitle)) {
+ $eventMapper = new Application_Model_EventMapper();
+ $sameEvent = $eventMapper->findBy(array("title" => $value));
- if (count($sameEvent) > 0) {
- $this->_error(self::NOT_UNIQUE);
- return false;
+ if (count($sameEvent) > 0) {
+ $this->_error(self::NOT_UNIQUE);
+ return false;
+ } else {
+ return true;
+ }
} else {
- return true;
+ if($this->oldTitle == $value) {
+ return true;
+ } else {
+ $eventMapper = new Application_Model_EventMapper();
+ $sameEvent = $eventMapper->findBy(array("title" => $value));
+
+ if (count($sameEvent) > 0) {
+ $this->_error(self::NOT_UNIQUE);
+ return false;
+ } else {
+ return true;
+ }
+
+ }
}
}
} \ No newline at end of file
diff --git a/public/media/js/script.js b/public/media/js/script.js
index 0e299bc..94d8134 100755
--- a/public/media/js/script.js
+++ b/public/media/js/script.js
@@ -105,10 +105,10 @@ function repeatChanged(name) {
} else {
setElementInvisible("repeatdate-label");
setElementInvisible("repeatdate-element");
- disableElement('repeatEnd');
+ disableElement('repeatdate');
setElementInvisible("repeattype-label");
setElementInvisible("repeattype-element");
- disableElement('repeatType');
+ disableElement('repeattype');
setElementInvisible("repeatend-label");
setElementInvisible("repeatend-element");
disableElement('repeatend');
@@ -248,4 +248,19 @@ function repeatendChanged(name) {
setElementInvisible("repeatings-element");
disableElement('repeatings');
}
+}
+
+function bootosfieldChanged(name, bootosCount) {
+ value = getElementValue(name);
+ for (i = 1; i <= bootosCount; i++) {
+ if (value == i) {
+ setElementVisible("pbs_configID_" + i + "-label");
+ setElementVisible("pbs_configID_" + i + "-element");
+ enableElement("pbs_configID_" + i);
+ } else {
+ setElementInvisible("pbs_configID_" + i + "-label");
+ setElementInvisible("pbs_configID_" + i + "-element");
+ disableElement("pbs_configID_" + i);
+ }
+ }
} \ No newline at end of file
diff --git a/setup/poolctrl.sql b/setup/poolctrl.sql
index 5f948f7..01314aa 100755
--- a/setup/poolctrl.sql
+++ b/setup/poolctrl.sql
@@ -15,6 +15,7 @@ CREATE TABLE IF NOT EXISTS `poolctrl_event` (
`pbs_poolID` int(11) NOT NULL,
`pbs_membershipID` int(11) NOT NULL,
`pbs_bootosID` int(11) NOT NULL,
+ `pbs_configID` int(11) DEFAULT NULL,
`pbs_bootmenuID` int(11) NOT NULL,
`pbs_filterID` int(11) NOT NULL,
`repeat` bool NOT NULL DEFAULT false,
@@ -30,6 +31,7 @@ CREATE TABLE IF NOT EXISTS `poolctrl_event` (
KEY `pbs_poolID` (`pbs_poolID`),
KEY `pbs_membershipID` (`pbs_membershipID`),
KEY `pbs_bootosID` (`pbs_bootosID`),
+ KEY `pbs_configID` (`pbs_configID`),
KEY `pbs_bootmenuID` (`pbs_bootmenuID`),
KEY `pbs_filterID` (`pbs_filterID`),
KEY `category` (`category`),
diff --git a/setup/poolctrl_data.sql b/setup/poolctrl_data.sql
index 079b53d..1f02354 100755
--- a/setup/poolctrl_data.sql
+++ b/setup/poolctrl_data.sql
@@ -57,10 +57,10 @@ INSERT INTO `pbs_poolentries` (`poolentriesID`, `poolID`, `clientID`) VALUES
(10, 4, 10);
-- Adding events
-INSERT INTO `poolctrl_event` (`eventID`, `title`, `start`, `end`, `category`, `pbs_poolID`, `pbs_membershipID`, `pbs_bootosID`, `note`, `pbs_bootmenuID`, `pbs_filterID`, `created`) VALUES
-(1, 'Systeme I', '2011-06-24 12:10:00', '2011-06-24 14:00:00', '1', 1, 1, 1, 'Systeme I Vorlesung', 1, 1, 1308583320),
-(2, 'Systeme II', '2011-06-24 14:10:00', '2011-06-24 16:00:00', '1', 1, 1, 1, 'Systeme II Vorlesung', 1, 1, 1308583320),
-(3, 'Systeme III', '2011-06-24 16:10:00', '2011-06-24 18:00:00', '1', 1, 1, 1, 'Systeme III Vorlesung', 1, 1, 1308583320);
+INSERT INTO `poolctrl_event` (`eventID`, `title`, `start`, `end`, `category`, `pbs_poolID`, `pbs_membershipID`, `pbs_bootosID`, `pbs_configID`, `note`, `pbs_bootmenuID`, `pbs_filterID`, `created`) VALUES
+(1, 'Systeme I', '2011-06-24 12:10:00', '2011-06-24 14:00:00', '1', 1, 1, 1, 1, 'Systeme I Vorlesung', 1, 1, 1308583320),
+(2, 'Systeme II', '2011-06-24 14:10:00', '2011-06-24 16:00:00', '1', 1, 1, 1, 1, 'Systeme II Vorlesung', 1, 1, 1308583320),
+(3, 'Systeme III', '2011-06-24 16:10:00', '2011-06-24 18:00:00', '1', 1, 1, 1, 1, 'Systeme III Vorlesung', 1, 1, 1308583320);
-- Adding eventreports
INSERT INTO `poolctrl_eventreport` (`reportID`, `result`, `errors`, `type`, `eventID`, `created`) VALUES