diff --git a/workflow/engine/classes/model/AppEvent.php b/workflow/engine/classes/model/AppEvent.php index c282e6432..ac791e4b2 100755 --- a/workflow/engine/classes/model/AppEvent.php +++ b/workflow/engine/classes/model/AppEvent.php @@ -113,72 +113,80 @@ class AppEvent extends BaseAppEvent { } } - function getAppEventsCriteria($sProcessUid, $sStatus = '', $EVN_ACTION='') { - try { - require_once 'classes/model/Event.php'; - $oCriteria = new Criteria('workflow'); - $oCriteria->addSelectColumn(AppEventPeer::APP_UID); - $oCriteria->addSelectColumn(AppEventPeer::DEL_INDEX); - $oCriteria->addSelectColumn(AppEventPeer::EVN_UID); - $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ACTION_DATE); - $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ATTEMPTS); - $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_LAST_EXECUTION_DATE); - $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_STATUS); - $oCriteria->addSelectColumn(EventPeer::PRO_UID); - $oCriteria->addSelectColumn(EventPeer::EVN_WHEN_OCCURS); - $oCriteria->addSelectColumn(EventPeer::EVN_ACTION); - $oCriteria->addAsColumn('EVN_DESCRIPTION', 'C1.CON_VALUE'); - $oCriteria->addAsColumn('TAS_TITLE', 'C2.CON_VALUE'); - $oCriteria->addAsColumn('APP_TITLE', 'C3.CON_VALUE'); - $oCriteria->addAlias('C1', 'CONTENT'); - $oCriteria->addAlias('C2', 'CONTENT'); - $oCriteria->addAlias('C3', 'CONTENT'); - $oCriteria->addJoin(AppEventPeer::EVN_UID, EventPeer::EVN_UID, Criteria::LEFT_JOIN); - $del = DBAdapter::getStringDelimiter(); - $aConditions = array(); - $aConditions[] = array(EventPeer::EVN_UID, 'C1.CON_ID'); - $aConditions[] = array('C1.CON_CATEGORY', $del . 'EVN_DESCRIPTION' . $del); - $aConditions[] = array('C1.CON_LANG', $del . SYS_LANG . $del); - $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); - $aConditions = array(); - $aConditions[] = array(AppEventPeer::APP_UID, AppDelegationPeer::APP_UID); - $aConditions[] = array(AppEventPeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX); - $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); - $aConditions = array(); - $aConditions[] = array(AppDelegationPeer::TAS_UID, 'C2.CON_ID'); - $aConditions[] = array('C2.CON_CATEGORY', $del . 'TAS_TITLE' . $del); - $aConditions[] = array('C2.CON_LANG', $del . SYS_LANG . $del); - $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); - $aConditions = array(); - $aConditions[] = array(AppDelegationPeer::APP_UID, 'C3.CON_ID'); - $aConditions[] = array('C3.CON_CATEGORY', $del . 'APP_TITLE' . $del); - $aConditions[] = array('C3.CON_LANG', $del . SYS_LANG . $del); - $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); - $oCriteria->add(AppEventPeer::EVN_UID, '', Criteria::NOT_EQUAL); - $oCriteria->add(EventPeer::PRO_UID, $sProcessUid); - - if($EVN_ACTION != ''){ - $oCriteria->add(EventPeer::EVN_ACTION, $EVN_ACTION); - } - - switch ($sStatus) { - case '': - //Nothing - break; - case 'PENDING': - $oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'OPEN'); - break; - case 'COMPLETED': - $oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'CLOSE'); - break; - } - $oCriteria->addDescendingOrderByColumn(AppEventPeer::APP_EVN_ACTION_DATE); - return $oCriteria; + function getAppEventsCriteria($sProcessUid='', $sStatus = '', $EVN_ACTION='') { + try { + require_once 'classes/model/Event.php'; + $oCriteria = new Criteria('workflow'); + $oCriteria->addSelectColumn(AppEventPeer::APP_UID); + $oCriteria->addSelectColumn(AppEventPeer::DEL_INDEX); + $oCriteria->addSelectColumn(AppEventPeer::EVN_UID); + $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ACTION_DATE); + $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ATTEMPTS); + $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_LAST_EXECUTION_DATE); + $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_STATUS); + $oCriteria->addSelectColumn(EventPeer::PRO_UID); + $oCriteria->addSelectColumn(EventPeer::EVN_WHEN_OCCURS); + $oCriteria->addSelectColumn(EventPeer::EVN_ACTION); + $oCriteria->addAsColumn('EVN_DESCRIPTION', 'C1.CON_VALUE'); + $oCriteria->addAsColumn('TAS_TITLE', 'C2.CON_VALUE'); + $oCriteria->addAsColumn('APP_TITLE', 'C3.CON_VALUE'); + $oCriteria->addAsColumn('PRO_TITLE', 'C4.CON_VALUE'); + $oCriteria->addAlias('C1', 'CONTENT'); + $oCriteria->addAlias('C2', 'CONTENT'); + $oCriteria->addAlias('C3', 'CONTENT'); + $oCriteria->addAlias('C4', 'CONTENT'); + $oCriteria->addJoin(AppEventPeer::EVN_UID, EventPeer::EVN_UID, Criteria::LEFT_JOIN); + $del = DBAdapter::getStringDelimiter(); + $aConditions = array(); + $aConditions[] = array(EventPeer::EVN_UID, 'C1.CON_ID'); + $aConditions[] = array('C1.CON_CATEGORY', $del . 'EVN_DESCRIPTION' . $del); + $aConditions[] = array('C1.CON_LANG', $del . SYS_LANG . $del); + $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); + $aConditions = array(); + $aConditions[] = array(AppEventPeer::APP_UID, AppDelegationPeer::APP_UID); + $aConditions[] = array(AppEventPeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX); + $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); + $aConditions = array(); + $aConditions[] = array(AppDelegationPeer::TAS_UID, 'C2.CON_ID'); + $aConditions[] = array('C2.CON_CATEGORY', $del . 'TAS_TITLE' . $del); + $aConditions[] = array('C2.CON_LANG', $del . SYS_LANG . $del); + $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); + $aConditions = array(); + $aConditions[] = array(AppDelegationPeer::APP_UID, 'C3.CON_ID'); + $aConditions[] = array('C3.CON_CATEGORY', $del . 'APP_TITLE' . $del); + $aConditions[] = array('C3.CON_LANG', $del . SYS_LANG . $del); + $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); + $aConditions = array(); + $aConditions[] = array(AppDelegationPeer::PRO_UID, 'C4.CON_ID'); + $aConditions[] = array('C4.CON_CATEGORY', $del . 'PRO_TITLE' . $del); + $aConditions[] = array('C4.CON_LANG', $del . SYS_LANG . $del); + + $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); + $oCriteria->add(AppEventPeer::EVN_UID, '', Criteria::NOT_EQUAL); + if($sProcessUid != ''){ + $oCriteria->add(EventPeer::PRO_UID, $sProcessUid); + } + if($EVN_ACTION != ''){ + $oCriteria->add(EventPeer::EVN_ACTION, $EVN_ACTION); + } + switch ($sStatus) { + case '': + //Nothing + break; + case 'PENDING': + $oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'OPEN'); + break; + case 'COMPLETED': + $oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'CLOSE'); + break; + } + //$oCriteria->addDescendingOrderByColumn(AppEventPeer::APP_EVN_ACTION_DATE); + return $oCriteria; + } + catch (Exception $oError) { + throw($oError); + } } - catch (Exception $oError) { - throw($oError); - } - } function executeEvents($sNow, $debug=false, &$log=array()) { diff --git a/workflow/engine/menus/setup.php b/workflow/engine/menus/setup.php index 55228f116..adb669db4 100755 --- a/workflow/engine/menus/setup.php +++ b/workflow/engine/menus/setup.php @@ -58,7 +58,7 @@ if ($RBAC->userCanAccess('PM_SETUP') == 1) { $G_TMP_MENU->AddIdRawOption('PM_TABLES', '../pmTables', G::LoadTranslation('ID_ADDITIONAL_TABLES'), 'icon-tables.png','', 'settings'); $G_TMP_MENU->AddIdRawOption('WEBSERVICES', 'webServices', G::LoadTranslation('ID_WEB_SERVICES'), 'icon-webservices.png', '', 'settings'); - $G_TMP_MENU->AddIdRawOption('LOG_CASE_SCHEDULER', '../cases/cases_Scheduler_Log', G::LoadTranslation('ID_LOG_CASE_SCHEDULER'), "icon-logs-list.png",'', 'settings'); + //$G_TMP_MENU->AddIdRawOption('LOG_CASE_SCHEDULER', '../cases/cases_Scheduler_Log', G::LoadTranslation('ID_LOG_CASE_SCHEDULER'), "icon-logs-list.png",'', 'settings'); $G_TMP_MENU->AddIdRawOption('LOGIN', 'loginSettings', G::LoadTranslation('LOGIN'), "",'', 'settings'); $G_TMP_MENU->AddIdRawOption('DASHBOARD', '../dashboard/dashletsList', ucfirst(G::LoadTranslation('ID_DASHBOARD')), '', '', 'settings'); } @@ -82,4 +82,9 @@ if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1) { $G_TMP_MENU->AddIdRawOption('SYSTEM', '../admin/system', G::LoadTranslation('ID_SYSTEM'), '', '', 'settings'); } +if ($RBAC->userCanAccess('PM_SETUP') == 1) { + $G_TMP_MENU->AddIdRawOption('EVENT', '../events/eventList', G::LoadTranslation('ID_EVENTS'), '', '', 'logs'); + $G_TMP_MENU->AddIdRawOption('LOG_CASE_SCHEDULER', '../cases/cases_Scheduler_Log', G::LoadTranslation('ID_LOG_CASE_SCHEDULER'), "icon-logs-list.png",'', 'logs'); +} + diff --git a/workflow/engine/methods/events/eventList.php b/workflow/engine/methods/events/eventList.php new file mode 100644 index 000000000..f59820ca0 --- /dev/null +++ b/workflow/engine/methods/events/eventList.php @@ -0,0 +1,95 @@ +. + * + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * Coral Gables, FL, 33134, USA, or email info@colosa.com. + * + */ + +global $RBAC; +if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') != 1) { + G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); + G::header('location: ../login/login'); + die; +} + +G::LoadClass('configuration'); +$c = new Configurations(); +$configPage = $c->getConfiguration('eventList', 'pageSize','',$_SESSION['USER_LOGGED']); +$Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20; + +$G_MAIN_MENU = 'processmaker'; +$G_SUB_MENU = 'logs'; +$G_ID_MENU_SELECTED = 'logs'; +$G_ID_SUB_MENU_SELECTED = 'EVENT'; + +//get values for the comboBoxes +$userUid = ( isset($_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '' ) ? + $_SESSION['USER_LOGGED'] : null; +$status = array( + array('', G::LoadTranslation('ID_ALL')), + array("PENDING",G::LoadTranslation('ID_OPEN')), + array("COMPLETED",G::LoadTranslation('ID_CLOSE'))); +$type = array( + array('', G::LoadTranslation('ID_ALL')), + array('SEND_MESSAGE',G::LoadTranslation('ID_EVENT_MESSAGE')), + array('EXECUTE_TRIGGER',G::LoadTranslation('ID_EVENT_TIMER')), + array('EXECUTE_CONDITIONAL_TRIGGER',G::LoadTranslation('ID_EVENT_CONDITIONAL'))); +$processes = getProcessArray($userUid ); + +$G_PUBLISH = new Publisher; + +$oHeadPublisher =& headPublisher::getSingleton(); +$oHeadPublisher->addExtJsScript('events/eventList', false); //adding a javascript file .js +$oHeadPublisher->addContent('events/eventList'); //adding a html file .html. +//sending the columns to display in grid +$oHeadPublisher->assign( 'typeValues', $type ); +$oHeadPublisher->assign( 'statusValues', $status ); +$oHeadPublisher->assign( 'processValues', $processes); + +function getProcessArray ( $userUid ) { + global $oAppCache; + require_once ( "classes/model/AppCacheView.php" ); + + $processes = Array(); + $processes[] = array ( '', G::LoadTranslation('ID_ALL_PROCESS') ); + + $cProcess = new Criteria('workflow'); + $cProcess->clearSelectColumns(); + $cProcess->addSelectColumn(AppCacheViewPeer::PRO_UID); + $cProcess->addSelectColumn(AppCacheViewPeer::APP_PRO_TITLE); + $cProcess->setDistinct(AppCacheViewPeer::PRO_UID); + + $cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE); + + $oDataset = AppCacheViewPeer::doSelectRS($cProcess); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + + while($aRow = $oDataset->getRow()){ + $processes[] = array ( $aRow['PRO_UID'], $aRow['APP_PRO_TITLE'] ); + $oDataset->next(); + } + + return $processes; +} + +G::RenderPage('publish', 'extJs'); + diff --git a/workflow/engine/methods/events/eventsAjax.php b/workflow/engine/methods/events/eventsAjax.php index 639d731d8..852204690 100755 --- a/workflow/engine/methods/events/eventsAjax.php +++ b/workflow/engine/methods/events/eventsAjax.php @@ -1,74 +1,74 @@ ''"; - */ - $sDataBase = 'database_' . strtolower(DB_ADAPTER); - if(G::LoadSystemExist($sDataBase)){ - G::LoadSystem($sDataBase); - $oDataBase = new database(); - $sConcat = $oDataBase->concatString("USR_FIRSTNAME", "' '" , "USR_LASTNAME") ; - } - $sql = " SELECT USR_UID, USR_EMAIL, " . - $sConcat . - " AS USR_FULLNAME FROM USERS " . - " WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''"; + /* + $sql = "SELECT USR_UID, USR_EMAIL, CONCAT(USR_FIRSTNAME, ' ' , USR_LASTNAME) AS USR_FULLNAME FROM USERS WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''"; + */ + $sDataBase = 'database_' . strtolower(DB_ADAPTER); + if (G::LoadSystemExist($sDataBase)) { + G::LoadSystem($sDataBase); + $oDataBase = new database(); + $sConcat = $oDataBase->concatString("USR_FIRSTNAME", "' '" , "USR_LASTNAME") ; + } + $sql = " SELECT USR_UID, USR_EMAIL, " . + $sConcat . + " AS USR_FULLNAME FROM USERS " . + " WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''"; - $oCriteria = new Criteria('workflow'); - $del = DBAdapter::getStringDelimiter(); + $oCriteria = new Criteria('workflow'); + $del = DBAdapter::getStringDelimiter(); - $con = Propel::getConnection("workflow"); - $stmt = $con->prepareStatement($sql); - $rs = $stmt->executeQuery(); + $con = Propel::getConnection("workflow"); + $stmt = $con->prepareStatement($sql); + $rs = $stmt->executeQuery(); - $aRows[] = array('USR_UID'=>'char', 'USR_EMAIL'=>'char', 'USR_FULLNAME'=>'char'); - while($rs->next()){ - $aRows[] = array('USR_UID'=>$rs->getString('USR_UID'), 'USR_EMAIL'=>$rs->getString('USR_EMAIL'), 'USR_FULLNAME'=>$rs->getString('USR_FULLNAME')); - } - //echo '
'; print_r($aRows);
+ $aRows[] = array('USR_UID'=>'char', 'USR_EMAIL'=>'char', 'USR_FULLNAME'=>'char');
+ while($rs->next()){
+ $aRows[] = array('USR_UID'=>$rs->getString('USR_UID'), 'USR_EMAIL'=>$rs->getString('USR_EMAIL'), 'USR_FULLNAME'=>$rs->getString('USR_FULLNAME'));
+ }
+ //echo ''; print_r($aRows);
- global $_DBArray;
- $_DBArray['virtualtable'] = $aRows;
- $_SESSION['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('virtualtable');
+ global $_DBArray;
+ $_DBArray['virtualtable'] = $aRows;
+ $_SESSION['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('virtualtable');
- $G_PUBLISH = new Publisher();
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/usermailList', $oCriteria);
- G::RenderPage('publish', 'raw');
- break;
+ $G_PUBLISH = new Publisher();
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/usermailList', $oCriteria);
+ G::RenderPage('publish', 'raw');
+ break;
+ case 'showGroups':
+ G::LoadClass('groups');
+ $groups = new Groups();
+ $allGroups= $groups->getAllGroups();
- case 'showGroups':
+ $aRows[] = array('GRP_UID' => 'char', 'GROUP_TITLE' => 'char');
+ foreach ($allGroups as $group) {
+ $UID = htmlentities($group->getGrpUid());
+ $GROUP_TITLE = strip_tags($group->getGrpTitle());
+ $aRows[] = array('GRP_UID'=>$UID, 'GROUP_TITLE'=>$GROUP_TITLE);
+ }
- G::LoadClass('groups');
- $groups = new Groups();
- $allGroups= $groups->getAllGroups();
+ global $_DBArray;
+ $_DBArray['virtualtable'] = $aRows;
+ $_SESSION['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('virtualtable');
- $aRows[] = array('GRP_UID' => 'char', 'GROUP_TITLE' => 'char');
- foreach($allGroups as $group) {
- $UID = htmlentities($group->getGrpUid());
- $GROUP_TITLE = strip_tags($group->getGrpTitle());
- $aRows[] = array('GRP_UID'=>$UID, 'GROUP_TITLE'=>$GROUP_TITLE);
- }
-
- global $_DBArray;
- $_DBArray['virtualtable'] = $aRows;
- $_SESSION['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('virtualtable');
-
- $G_PUBLISH = new Publisher();
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/groupmailList', $oCriteria);
- G::RenderPage('publish', 'raw');
- break;
-
- case 'showDynavars':
+ $G_PUBLISH = new Publisher();
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/groupmailList', $oCriteria);
+ G::RenderPage('publish', 'raw');
+ break;
+ case 'showDynavars':
G::LoadClass('xmlfield_InputPM');
$dynaformFields = getDynaformsVars($_SESSION['PROCESS'], false, false);
$fields = array(array('id' => 'char', 'dynaform' => 'char', 'name' => 'char'));
@@ -78,15 +78,70 @@ switch($req){
'name' => '@#' . $dynaformField['sName'] . '', 'label' => $dynaformField['sLabel']);
}
- global $_DBArray;
- $_DBArray['virtualtable'] = $fields;
- $_SESSION['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('virtualtable');
+ global $_DBArray;
+ $_DBArray['virtualtable'] = $fields;
+ $_SESSION['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('virtualtable');
- $G_PUBLISH = new Publisher();
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/dynavarsList', $oCriteria);
- G::RenderPage('publish', 'raw');
- break;
+ $G_PUBLISH = new Publisher();
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/dynavarsList', $oCriteria);
+ G::RenderPage('publish', 'raw');
+ break;
+ case 'eventList':
+
+ $start = (isset($_REQUEST['start']))? $_REQUEST['start'] : '0';
+ $limit = (isset($_REQUEST['limit']))? $_REQUEST['limit'] : '25';
+ $proUid = (isset($_REQUEST['process']))? $_REQUEST['process'] : '';
+ $evenType = (isset($_REQUEST['type']))? $_REQUEST['type'] : '';
+ $evenStatus = (isset($_REQUEST['status']))? $_REQUEST['status'] : '';
+ $sort = isset($_REQUEST['sort']) ? $_REQUEST['sort'] : '';
+ $dir = isset($_REQUEST['dir']) ? $_REQUEST['dir'] : 'ASC';
+
+ require_once 'classes/model/AppEvent.php';
+ $oAppEvent = new AppEvent();
+ // Initialize response object
+ $response = new stdclass();
+ $response->status = 'OK';
+
+ $criteria = new Criteria();
+ $criteria = $oAppEvent->getAppEventsCriteria($proUid, $evenStatus, $evenType);
+ $result = AppEventPeer::doSelectRS($criteria);
+ $result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $data = Array();
+ while( $result->next() ) {
+ $data[] = $result->getRow();
+ }
+ $totalCount = count($data);
+
+ $criteria = new Criteria();
+ $criteria = $oAppEvent->getAppEventsCriteria($proUid, $evenStatus, $evenType);
+ if ($sort != '') {
+ if ($dir == 'ASC') {
+ $criteria->addAscendingOrderByColumn($sort);
+ }
+ else {
+ $criteria->addDescendingOrderByColumn($sort);
+ }
+ } else {
+ $oCriteria->addDescendingOrderByColumn(AppEventPeer::APP_EVN_ACTION_DATE);
+ }
+ if ($limit != '') {
+ $criteria->setLimit($limit);
+ $criteria->setOffset($start);
+ }
+ $result = AppEventPeer::doSelectRS($criteria);
+ $result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $data = Array();
+ $dataPro = array();
+ $index = 0;
+ while( $result->next() ) {
+ $data[] = $result->getRow();
+ }
+ $response = array();
+ $response['totalCount'] = $totalCount;
+ $response['data'] = $data;
+ die(G::json_encode($response));
+ break;
}
diff --git a/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css b/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css
index 177e8496c..82297b022 100755
--- a/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css
+++ b/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css
@@ -769,6 +769,12 @@ antes funcionaba.
background-position:0 -17011px !important;
}
+.ICON_EVENT{
+ /*ss_table_gear*/
+ background-image:url( /images/icons_silk/sprites.png) !important;
+ background-position:0 -15517px !important;
+}
+
.ICON_PROCESS_CATEGORY{
/*ss_sitemap_color*/
background-image:url( /images/icons_silk/sprites.png) !important;
diff --git a/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css b/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css
index 7c9008fdb..7d398f23c 100644
--- a/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css
+++ b/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css
@@ -793,6 +793,11 @@ antes funcionaba.
background-image:url( /images/icons_silk/sprites.png) !important;
background-position:0 -17011px !important;
}
+.ICON_EVENT{
+ /*ss_table_gear*/
+ background-image:url( /images/icons_silk/sprites.png) !important;
+ background-position:0 -15517px !important;
+}
.ICON_PROCESS_CATEGORY{
/*ss_sitemap_color*/
diff --git a/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css b/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css
index 8dfc9bf23..b8617724e 100644
--- a/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css
+++ b/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css
@@ -766,6 +766,12 @@ antes funcionaba.
background-position:0 -17011px !important;
}
+.ICON_EVENT{
+ /*ss_table_gear*/
+ background-image:url( /images/icons_silk/sprites.png) !important;
+ background-position:0 -15517px !important;
+}
+
.ICON_PROCESS_CATEGORY{
/*ss_sitemap_color*/
background-image:url( /images/icons_silk/sprites.png) !important;
diff --git a/workflow/engine/templates/events/eventList.html b/workflow/engine/templates/events/eventList.html
new file mode 100644
index 000000000..432f567b5
--- /dev/null
+++ b/workflow/engine/templates/events/eventList.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/workflow/engine/templates/events/eventList.js b/workflow/engine/templates/events/eventList.js
new file mode 100644
index 000000000..bac4cb99f
--- /dev/null
+++ b/workflow/engine/templates/events/eventList.js
@@ -0,0 +1,295 @@
+/*
+ * @author: Marco Antonio
+ * Agos 17st, 2012
+ */
+new Ext.KeyMap(document, [{
+ key: Ext.EventObject.F5,
+ fn: function(keycode, e) {
+ if (! e.ctrlKey) {
+ if (Ext.isIE) {
+ // IE6 doesn't allow cancellation of the F5 key, so trick it into
+ // thinking some other key was pressed (backspace in this case)
+ e.browserEvent.keyCode = 8;
+ }
+ e.stopEvent();
+ document.location = document.location;
+ } else {
+ Ext.Msg.alert('Refresh', 'You clicked: CTRL-F5');
+ }
+ }
+}
+]);
+
+var store;
+var cmodel;
+var eventsGrid;
+var actions;
+var filterStatus = '';
+
+Ext.onReady(function(){
+ Ext.QuickTips.init();
+ var resultTpl = new Ext.XTemplate(
+ '',
+ ' {APP_PRO_TITLE}',
+ ' '
+ );
+
+ var columnRenderer = function(data, metadata, record, rowIndex,columnIndex, store) {
+ var new_text = metadata.style.split(';');
+ var style = '';
+ if ( !record.data['APP_EVN_LAST_EXECUTION_DATE'] ){
+ record.data['APP_EVN_LAST_EXECUTION_DATE'] = ' - ';
+ }
+ switch (record.data['EVN_ACTION']) {
+ case 'EXECUTE_TRIGGER': record.data['EVN_ACTION'] = _('ID_EVENT_TIMER');
+ break
+ case 'EXECUTE_CONDITIONAL_TRIGGER': record.data['EVN_ACTION'] = _('ID_EVENT_CONDITIONAL');
+ break
+ case 'SEND_MESSAGE': record.data['EVN_ACTION'] = _('ID_EVENT_MESSAGE');
+ break
+ }
+ for (var i = 0; i < new_text.length -1 ; i++) {
+ var chain = new_text[i] +";";
+ if (chain.indexOf('width') == -1) {
+ style = style + chain;
+ }
+ }
+ metadata.attr = 'ext:qtip="' + data + '" style="'+ style +' white-space: normal; "';
+ return data;
+ };
+
+ // ComboBox Status
+ var comboStatus = new Ext.form.ComboBox({
+ width : 90,
+ boxMaxWidth : 90,
+ editable : false,
+ mode : 'local',
+ emptyText: _('ID_SELECT_STATUS'),
+ store : new Ext.data.ArrayStore({
+ fields: ['id', 'value'],
+ data : statusValues
+ }),
+ valueField : 'id',
+ displayField : 'value',
+ triggerAction : 'all',
+ listeners:{
+ scope: this,
+ 'select': function() {
+ filterStatus = comboStatus.value;
+ store.setBaseParam( 'status', filterStatus);
+ store.setBaseParam( 'start', 0);
+ store.setBaseParam( 'limit', 25);
+ store.load();
+ }
+ },
+ iconCls: 'no-icon'
+ });
+
+ // ComboBox Type
+ var comboType = new Ext.form.ComboBox({
+ width : 150,
+ boxMaxWidth : 150,
+ editable : false,
+ mode : 'local',
+ emptyText: _('ID_EMPTY_TYPE'),
+ store : new Ext.data.ArrayStore({
+ fields: ['id', 'value'],
+ data : typeValues
+ }),
+ valueField : 'id',
+ displayField : 'value',
+ triggerAction : 'all',
+ listeners:{
+ scope: this,
+ 'select': function() {
+ filterType = comboType.value;
+ store.setBaseParam( 'type', filterType);
+ store.setBaseParam( 'start', 0);
+ store.setBaseParam( 'limit', 25);
+ store.load();
+ }
+ },
+ iconCls: 'no-icon'
+ });
+
+ var comboProcess = new Ext.form.ComboBox({
+ width : 200,
+ boxMaxWidth : 200,
+ editable : true,
+ displayField : 'APP_PRO_TITLE',
+ valueField : 'PRO_UID',
+ forceSelection: false,
+ emptyText: _('ID_EMPTY_PROCESSES'),
+ selectOnFocus: true,
+ tpl: resultTpl,
+
+ typeAhead: true,
+ mode: 'local',
+ autocomplete: true,
+ triggerAction: 'all',
+
+ store : new Ext.data.ArrayStore({
+ fields : ['PRO_UID','APP_PRO_TITLE'],
+ data : processValues
+ }),
+ listeners:{
+ scope: this,
+ 'select': function() {
+ filterProcess = comboProcess.value;
+
+ store.setBaseParam('process', filterProcess);
+ store.setBaseParam( 'start', 0);
+ store.setBaseParam( 'limit', 25);
+ store.load();
+ }},
+ iconCls: 'no-icon'
+ });
+
+ actions = _addPluginActions([ {xtype: 'tbfill'}, _('ID_PROCESS'), comboProcess, '-', _('ID_TYPE'), comboType, '-', _('ID_STATUS'), comboStatus]);
+
+ var stepsFields = Ext.data.Record.create([
+ {name : 'APP_EVN_ACTION_DATE', type: 'string'},
+ {name : 'APP_EVN_ATTEMPTS', type: 'string'},
+ {name : 'APP_EVN_LAST_EXECUTION_DATE', type: 'string'},
+ {name : 'APP_EVN_STATUS', type: 'string'},
+ {name : 'PRO_TITLE', type: 'string'},
+ {name : 'EVN_ACTION', type: 'string'},
+ {name : 'EVN_DESCRIPTION', type: 'string'},
+ {name : 'TAS_TITLE', type: 'string'},
+ {name : 'APP_TITLE', type: 'string'}
+ ]);
+
+ store = new Ext.data.Store( {
+ proxy : new Ext.data.HttpProxy({
+ url: 'eventsAjax?request=eventList'
+ }),
+ remoteSort : true,
+ sortInfo : stepsFields,
+ reader : new Ext.data.JsonReader( {
+ root: 'data',
+ totalProperty: 'totalCount',
+ fields : [
+ {name : 'APP_UID'},
+ {name : 'DEL_INDEX'},
+ {name : 'EVN_UID'},
+ {name : 'APP_EVN_ACTION_DATE'},
+ {name : 'APP_EVN_ATTEMPTS'},
+ {name : 'APP_EVN_LAST_EXECUTION_DATE'},
+ {name : 'APP_EVN_STATUS'},
+ {name : 'PRO_UID'},
+ {name : 'PRO_TITLE'},
+ {name : 'EVN_WHEN_OCCURS'},
+ {name : 'EVN_ACTION'},
+ {name : 'EVN_DESCRIPTION'},
+ {name : 'TAS_TITLE'},
+ {name : 'APP_TITLE'}
+ ]
+ })
+ });
+ store.setDefaultSort('APP_EVN_ACTION_DATE', 'desc');
+
+ cmodel = new Ext.grid.ColumnModel({
+ defaults: {
+ width: 50
+ },
+ columns: [
+ {id:'APP_UID', dataIndex: 'APP_UID', hidden:true, hideable:false},
+ {header: 'PRO_UID', dataIndex: 'PRO_UID', hidden:true, hideable:false},
+ {header: 'EVN_UID', dataIndex: 'EVN_UID', hidden:true, hideable:false},
+ {header: _('ID_PROCESS'), dataIndex: 'PRO_TITLE', width: 150, hidden: false,renderer: columnRenderer, sortable: true},
+ {header: _('ID_TASKS'), dataIndex: 'TAS_TITLE', width: 150, hidden: false,renderer: columnRenderer, sortable: true},
+ {header: _('ID_CASE_TITLE'), dataIndex: 'APP_TITLE', width: 150, hidden: false,renderer: columnRenderer, sortable: true},
+ {header: _('ID_EVENT_ACTION_DATE'), dataIndex: 'APP_EVN_ACTION_DATE', width: 90, hidden: false,renderer: columnRenderer, sortable: true},
+ {header: _('ID_EVENT_LAST_EXECUTION_DATE'), dataIndex: 'APP_EVN_LAST_EXECUTION_DATE', width: 90, hidden: false ,renderer: columnRenderer, sortable: true},
+ {header: _('ID_EVENT_DESCRIPTION'), dataIndex: 'EVN_DESCRIPTION', width: 150, hidden: false,renderer: columnRenderer},
+ {header: _('ID_EVENT_ACTION'), dataIndex: 'EVN_ACTION', width: 100, hidden: false,renderer: columnRenderer},
+
+ {header: _('ID_DEL_INDEX'), dataIndex: 'DEL_INDEX', width: 40,hidden:true,hideable:false, renderer: columnRenderer},
+ {header: _('APP_EVN_ATTEMPTS'), dataIndex: 'APP_EVN_ATTEMPTS', width: 50, hidden: true,hideable:false,renderer: columnRenderer},
+ {header: _('ID_STATUS'), dataIndex: 'APP_EVN_STATUS', width: 40, hidden: false,renderer: columnRenderer}
+ ]
+ });
+
+ bbarpaging = new Ext.PagingToolbar({
+ pageSize : 25,
+ store : store,
+ displayInfo : true,
+ displayMsg : _('ID_GRID_PAGE_DISPLAYING_EVENT_MESSAGE') + ' ',
+ emptyMsg : _('ID_GRID_PAGE_NO_EVENT_MESSAGE')
+ });
+
+ eventsGrid = new Ext.grid.GridPanel({
+ region: 'center',
+ layout: 'fit',
+ id: 'eventsGrid',
+ height:100,
+ autoWidth : true,
+ stateful : true,
+ stateId : 'grid',
+ enableColumnResize: true,
+ enableHdMenu: true,
+ frame:false,
+ columnLines: false,
+ viewConfig: {
+ forceFit:true
+ },
+ title : _('ID_EVENTS'),
+ store: store,
+ cm: cmodel,
+ tbar: actions,
+ bbar: bbarpaging,
+ listeners: {
+ render: function(){
+ this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING_GRID')});
+ }
+ }
+ });
+
+ eventsGrid.store.load();
+
+ viewport = new Ext.Viewport({
+ layout: 'fit',
+ autoScroll: false,
+ items: [
+ eventsGrid
+ ]
+ });
+ });
+
+var _addPluginActions = function(defaultactions) {
+ try {
+ if (Ext.isArray(_pluginactions)) {
+ if (_pluginactions.length > 0) {
+ var positionToInsert = _tbfillPosition(defaultactions);
+ var leftactions = defaultactions.slice(0, positionToInsert);
+ var rightactions = defaultactions.slice(positionToInsert, defaultactions.length - 1);
+ return leftactions.concat(_pluginactions.concat(rightactions));
+ }
+ else {
+ return defaultactions;
+ }
+ }
+ else {
+ return defaultactions;
+ }
+ }
+ catch (error) {
+ return defaultactions;
+ }
+};
+
+var _tbfillPosition = function(actions) {
+ try {
+ for (var i = 0; i < actions.length; i++) {
+ if (Ext.isObject(actions[i])) {
+ if (actions[i].xtype == 'tbfill') {
+ return i;
+ }
+ }
+ }
+ return i;
+ }
+ catch (error) {
+ return 0;
+ }
+};
\ No newline at end of file
diff --git a/workflow/engine/xmlform/events/eventsOptions.xml b/workflow/engine/xmlform/events/eventsOptions.xml
index 632ed18df..1febf63d5 100755
--- a/workflow/engine/xmlform/events/eventsOptions.xml
+++ b/workflow/engine/xmlform/events/eventsOptions.xml
@@ -5,23 +5,11 @@
New
-
- Pending
-
-
-
- Completed
-
-
-
-
-
-
@@ -47,14 +35,6 @@ var eventsNew = function() {
popupWindow('@G::LoadTranslation(ID_NEW_EVENT)', '@G::encryptlink(@#eventsNew)?PRO_UID=@%PRO_UID&EVN_TYPE=@%EVN_TYPE' , 540, 500);
};
-var eventsPending = function() {
- popupWindow('@G::LoadTranslation(ID_PENDING)', '@G::encryptlink(@#eventsPending)?PRO_UID=@%PRO_UID&EVN_TYPE=@%EVN_TYPE' , 800, 400);
-};
-
-var eventsCompleted = function() {
- popupWindow('@G::LoadTranslation(ID_COMPLETED)', '@G::encryptlink(@#eventsCompleted)?PRO_UID=@%PRO_UID&EVN_TYPE=@%EVN_TYPE' , 800, 400);
-};
-
var eventsEdit = function(sUID) {
popupWindow('@G::LoadTranslation(ID_EDIT_EVENT)', '@G::encryptlink(@#eventsEdit)?EVN_UID=' + sUID , 540, 500);
};