From 776bd1ce8d53a513390686bbaea0a49d945e4823 Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Mon, 31 Oct 2011 18:06:01 -0400 Subject: [PATCH] Progress 10 for the dashboards --- workflow/engine/classes/class.pmDashlet.php | 42 ++++++++++++++++++--- workflow/engine/controllers/dashboard.php | 4 +- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/workflow/engine/classes/class.pmDashlet.php b/workflow/engine/classes/class.pmDashlet.php index 532049a7b..db0b725fe 100644 --- a/workflow/engine/classes/class.pmDashlet.php +++ b/workflow/engine/classes/class.pmDashlet.php @@ -37,9 +37,26 @@ class PMDashlet extends DashletInstance implements DashletInterface { // Own functions - public function getDashletsInstances() { + public function getDashletsInstances($start = null, $limit = null) { try { - // + $dashletsInstances = array(); + $criteria = new Criteria('workflow'); + $criteria->addSelectColumn('*'); + $criteria->addJoin(DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::LEFT_JOIN); + if (!is_null($start)) { + $criteria->setOffset($start); + } + if (!is_null($limit)) { + $criteria->setLimit($limit); + } + $dataset = DashletInstancePeer::doSelectRS($criteria); + $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $dataset->next(); + while ($row = $dataset->getRow()) { + $dashletsInstances[] = $row; + $dataset->next(); + } + return $dashletsInstances; } catch (Exception $error) { throw $error; @@ -48,7 +65,10 @@ class PMDashlet extends DashletInstance implements DashletInterface { public function getDashletsInstancesQuantity() { try { - // + $criteria = new Criteria('workflow'); + $criteria->addSelectColumn('*'); + $criteria->addJoin(DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::LEFT_JOIN); + return DashletInstancePeer::doCount($criteria); } catch (Exception $error) { throw $error; @@ -58,9 +78,6 @@ class PMDashlet extends DashletInstance implements DashletInterface { public function getDashletInstance($dasInsUid) { try { $dashletInstance = $this->load($dasInsUid); - if (!isset($dashletInstance['DAS_UID'])) { - new Exception('Error load the Dashlet Instance "' . $dasInsUid . '".'); - } $dashlet = new Dashlet(); $dashletFields = $dashlet->load($dashletInstance['DAS_UID']); return array_merge($dashletFields, $dashletInstance); @@ -90,7 +107,20 @@ class PMDashlet extends DashletInstance implements DashletInterface { public function getDashletsInstancesForUser($userUid) { try { + // Include required classes // + // Check for "public" dashlets + // ToDo: Next release + // Check for the direct assignments + // ToDo: Next release + // Check for department assigments + // + // Check for group assignments + // ToDo: Next release + // Check for role assigments + // ToDo: Next release + // Check for permission assigments + // ToDo: Next release } catch (Exception $error) { throw $error; diff --git a/workflow/engine/controllers/dashboard.php b/workflow/engine/controllers/dashboard.php index 622f01ec4..97305d95e 100644 --- a/workflow/engine/controllers/dashboard.php +++ b/workflow/engine/controllers/dashboard.php @@ -80,12 +80,12 @@ class Dashboard extends Controller { } } - public function getDashletsInstances() { + public function getDashletsInstances($data) { $this->setResponseType('json'); $result = new stdclass(); $result->status = 'OK'; try { - $result->dashletsInstances = $this->pmDashlet->getDashletsInstances($start, $limit); + $result->dashletsInstances = $this->pmDashlet->getDashletsInstances($data->start, $data->limit); $result->totalDashletsInstances = $this->pmDashlet->getDashletsInstancesQuantity(); } catch (Exception $error) {