summaryrefslogtreecommitdiffstats
path: root/application/forms/EventEdit.php
diff options
context:
space:
mode:
authorBjörn Geiger2011-06-30 09:28:54 +0200
committerBjörn Geiger2011-06-30 09:28:54 +0200
commit64a48fc44d5efb42280587f8e33d14ebfe68e5b5 (patch)
tree5f244a5d1ec6249c8efb7faf8e63db342ca5d9f5 /application/forms/EventEdit.php
parentMerge branch 'master' of git.openslx.org:lsfks/projekte/poolctrl (diff)
downloadpoolctrl-64a48fc44d5efb42280587f8e33d14ebfe68e5b5.tar.gz
poolctrl-64a48fc44d5efb42280587f8e33d14ebfe68e5b5.tar.xz
poolctrl-64a48fc44d5efb42280587f8e33d14ebfe68e5b5.zip
zu getParam geändert
Diffstat (limited to 'application/forms/EventEdit.php')
-rw-r--r--application/forms/EventEdit.php438
1 files changed, 260 insertions, 178 deletions
diff --git a/application/forms/EventEdit.php b/application/forms/EventEdit.php
index c74f5ab..5fc9586 100644
--- a/application/forms/EventEdit.php
+++ b/application/forms/EventEdit.php
@@ -1,199 +1,281 @@
<?php
+/*
+ * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg
+ * This program is free software distributed under the GPL version 2.
+ * See http://gpl.openslx.org/
+ *
+ * If you have any feedback please consult http://feedback.openslx.org/ and
+ * send your suggestions, praise, or complaints to feedback@openslx.org
+ *
+ * General information about OpenSLX can be found at http://openslx.org/
+ */
-class Application_Form_EventEdit extends Zend_Form
+class EventController extends Zend_Controller_Action
{
- private $membershiplist;
- private $bootoslist;
- private $poollist;
- private $eventcategorylist;
+ protected $eventMapper;
+ protected $eventcategoryMapper;
+ protected $membershipMapper;
+ protected $personMapper;
- public function setMembershiplist($membershiplist){
- $this->membershiplist = $membershiplist;
-
- }
-
- public function getMembershiplist(){
- return $this->membershiplist;
- }
-
- public function setBootoslist($bootoslist){
- $this->bootoslist = $bootoslist;
-
- }
-
- public function getBootoslist(){
- return $this->bootoslist;
- }
-
- public function setPoollist($poollist){
- $this->poollist = $poollist;
-
- }
-
- public function getPoollist(){
- return $this->poollist;
- }
-
- public function getEventcategorylist()
+ public function init()
{
- return $this->eventcategorylist;
+ $this->eventMapper = new Application_Model_EventMapper();
+ $this->eventcategoryMapper = new Application_Model_EventcategoryMapper();
+ $this->membershipMapper = new Application_Model_MembershipMapper();
+ $this->personMapper = new Application_Model_PersonMapper();
}
-
- public function setEventcategorylist($eventcategorylist)
+
+ public function indexAction()
{
- $this->eventcategorylist = $eventcategorylist;
+ $events = $this->eventMapper->fetchAll();
+ if(is_array($events)) {
+ $bootOsApiResult = PostToHost('pbs2poolctrl.mp.openslx.org', '/resource/getbootos/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
+ $bootOsXMLString = $bootOsApiResult['http-body'];
+ $bootOsXML = new SimpleXMLElement($bootOsXMLString);
+ foreach($bootOsXML->bootoslist->bootos as $bootos) {
+ $bootosobj = new Application_Model_BootOs();
+ $bootosobj->setID(sprintf("%s", $bootos->id));
+ $bootosobj->setCreated(sprintf("%s", $bootos->created));
+ $bootosobj->setDefaultkcl(sprintf("%s", $bootos->defaultkcl));
+ $bootosobj->setDescription(sprintf("%s", $bootos->description));
+ $bootosobj->setDistro(sprintf("%s", $bootos->distro));
+ $bootosobj->setDistroversion(sprintf("%s", $bootos->distroversion));
+ $bootosobj->setExpires(sprintf("%s", $bootos->expires));
+ $bootosobj->setGroupID(sprintf("%s", $bootos->groupid));
+ $bootosobj->setMembershipID(sprintf("%s", $bootos->membershipid));
+ $bootosobj->setPublic(sprintf("%s", $bootos->public));
+ $bootosobj->setShare(sprintf("%s", $bootos->share));
+ $bootosobj->setShortname(sprintf("%s", $bootos->shortname));
+ $bootosobj->setSource(sprintf("%s", $bootos->source));
+ $bootosobj->setTitle(sprintf("%s", $bootos->title));
+ $bootoslist[$bootosobj->getID()] = $bootosobj;
+ }
+ $poolApiResult = PostToHost('pbs2poolctrl.mp.openslx.org', '/resource/getpool/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
+ $poolXMLString = $poolApiResult['http-body'];
+ $poolXML = new SimpleXMLElement($poolXMLString);
+ foreach($poolXML->poollist->pool as $pool) {
+ $poolobj = new Application_Model_Pool();
+ $poolobj->setID(sprintf("%s", $pool->id));
+ $poolobj->setDescription(sprintf("%s", $pool->description));
+ $poolobj->setGroupID(sprintf("%s", $pool->groupid));
+ $poolobj->setLocation(sprintf("%s", $pool->location));
+ $poolobj->setTitle(sprintf("%s", $pool->title));
+ $poollist[$poolobj->getID()] = $poolobj;
+ }
+ foreach($events as $eventObj) {
+ $event = $eventObj->toArray();
+ $bootos = new Application_Model_BootOs();
+ $event['pbs_bootos_title'] = $bootoslist[$event['pbs_bootosID']]->getTitle();
+ $membership = new Application_Model_Membership();
+ $this->membershipMapper->find($event['pbs_membershipID'], $membership);
+ $person = new Application_Model_Person();
+ $this->personMapper->find($membership->getPersonID(), $person);
+ $event['pbs_person_name'] = $person->getFirstname() . " " . $person->getName();
+ $eventcategory = new Application_Model_Eventcategory();
+ $this->eventcategoryMapper->find($event['category'], $eventcategory);
+ $event['category'] = $eventcategory->getTitle();
+ $eventlist[$poollist[$event['pbs_poolID']]->getTitle()][] = $event;
+ }
+ }
+ $params = $this->getRequest()->getParams();
+ $this->view->params = $params;
+ $this->view->eventlist = $eventlist;
}
-
- public function init()
+
+ public function addAction()
{
- $this->setName('EventEdit');
- $this->setMethod('post');
-
- $this->addElement('text', 'title', array(
- 'filters' => array('StringTrim'),
- 'validators' => array(
- array('StringLength', false, array(0, 50)),
- ),
- 'required' => true,
- 'label' => 'Title:',
- 'value' => $_POST['title'],
- ));
-
- if($_POST['immediate'] == 1) {
- $this->addElement('checkbox', 'immediate', array(
- 'required' => false,
- 'label' => 'Immediate Event',
- 'value'=>array(0,1),
- 'checked' => 'checked',
- ));
- } else {
- $this->addElement('checkbox', 'immediate', array(
- 'required' => false,
- 'label' => 'Immediate Event',
- 'value'=>array(0,1),
- ));
+ $eventcategorylist = $this->eventcategoryMapper->fetchAll();
+ $bootOsApiResult = PostToHost('pbs2poolctrl.mp.openslx.org', '/resource/getbootos/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
+ $bootOsXMLString = $bootOsApiResult['http-body'];
+ $bootOsXML = new SimpleXMLElement($bootOsXMLString);
+ foreach($bootOsXML->bootoslist->bootos as $bootos) {
+ $bootosobj = new Application_Model_BootOs();
+ $bootosobj->setID(sprintf("%s", $bootos->id));
+ $bootosobj->setCreated(sprintf("%s", $bootos->created));
+ $bootosobj->setDefaultkcl(sprintf("%s", $bootos->defaultkcl));
+ $bootosobj->setDescription(sprintf("%s", $bootos->description));
+ $bootosobj->setDistro(sprintf("%s", $bootos->distro));
+ $bootosobj->setDistroversion(sprintf("%s", $bootos->distroversion));
+ $bootosobj->setExpires(sprintf("%s", $bootos->expires));
+ $bootosobj->setGroupID(sprintf("%s", $bootos->groupid));
+ $bootosobj->setMembershipID(sprintf("%s", $bootos->membershipid));
+ $bootosobj->setPublic(sprintf("%s", $bootos->public));
+ $bootosobj->setShare(sprintf("%s", $bootos->share));
+ $bootosobj->setShortname(sprintf("%s", $bootos->shortname));
+ $bootosobj->setSource(sprintf("%s", $bootos->source));
+ $bootosobj->setTitle(sprintf("%s", $bootos->title));
+ $bootoslist[$bootosobj->getID()] = $bootosobj;
}
-
- $this->addElement('text', 'start', array(
- 'filters' => array('StringTrim'),
- 'validators' => array(
- array('StringLength', false, array(0, 50)),
- ),
- 'required' => true,
- 'label' => 'Start (mm/dd/yyyy H:min):',
- 'value' => date ('m/d/Y H:i', strtotime($_POST['start'])),
- ));
-
- $this->addElement('text', 'end', array(
- 'filters' => array('StringTrim'),
- 'validators' => array(
- array('StringLength', false, array(0, 50)),
- ),
- 'required' => true,
- 'label' => 'End (mm/dd/yyyy H:min):',
- 'value' => date ('m/d/Y H:i', strtotime($_POST['end'])),
- ));
-
- if($_POST['repeat'] == 1) {
- $this->addElement('checkbox', 'repeat', array(
- 'required' => false,
- 'label' => 'Repeat:',
- 'value'=>array(0,1),
- 'checked' => 'checked',
- ));
- } else {
- $this->addElement('checkbox', 'repeat', array(
- 'required' => false,
- 'label' => 'Repeat:',
- 'value'=>array(0,1),
- ));
+ $poolApiResult = PostToHost('pbs2poolctrl.mp.openslx.org', '/resource/getpool/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
+ $poolXMLString = $poolApiResult['http-body'];
+ $poolXML = new SimpleXMLElement($poolXMLString);
+ foreach($poolXML->poollist->pool as $pool) {
+ $poolobj = new Application_Model_Pool();
+ $poolobj->setID(sprintf("%s", $pool->id));
+ $poolobj->setDescription(sprintf("%s", $pool->description));
+ $poolobj->setGroupID(sprintf("%s", $pool->groupid));
+ $poolobj->setLocation(sprintf("%s", $pool->location));
+ $poolobj->setTitle(sprintf("%s", $pool->title));
+ $poollist[$poolobj->getID()] = $poolobj;
}
-
- $this->addElement('text', 'participants', array(
- 'filters' => array('StringTrim'),
- 'validators' => array(
- array('StringLength', false, array(0, 140)),
- ),
- 'required' => false,
- 'label' => 'Participants:',
- 'value' => $_POST['participants'],
- ));
-
- $eventcategoryfield = new Zend_Form_Element_Select('category');
- $eventcategoryfield ->setLabel('Category:');
-
- if(count($this->eventcategorylist)>0){
- foreach($this->eventcategorylist as $category => $c){
- $eventcategoryfield->addMultiOption($c->getID(), $c->getTitle());
+ $add = $this->getRequest()->getParam("add");
+ if (!isset($add)){
+ $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'poollist' => $poollist));
+ } else {
+ $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'poollist' => $poollist, $this->getRequest()->getParams()));
+ if ($addForm->isValid($this->getRequest()->getParams())) {
+ $this->getRequest()->setParam('start', date ('Y-m- H:i', strtotime($this->getRequest()->getParam('start'))));
+ $this->getRequest()->setParam('end', date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('end'))));
+ $event = new Application_Model_Event($this->getRequest()->getParams());
+ $event->setPbs_membershipID(1);
+ $bootmenuquery = "bootosID=" . $event->getPbs_bootosID() . "&startcounter=0&title=" . $event->getTitle() . "&defaultbootmenu=1&order=0&kcl=0";
+ $bootmenuApiResult = PostToHost('pbs2poolctrl.mp.openslx.org', '/resource/addbootmenu/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
+ $bootmenuXMLString = $bootmenuApiResult['http-body'];
+ $bootmenuXML = new SimpleXMLElement($bootmenuXMLString);
+ $bootmenuID = sprintf("%s", $bootmenuXML->bootmenuid);
+ $event->setPbs_bootmenuID($bootmenuID);
+ //$event->setPbs_filterID($filterID);
+ try {
+ $eventID = $this->eventMapper->save($event);
+ } catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
+ $this->_redirect('/event/');
}
}
+ $params = $this->getRequest()->getParams();
+ $this->view->params = $params;
+ $this->view->addForm = $addForm;
+ }
- $eventcategoryfield->setRegisterInArrayValidator(false);
- $eventcategoryfield->setValue($_POST['category']);
- $this->addElement($eventcategoryfield);
-
- $this->addElement('text', 'note', array(
- 'filters' => array('StringTrim'),
- 'validators' => array(
- array('StringLength', false, array(0, 140)),
- ),
- 'required' => false,
- 'label' => 'Note:',
- 'value' => $_POST['note'],
- ));
-
- $poolfield = $this->createElement('select','pbs_poolID');
- $poolfield ->setLabel('Pool:');
-
- if(count($this->poollist)>0){
- foreach($this->poollist as $pool => $p){
- $poolfield->addMultiOption($p->getID(), $p->getTitle());
+ public function deleteAction()
+ {
+ $this->_helper->viewRenderer->setNoRender();
+ $eventID = $this->_request->getParam('eventID');
+ if(isset($eventID)) {
+ $event = new Application_Model_Event();
+ if($event->getPbs_bootmenuID()) {
+ $bootmenuApiResult = PostToHost('pbs2poolctrl.mp.openslx.org', '/resource/deletebootmenu/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_bootmenuID());
+ }
+ if($event->getPbs_filterID()) {
+ $filterApiResult = PostToHost('pbs2poolctrl.mp.openslx.org', '/resource/deletefilter/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_filterID());
+ }
+ $this->eventMapper->find($eventID, $event);
+ try {
+ $this->eventMapper->delete($event);
+ } catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
}
+ $this->_redirect('/event/');
+ } else {
+ $this->_redirect('/event/');
+ return;
}
+ }
- $poolfield->setRegisterInArrayValidator(false);
- $poolfield->setValue($_POST['pbs_poolID']);
- $this->addElement($poolfield);
-
- // $membershipfield = $this->createElement('select','pbs_membershipID');
- // $membershipfield ->setLabel('Membership:');
- //
- // if(count($this->membershiplist)>0){
- // foreach($this->membershiplist as $membership => $m){
- // $membershipfield->addMultiOption($m->getID(), $m->getPersonID());
- // }
- // }
- //
- // $membershipfield->setRegisterInArrayValidator(false);
- // $this->addElement($membershipfield);
-
- $bootosfield = $this->createElement('select','pbs_bootosID');
- $bootosfield ->setLabel('BootOS:');
-
- if(count($this->bootoslist)>0){
- foreach($this->bootoslist as $bootos => $b){
- $bootosfield->addMultiOption($b->getID(), $b->getTitle());
+ public function editAction()
+ {
+ $eventcategorylist = $this->eventcategoryMapper->fetchAll();
+ $bootOsApiResult = PostToHost('pbs2poolctrl.mp.openslx.org', '/resource/getbootos/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
+ $bootOsXMLString = $bootOsApiResult['http-body'];
+ $bootOsXML = new SimpleXMLElement($bootOsXMLString);
+ foreach($bootOsXML->bootoslist->bootos as $bootos) {
+ $bootosobj = new Application_Model_BootOs();
+ $bootosobj->setID(sprintf("%s", $bootos->id));
+ $bootosobj->setCreated(sprintf("%s", $bootos->created));
+ $bootosobj->setDefaultkcl(sprintf("%s", $bootos->defaultkcl));
+ $bootosobj->setDescription(sprintf("%s", $bootos->description));
+ $bootosobj->setDistro(sprintf("%s", $bootos->distro));
+ $bootosobj->setDistroversion(sprintf("%s", $bootos->distroversion));
+ $bootosobj->setExpires(sprintf("%s", $bootos->expires));
+ $bootosobj->setGroupID(sprintf("%s", $bootos->groupid));
+ $bootosobj->setMembershipID(sprintf("%s", $bootos->membershipid));
+ $bootosobj->setPublic(sprintf("%s", $bootos->public));
+ $bootosobj->setShare(sprintf("%s", $bootos->share));
+ $bootosobj->setShortname(sprintf("%s", $bootos->shortname));
+ $bootosobj->setSource(sprintf("%s", $bootos->source));
+ $bootosobj->setTitle(sprintf("%s", $bootos->title));
+ $bootoslist[$bootosobj->getID()] = $bootosobj;
+ }
+ $poolApiResult = PostToHost('pbs2poolctrl.mp.openslx.org', '/resource/getpool/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
+ $poolXMLString = $poolApiResult['http-body'];
+ $poolXML = new SimpleXMLElement($poolXMLString);
+ foreach($poolXML->poollist->pool as $pool) {
+ $poolobj = new Application_Model_Pool();
+ $poolobj->setID(sprintf("%s", $pool->id));
+ $poolobj->setDescription(sprintf("%s", $pool->description));
+ $poolobj->setGroupID(sprintf("%s", $pool->groupid));
+ $poolobj->setLocation(sprintf("%s", $pool->location));
+ $poolobj->setTitle(sprintf("%s", $pool->title));
+ $poollist[$poolobj->getID()] = $poolobj;
+ }
+ $eventID = $this->_request->getParam('eventID');
+ if(!isset($eventID)) {
+ $this->_helper->redirector('add', 'event');
+ return;
+ } else {
+ $save = $this->getRequest()->getParam("save");
+ if (isset($save)){
+ $editForm = new Application_Form_EventEdit(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'poollist' => $poollist, $this->getRequest()->getParams()));
+ if ($editForm->isValid($this->getRequest()->getParams())) {
+ $this->getRequest()->setParam('start', date ('Y-m- H:i', strtotime($this->getRequest()->getParam('start'))));
+ $this->getRequest()->setParam('end', date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('end'))));
+ $event = new Application_Model_Event();
+ $this->eventMapper->find($eventID, $event);
+ if($event->getPbs_bootmenuID()) {
+ $bootmenuApiResult = PostToHost('pbs2.local', '/resource/deletebootmenu/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_bootmenuID());
+ unset($bootmenuApiResult);
+ }
+ if($event->getPbs_filterID()) {
+ $filterApiResult = PostToHost('pbs2.local', '/resource/deletefilter/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_filterID());
+ unset($filterApiResult);
+ }
+ $event->setOptions($this->getRequest()->getParams());
+ $event->setID($eventID);
+ $bootmenuquery = "bootosID=" . $event->getPbs_bootosID() . "&startcounter=0&title=" . $event->getTitle() . "&defaultbootmenu=1&order=0&kcl=0";
+ $bootmenuApiResult = PostToHost('pbs2.local', '/resource/addbootmenu/apikey/apikey1', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
+ $bootmenuXMLString = $bootmenuApiResult['http-body'];
+ $bootmenuXML = new SimpleXMLElement($bootmenuXMLString);
+ $bootmenuID = sprintf("%s", $bootmenuXML->bootmenuid);
+ $event->setPbs_bootmenuID($bootmenuID);
+ //$event->setPbs_filterID($filterID);
+ print_r($event);
+ $params = $this->getRequest()->getParams();
+ 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/');
+ }
+ } else {
+ $event = new Application_Model_Event();
+ $this->eventMapper->find($eventID, $event);
+ $this->getRequest()->setParam('title', $event->getTitle());
+ $this->getRequest()->setParam('immediate', $event->getImmediate());
+ $this->getRequest()->setParam('start', $event->getStart());
+ $this->getRequest()->setParam('end', $event->getEnd());
+ $this->getRequest()->setParam('repeat', $event->getRepeat());
+ $this->getRequest()->setParam('participants', $event->getParticipants());
+ $this->getRequest()->setParam('category', $event->getCategory());
+ $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_membershipID', $event->getPbs_membershipID());
+ $params = $this->getRequest()->getParams();
+ $editForm = new Application_Form_EventEdit(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'poollist' => $poollist , 'params' => $params));
}
+ $this->view->editForm = $editForm;
+ $this->view->params = $params;
}
-
- $bootosfield->setRegisterInArrayValidator(false);
- $bootosfield->setValue($_POST['pbs_bootosID']);
- $this->addElement($bootosfield);
-
- $this->addElement('submit', 'save', array(
- 'required' => false,
- 'ignore' => true,
- 'label' => 'Save Event'
- ));
-
- $this->addElement('button', 'cancel', array(
- 'required' => false,
- 'ignore' => true,
- 'label' => 'Cancel',
- 'onclick' => 'location.href="javascript:history.back();"',
- ));
-
}
-
-
} \ No newline at end of file