pmDashlet = new PMDashlet(); } // Functions for the dashboards users module - Start public function index ($httpData) { try { $this->setJSVar( 'dashletsInstances', $this->getDashletsInstancesForCurrentUser() ); $this->includeExtJS( 'dashboard/index' ); $this->includeExtJSLib( 'ux/portal' ); G::RenderPage( 'publish', 'extJs' ); } catch (Exception $error) { //ToDo: Display a error message } } public function renderDashletInstance ($data) { try { if (! isset( $data->DAS_INS_UID )) { $data->DAS_INS_UID = ''; } if ($data->DAS_INS_UID == '') { throw new Exception( 'Parameter "DAS_INS_UID" is empty.' ); } $this->pmDashlet->setup( $data->DAS_INS_UID ); if (! isset( $_REQUEST['w'] )) { $width = 300; } else { $width = $_REQUEST['w']; } $this->pmDashlet->render( $width ); } catch (Exception $error) { //ToDo: Show the error message echo $error->getMessage(); } } private function getDashletsInstancesForCurrentUser () { try { if (! isset( $_SESSION['USER_LOGGED'] )) { throw new Exception( 'The session has expired.' ); } return $this->pmDashlet->getDashletsInstancesForUser( $_SESSION['USER_LOGGED'] ); } catch (Exception $error) { throw $error; } } // Functions for the dashboards users module - End // Functions for the dasboards administration module - Start public function dashletsList () { try { $this->includeExtJS( 'dashboard/dashletsList' ); if (isset( $_SESSION['__DASHBOARD_ERROR__'] )) { $this->setJSVar( '__DASHBOARD_ERROR__', $_SESSION['__DASHBOARD_ERROR__'] ); unset( $_SESSION['__DASHBOARD_ERROR__'] ); } $this->setView( 'dashboard/dashletsList' ); G::RenderPage( 'publish', 'extJs' ); } catch (Exception $error) { //ToDo: Display a error message } } public function getDashletsInstances ($data) { $this->setResponseType( 'json' ); $result = new stdclass(); $result->status = 'OK'; try { if (! isset( $data->start )) { $data->start = null; } if (! isset( $data->limit )) { $data->limit = null; } $result->dashletsInstances = $this->pmDashlet->getDashletsInstances( $data->start, $data->limit ); $result->totalDashletsInstances = $this->pmDashlet->getDashletsInstancesQuantity(); } catch (Exception $error) { $result->status = 'ERROR'; $result->message = $error->getMessage(); } return $result; } public function dashletInstanceForm ($data) { try { $this->includeExtJS( 'dashboard/dashletInstanceForm', false ); $this->setView( 'dashboard/dashletInstanceForm' ); if (! isset( $data->DAS_INS_UID )) { $data->DAS_INS_UID = ''; } $dashlets = $this->getDashlets(); $this->setJSVar( 'storeDasUID', $dashlets ); if ($data->DAS_INS_UID != '') { $this->pmDashlet->setup( $data->DAS_INS_UID ); $this->setJSVar( 'dashletInstance', $this->pmDashlet->getDashletInstance() ); $this->setJSVar( 'additionalFields', PMDashlet::getAdditionalFields( get_class( $this->pmDashlet->getDashletObject() ) ) ); } else { $dashletInstance = new stdclass(); $dashletInstance->DAS_UID = $dashlets[0][0]; $dashlet = new Dashlet(); $dashletFields = $dashlet->load( $dashletInstance->DAS_UID ); $this->setJSVar( 'dashletInstance', $dashletInstance ); $this->setJSVar( 'additionalFields', PMDashlet::getAdditionalFields( $dashletFields['DAS_CLASS'] ) ); } G::RenderPage( 'publish', 'extJs' ); return null; } catch (Exception $error) { $_SESSION['__DASHBOARD_ERROR__'] = $error->getMessage(); G::header( 'Location: dashletsList' ); die(); } } public function saveDashletInstance ($data) { $this->setResponseType( 'json' ); $result = new stdclass(); $result->status = 'OK'; try { $this->pmDashlet->saveDashletInstance( get_object_vars( $data ) ); } catch (Exception $error) { $result->status = 'ERROR'; $result->message = $error->getMessage(); } return $result; } public function deleteDashletInstance ($data) { $this->setResponseType( 'json' ); $result = new stdclass(); $result->status = 'OK'; try { if (! isset( $data->DAS_INS_UID )) { $data->DAS_INS_UID = ''; } if ($data->DAS_INS_UID == '') { throw new Exception( 'Parameter "DAS_INS_UID" is empty.' ); } $this->pmDashlet->deleteDashletInstance( $data->DAS_INS_UID ); } catch (Exception $error) { $result->status = 'ERROR'; $result->message = $error->getMessage(); } return $result; } public function getAdditionalFields ($data) { $this->setResponseType( 'json' ); $result = new stdclass(); $result->status = 'OK'; try { $dashlet = new Dashlet(); $dashletFields = $dashlet->load( $data->DAS_UID ); if (! is_null( $dashletFields )) { $result->additionalFields = PMDashlet::getAdditionalFields( $dashletFields['DAS_CLASS'] ); } else { throw new Exception( 'Dashlet "' . $data->DAS_UID . '" does not exist.' ); } } catch (Exception $error) { $result->status = 'ERROR'; $result->message = $error->getMessage(); } return $result; } public function getOwnersByType ($data) { $this->setResponseType( 'json' ); $result = new stdclass(); $result->status = 'OK'; try { switch ($data->type) { case 'EVERYBODY': $result->total = 0; $result->owners = array (); break; case 'USER': require_once 'classes/model/Users.php'; $users = array (); $usersInstance = new Users(); $allUsers = $usersInstance->getAll(); foreach ($allUsers->data as $user) { $users[] = array ('OWNER_UID' => $user['USR_UID'],'OWNER_NAME' => $user['USR_FIRSTNAME'] . ' ' . $user['USR_LASTNAME'] ); } $result->total = $allUsers->totalCount; $result->owners = $users; break; case 'DEPARTMENT': require_once 'classes/model/Department.php'; require_once 'classes/model/Content.php'; $departments = array (); //SELECT $criteria = new Criteria( 'workflow' ); $criteria->setDistinct(); $criteria->addSelectColumn( DepartmentPeer::DEP_UID ); $criteria->addSelectColumn( ContentPeer::CON_VALUE ); //FROM $conditions = array (); $conditions[] = array (DepartmentPeer::DEP_UID,ContentPeer::CON_ID ); $conditions[] = array (ContentPeer::CON_CATEGORY,DBAdapter::getStringDelimiter() . 'DEPO_TITLE' . DBAdapter::getStringDelimiter() ); $conditions[] = array (ContentPeer::CON_LANG,DBAdapter::getStringDelimiter() . 'en' . DBAdapter::getStringDelimiter() ); $criteria->addJoinMC( $conditions, Criteria::LEFT_JOIN ); //WHERE $criteria->add( DepartmentPeer::DEP_STATUS, 'ACTIVE' ); //ORDER BY $criteria->addAscendingOrderByColumn( ContentPeer::CON_VALUE ); $dataset = DepartmentPeer::doSelectRS( $criteria ); $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $dataset->next(); while ($row = $dataset->getRow()) { $departments[] = array ('OWNER_UID' => $row['DEP_UID'],'OWNER_NAME' => $row['CON_VALUE'] ); $dataset->next(); } $result->total = DepartmentPeer::doCount( $criteria ); $result->owners = $departments; break; case 'GROUP': require_once 'classes/model/Groupwf.php'; require_once 'classes/model/Content.php'; $groups = array (); //SELECT $criteria = new Criteria( 'workflow' ); $criteria->setDistinct(); $criteria->addSelectColumn( GroupwfPeer::GRP_UID ); $criteria->addSelectColumn( ContentPeer::CON_VALUE ); //FROM $conditions = array (); $conditions[] = array (GroupwfPeer::GRP_UID,ContentPeer::CON_ID ); $conditions[] = array (ContentPeer::CON_CATEGORY,DBAdapter::getStringDelimiter() . 'GRP_TITLE' . DBAdapter::getStringDelimiter() ); $conditions[] = array (ContentPeer::CON_LANG,DBAdapter::getStringDelimiter() . 'en' . DBAdapter::getStringDelimiter() ); $criteria->addJoinMC( $conditions, Criteria::LEFT_JOIN ); //WHERE $criteria->add( GroupwfPeer::GRP_STATUS, 'ACTIVE' ); //ORDER BY $criteria->addAscendingOrderByColumn( ContentPeer::CON_VALUE ); $dataset = GroupwfPeer::doSelectRS( $criteria ); $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $dataset->next(); while ($row = $dataset->getRow()) { $groups[] = array ('OWNER_UID' => $row['GRP_UID'],'OWNER_NAME' => $row['CON_VALUE'] ); $dataset->next(); } $result->total = GroupwfPeer::doCount( $criteria ); $result->owners = $groups; break; } } catch (Exception $error) { $result->status = 'ERROR'; $result->message = $error->getMessage(); } return $result; } private function getDashlets () { try { require_once 'classes/model/Dashlet.php'; $dashlets = array (); //SELECT $criteria = new Criteria( 'workflow' ); $criteria->addSelectColumn( DashletPeer::DAS_UID ); $criteria->addSelectColumn( DashletPeer::DAS_TITLE ); //ORDER BY $criteria->addAscendingOrderByColumn( DashletPeer::DAS_TITLE ); $dataset = DashletPeer::doSelectRS( $criteria ); $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $dataset->next(); while ($row = $dataset->getRow()) { $dashlets[] = array ($row['DAS_UID'],$row['DAS_TITLE'] ); $dataset->next(); } } catch (Exception $error) { throw $error; } return $dashlets; } // Functions for the dasboards administration module - End }