CODE STYLE, workflow/engine/controllers/

FILES:
caseSchedulerProxy.php
dashboard.php
home.php
installer.php
main.php
This commit is contained in:
jennylee
2012-10-18 11:32:36 -04:00
parent e456979aa3
commit 48793f82b5
5 changed files with 2639 additions and 2497 deletions

View File

@@ -1,322 +1,337 @@
<?php
/**
* Dashboard controller
* @inherits Controller
*
* @access public
*/
class Dashboard extends Controller {
class Dashboard extends Controller
{
// Class properties
private $pmDashlet;
// Class properties
private $pmDashlet;
// Class constructor
public function __construct() {
G::LoadClass('pmDashlet');
$this->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');
// Class constructor
public function __construct ()
{
G::LoadClass( 'pmDashlet' );
$this->pmDashlet = new PMDashlet();
}
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);
// Functions for the dashboards users module - Start
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']);
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
}
}
catch (Exception $error) {
throw $error;
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();
}
}
}
// 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');
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;
}
}
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;
}
// Functions for the dashboards users module - End
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;
// 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
}
}
catch (Exception $error) {
$_SESSION['__DASHBOARD_ERROR__'] = $error->getMessage();
G::header('Location: dashletsList');
die();
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 saveDashletInstance($data) {
$this->setResponseType('json');
$result = new stdclass();
$result->status = 'OK';
try {
$this->pmDashlet->saveDashletInstance(get_object_vars($data));
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();
}
}
catch (Exception $error) {
$result->status = 'ERROR';
$result->message = $error->getMessage();
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;
}
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);
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;
}
catch (Exception $error) {
$result->status = 'ERROR';
$result->message = $error->getMessage();
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;
}
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.');
}
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;
}
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';
private function getDashlets ()
{
try {
require_once 'classes/model/Dashlet.php';
$users = array();
$dashlets = 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']);
}
//SELECT
$criteria = new Criteria( 'workflow' );
$criteria->addSelectColumn( DashletPeer::DAS_UID );
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
//ORDER BY
$criteria->addAscendingOrderByColumn( DashletPeer::DAS_TITLE );
$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 = DashletPeer::doSelectRS( $criteria );
$dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$dataset->next();
}
while ($row = $dataset->getRow()) {
$dashlets[] = array ($row['DAS_UID'],$row['DAS_TITLE']
);
$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) {
throw $error;
}
return $dashlets;
}
catch (Exception $error) {
$result->status = 'ERROR';
$result->message = $error->getMessage();
}
return $result;
}
private function getDashlets() {
try {
require_once 'classes/model/Dashlet.php';
// Functions for the dasboards administration module - End
}
$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
}