summaryrefslogtreecommitdiffstats
path: root/application
diff options
context:
space:
mode:
authorsebastian wagner2011-09-14 14:15:53 +0200
committersebastian wagner2011-09-14 14:15:53 +0200
commitdb86ef34e628abd6e8d663028aa07afa58c47304 (patch)
tree474c9294dd7cb48b5142c95c6414b40cde160eb9 /application
parenteventSource Bug fixed (diff)
parentgitignore (diff)
downloadpoolctrl-db86ef34e628abd6e8d663028aa07afa58c47304.tar.gz
poolctrl-db86ef34e628abd6e8d663028aa07afa58c47304.tar.xz
poolctrl-db86ef34e628abd6e8d663028aa07afa58c47304.zip
Merge branch 'master' of git.openslx.org:lsfks/projekte/poolctrl
Diffstat (limited to 'application')
-rwxr-xr-xapplication/configs/application.ini.dist4
-rwxr-xr-xapplication/controllers/EventController.php76
-rwxr-xr-xapplication/models/Event.php12
-rwxr-xr-xapplication/models/EventMapper.php4
-rwxr-xr-xapplication/models/Eventreport.php14
-rwxr-xr-xapplication/models/EventreportMapper.php6
-rwxr-xr-xapplication/views/scripts/event/index.phtml6
-rwxr-xr-xapplication/views/scripts/event/showreports.phtml49
8 files changed, 158 insertions, 13 deletions
diff --git a/application/configs/application.ini.dist b/application/configs/application.ini.dist
index 46d9759..edbd635 100755
--- a/application/configs/application.ini.dist
+++ b/application/configs/application.ini.dist
@@ -33,8 +33,8 @@ pbs2.getmembership = /resource/getmembership/apikey/
pbs2.getgroup = /resource/getgroup/apikey/
pbs2.getrole = /resource/getrole/apikey/
poolctrl.host =
-poolctrl.runevent = /event/run/apikey/apikey1
-poolctrl.reportevent = /event/report/apikey/apikey1
+poolctrl.runevent = /event/run/apikey/
+poolctrl.reportevent = /event/report/apikey/
gearman.server.host =
gearman.server.port =
gearman.worker.waitTime = 120
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index 7256335..6c51789 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -304,6 +304,12 @@ class EventController extends Zend_Controller_Action
$this->_helper->redirector('add', 'event');
return;
} else {
+ $event = new Application_Model_Event();
+ $this->eventMapper->find($eventID, $event);
+ if($event->getImmediate()) {
+ $this->_redirect('/event/');
+ exit;
+ }
$eventcategorylist = $this->eventcategoryMapper->fetchAll();
$bootOsApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getbootoss'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
$bootOsXMLString = $bootOsApiResult['http-body'];
@@ -342,8 +348,6 @@ class EventController extends Zend_Controller_Action
$poollist[$poolobj->getID()] = $poolobj;
}
}
- $event = new Application_Model_Event();
- $this->eventMapper->find($eventID, $event);
if($event->getPbs_membershipID() != $this->userIDsNamespace['membershipID']) {
if(!$this->acl->checkRight('eeo')) {
$this->_redirect('/');
@@ -944,6 +948,74 @@ class EventController extends Zend_Controller_Action
echo $resultString;
}
+ public function showreportsAction() {
+ if(!$this->acl->checkRight('er')) {
+ header('HTTP/1.0 403 No Right to run events');
+ die();
+ }
+ $eventID = $this->_request->getParam("eventID");
+ if($eventID) {
+ $event = new Application_Model_Event();
+ $this->eventMapper->find($eventID, $event);
+ $eventreportMapper = new Application_Model_EventreportMapper();
+ $reportlist = $eventreportMapper->findBy(array("eventID" => $eventID), false, array('created' => 'ASC'));
+ $eventtypeMapper = new Application_Model_EventtypeMapper();
+ $eventtypes = array();
+ $result = $eventtypeMapper->fetchAll();
+ if(count($result) > 0) {
+ foreach($result as $type) {
+ $eventtypes[$type->getID()] = $type->getTitle();
+ }
+ }
+ for($i = 0; $i < count($reportlist); $i++) {
+ $reportType = $eventtypes[$reportlist[$i]->getType()];
+ $reportlist[$i]->setType($reportType);
+ }
+
+ $this->view->eventTitle = $event->getTitle();
+ $this->view->reportlist = $reportlist;
+
+ // Pagination
+ $pagination = new Poolctrl_Pagination();
+ $pagination->setPerPage(5);
+ $pagination->setElement($this->view->reportlist);
+ $pagination->setRequestPage($this->_request->getParam('page'));
+ $pagination->setPageUrl('/event/showreports/eventID/' . $eventID);
+
+ $this->view->reportlist = $pagination->getElements();
+ $this->view->pagination = $pagination->pagination();
+ } else {
+ $this->_redirect('/event/');
+ exit;
+ }
+ }
+
+ public function deletereportAction() {
+ if(!$this->acl->checkRight('er')) {
+ $this->_redirect('/');
+ }
+ $this->_helper->viewRenderer->setNoRender();
+ $reportID = $this->_request->getParam('reportID');
+ if(isset($reportID)) {
+ $eventreportMapper = new Application_Model_EventreportMapper();
+ $report = new Application_Model_Eventreport();
+ $eventreportMapper->find($reportID, $report);
+ $eventID = $report->getEventID();
+ try {
+ $eventreportMapper->delete($report);
+ } catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
+ $this->_redirect('/event/showreports/eventID/' . $eventID);
+ } else {
+ $this->_redirect('/event/');
+ exit;
+ }
+ }
+
private function runEvent(Application_Model_Event $event, $apikey) {
$data = array(
'eventName' => $event->getTitle(),
diff --git a/application/models/Event.php b/application/models/Event.php
index 7f20d10..76bb2dc 100755
--- a/application/models/Event.php
+++ b/application/models/Event.php
@@ -30,6 +30,7 @@ class Application_Model_Event
protected $_running;
protected $_runningtype;
protected $_note;
+ protected $_created;
public function __construct(array $options = null)
{
@@ -300,5 +301,16 @@ class Application_Model_Event
$this->_runningtype = $_runningtype;
return $this;
}
+
+ public function getCreated()
+ {
+ return $this->_created;
+ }
+
+ public function setCreated($_created)
+ {
+ $this->_created = $_created;
+ return $this;
+ }
}
diff --git a/application/models/EventMapper.php b/application/models/EventMapper.php
index 921fb41..418bab8 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(),'repeatEnd'=> $event->getRepeatEnd(),'start'=> $event->getStart(),'pbs_bootmenuID'=> $event->getPbs_bootmenuID(),'pbs_filterID'=> $event->getPbs_filterID(), 'running' => $event->getRunning(), 'runningtype' => $event->getRunningtype() );
+ $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(),'repeatEnd'=> $event->getRepeatEnd(),'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);
@@ -133,6 +133,7 @@ class Application_Model_EventMapper
->setRepeatEnd($row->repeatEnd)
->setStart($row->start)
->setRunning($row->running)
+ ->setCreated($row->created)
->setRunningtype($row->runningtype);
}
@@ -161,6 +162,7 @@ class Application_Model_EventMapper
->setRepeatEnd($row->repeatEnd)
->setStart($row->start)
->setRunning($row->running)
+ ->setCreated($row->created)
->setRunningtype($row->runningtype);
$entries[$row->eventID] = $entry;
diff --git a/application/models/Eventreport.php b/application/models/Eventreport.php
index ff94a09..f40b16a 100755
--- a/application/models/Eventreport.php
+++ b/application/models/Eventreport.php
@@ -16,6 +16,7 @@ class Application_Model_Eventreport
protected $_result;
protected $_errors;
protected $_type;
+ protected $_created;
protected $_eventID;
public function __construct(array $options = null)
@@ -133,7 +134,7 @@ class Application_Model_Eventreport
return $this;
}
- public function geType()
+ public function getType()
{
return $this->_type;
}
@@ -143,5 +144,16 @@ class Application_Model_Eventreport
$this->_type = $_type;
return $this;
}
+
+ public function getCreated()
+ {
+ return $this->_created;
+ }
+
+ public function setCreated($_created)
+ {
+ $this->_created = $_created;
+ return $this;
+ }
}
diff --git a/application/models/EventreportMapper.php b/application/models/EventreportMapper.php
index 00379f9..b5f405e 100755
--- a/application/models/EventreportMapper.php
+++ b/application/models/EventreportMapper.php
@@ -43,7 +43,7 @@ class Application_Model_EventreportMapper
$entries = array();
if(count($result) > 0) {
foreach ($result as $row) {
- $entry = new Application_Model_Event($row);
+ $entry = new Application_Model_Eventreport($row);
$entry->setID($row['reportID']);
$entries[] = $entry;
}
@@ -84,7 +84,7 @@ class Application_Model_EventreportMapper
public function save(Application_Model_Eventreport $eventreport)
{
- $data = array('reportID'=> $eventreport->getID() ,'eventID'=> $eventreport->getEventID() ,'result'=> $eventreport->getResult(), 'errors' => $eventreport->getErrors(), 'type' => $eventreport->geType() );
+ $data = array('reportID'=> $eventreport->getID() ,'eventID'=> $eventreport->getEventID() ,'result'=> $eventreport->getResult(), 'errors' => $eventreport->getErrors(), 'type' => $eventreport->geType(), 'created' => $eventreport->getCreated() );
if (null === ($id = $eventreport->getID()) ) {
unset($data['reportID']);
return $this->getDbTable()->insert($data);
@@ -120,6 +120,7 @@ class Application_Model_EventreportMapper
->setEventID($row->eventID)
->setResult($row->result)
->setErrors($row->errors)
+ ->setCreated($row->created)
->setType($row->type);
}
@@ -135,6 +136,7 @@ class Application_Model_EventreportMapper
->setEventID($row->eventID)
->setResult($row->result)
->setErrors($row->errors)
+ ->setCreated($row->created)
->setType($row->type);
$entries[$row->reportID] = $entry;
diff --git a/application/views/scripts/event/index.phtml b/application/views/scripts/event/index.phtml
index 4a22e64..21a9132 100755
--- a/application/views/scripts/event/index.phtml
+++ b/application/views/scripts/event/index.phtml
@@ -1,8 +1,4 @@
-<head>
-<title>Pool Control</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-</head>
-<h1>Pool Control</h1>
+<h1>Events</h1>
<div id='calendar'
style='margin: 3em 0; font-size: 13px'></div>
diff --git a/application/views/scripts/event/showreports.phtml b/application/views/scripts/event/showreports.phtml
new file mode 100755
index 0000000..7f5065a
--- /dev/null
+++ b/application/views/scripts/event/showreports.phtml
@@ -0,0 +1,49 @@
+<h1>Reports <?php echo $this->eventTitle; ?></h1>
+<div class='listelement'>
+<?php
+if(count($this->reportlist) > 0) {
+ foreach($this->reportlist as $k => $report) {
+?>
+ <div class='element'>
+ <div class='number'>
+ <div class='smallnumber'>Report</div>
+ <?php echo $k+1 ?>
+ </div>
+ <div class='content'>
+ <div class='actions'>
+ <a href="<?php echo $this->url(
+ array(
+ 'controller' => 'event',
+ 'action' => 'deletereport',
+ 'reportID' => $report->getID()
+ ),
+ 'default',
+ true) ?>"> <img src='/media/img/delete.png' alt='Delete Group' />
+ </a>
+ </div>
+ <div class='title'><?php echo $report->getResult();?></div>
+ <div class='subtitle'><?php echo $report->getType(); ?>&nbsp;</div>
+ <div class='details dispnone'>
+ <label>Finished:</label>
+ <div class='item'><?php echo date("m/d/Y H:i", $report->getCreated());?>&nbsp;</div>
+ <?php if($report->getErrors()) { ?>
+ <label>Errors:</label>
+ <div class='item'><?php echo $report->getErrors(); ?>&nbsp;</div>
+ <?php } ?>
+ </div>
+ </div>
+ <div class='clear'></div>
+ </div>
+<?php
+ }
+?>
+</div>
+<?php
+ echo $this->pagination;
+} else {
+ ?>
+<br />
+<br />
+<h3>No reports for this Event available.</h3>
+<?php
+} \ No newline at end of file