From 48674fdcb55c9cbda1d21b6609a45113219aedd3 Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Thu, 6 Oct 2011 19:48:46 +0200 Subject: successfulPlot implemented --- application/controllers/StatisticController.php | 49 +++++++-- application/layouts/default.phtml | 1 + application/models/EventreportMapper.php | 50 ++++++++- application/views/scripts/statistic/success.phtml | 119 ++++++++++++++++++++++ 4 files changed, 207 insertions(+), 12 deletions(-) create mode 100644 application/views/scripts/statistic/success.phtml (limited to 'application') diff --git a/application/controllers/StatisticController.php b/application/controllers/StatisticController.php index da1e56e..3f42944 100755 --- a/application/controllers/StatisticController.php +++ b/application/controllers/StatisticController.php @@ -6,12 +6,14 @@ class StatisticController extends Zend_Controller_Action protected $pbs2host; protected $eventMapper; protected $eventcategoryMapper; + protected $eventreportMapper; public function init() { $this->eventMapper = new Application_Model_EventMapper(); $this->eventcategoryMapper = new Application_Model_EventcategoryMapper(); + $this->eventreportMapper = new Application_Model_EventreportMapper(); if (Zend_Auth::getInstance()->hasIdentity()) { $this->userIDsNamespace = Zend_Session::namespaceGet('userIDs'); @@ -48,14 +50,14 @@ class StatisticController extends Zend_Controller_Action if($this->acl->checkRight('eoo')) { $eventList = $this->eventMapper->fetchAll(); - } else { + } else { $eventList = $this->eventMapper->findBy(array("pbs_membershipID", $this->userIDsNamespace['membershipID'])); - } + } $ret['dataBar'] = $this->eventMapper->getCategoryBarCount($poolID); $ret['dataPie'] = $this->eventMapper->getCategoryPieCount($poolID); $ret['color'] = $this->eventcategoryMapper->getCategoryColor($poolID); - + echo json_encode($ret); } @@ -70,23 +72,48 @@ class StatisticController extends Zend_Controller_Action if($this->acl->checkRight('eoo')) { $eventList = $this->eventMapper->fetchAll(); - } else { + } else { $eventList = $this->eventMapper->findBy(array("pbs_membershipID", $this->userIDsNamespace['membershipID'])); - } + } $ret['dataBar'] = $this->eventMapper->getRunningBarCount($poolID); $ret['dataPie'] = $this->eventMapper->getRunningPieCount($poolID); echo json_encode($ret); - + + } + + public function successlistAction() { + + $this->_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + $poolID = $this->getRequest()->getParam('poolID'); + $userIDsSession = new Zend_Session_Namespace('userIDs'); + $userIDsSession->poolID = $poolID; + + if($this->acl->checkRight('eoo')) { + $eventList = $this->eventMapper->fetchAll(); + } else { + $eventList = $this->eventMapper->findBy(array("pbs_membershipID", $this->userIDsNamespace['membershipID'])); + } + + $ret['dataBar'] = $this->eventreportMapper->getSuccessBarCount($poolID); + $ret['dataPie'] = $this->eventreportMapper->getSuccessPieCount($poolID); + + echo json_encode($ret); + } - + public function categoryAction() { - + } - + public function runningAction() { - + + } + + public function successAction() { + } - + } \ No newline at end of file diff --git a/application/layouts/default.phtml b/application/layouts/default.phtml index 85ba46a..53eeedb 100755 --- a/application/layouts/default.phtml +++ b/application/layouts/default.phtml @@ -56,6 +56,7 @@ echo $this->headScript()."\n"; diff --git a/application/models/EventreportMapper.php b/application/models/EventreportMapper.php index a78ee73..309dd18 100755 --- a/application/models/EventreportMapper.php +++ b/application/models/EventreportMapper.php @@ -114,7 +114,7 @@ class Application_Model_EventreportMapper if($eventreport == null){ $return = true; - + } if($return) { @@ -164,7 +164,55 @@ class Application_Model_EventreportMapper return array_diff($vv1,$vv2); } + public function getSuccessBarCount($poolID) { + + $db = Zend_Db_Table::getDefaultAdapter(); + $select = $this->getDbTable()->select() + ->setIntegrityCheck(false) + ->from(array('pcr' => 'poolctrl_eventreport'), + array('count1' => 'SUM(IF(pcr.result="successful",1,0))', 'count0' => 'SUM(IF(pcr.result="failed",1,0))') + ) + ->join(array('pce' => 'poolctrl_event'), + 'pce.eventID = pcr.eventID', + array()) + ->where('pce.pbs_poolID = ?', $poolID); + + $stmt = $db->query($select); + $result = $stmt->fetchAll(PDO::FETCH_NUM); + + foreach ($result as $r) { + $ret1 = array((int)$r[0],'Successful'); + $ret2 = array((int)$r[1],'Failed'); + $return[] = array($ret1,$ret2); + } + + return $return; + } + public function getSuccessPieCount($poolID) { + + $db = Zend_Db_Table::getDefaultAdapter(); + $select = $this->getDbTable()->select() + ->setIntegrityCheck(false) + ->from(array('pcr' => 'poolctrl_eventreport'), + array('count1' => 'SUM(IF(pcr.result="successful",1,0))', 'count0' => 'SUM(IF(pcr.result="failed",1,0))') + ) + ->join(array('pce' => 'poolctrl_event'), + 'pce.eventID = pcr.eventID', + array()) + ->where('pce.pbs_poolID = ?', $poolID); + + $stmt = $db->query($select); + $result = $stmt->fetchAll(PDO::FETCH_NUM); + + foreach ($result as $r) { + $ret1 = array('Successful', (int)$r[0]); + $ret2 = array('Failed', (int)$r[1]); + $return[] = array($ret1,$ret2); + } + + return $return; + } } diff --git a/application/views/scripts/statistic/success.phtml b/application/views/scripts/statistic/success.phtml new file mode 100644 index 0000000..8702291 --- /dev/null +++ b/application/views/scripts/statistic/success.phtml @@ -0,0 +1,119 @@ +

Statistic - Success

+ + + + + + + +
+
+
+
+ + + \ No newline at end of file -- cgit v1.2.3-55-g7522