BUG 9555 Event log inside Process Designer SOLVED

- According to the specifications.
- Was removed the option completed y Pending of Processmap - Events
- Was add the Tab Logs en Admin.
- Was add the the list of events.
- Was changed the list Case Scheduler a logs.
This commit is contained in:
Marco Antonio Nina
2012-08-17 18:55:03 -04:00
parent 5dc4e6bb28
commit 24d1879db0
10 changed files with 613 additions and 155 deletions

View File

@@ -113,72 +113,80 @@ class AppEvent extends BaseAppEvent {
} }
} }
function getAppEventsCriteria($sProcessUid, $sStatus = '', $EVN_ACTION='') { function getAppEventsCriteria($sProcessUid='', $sStatus = '', $EVN_ACTION='') {
try { try {
require_once 'classes/model/Event.php'; require_once 'classes/model/Event.php';
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(AppEventPeer::APP_UID); $oCriteria->addSelectColumn(AppEventPeer::APP_UID);
$oCriteria->addSelectColumn(AppEventPeer::DEL_INDEX); $oCriteria->addSelectColumn(AppEventPeer::DEL_INDEX);
$oCriteria->addSelectColumn(AppEventPeer::EVN_UID); $oCriteria->addSelectColumn(AppEventPeer::EVN_UID);
$oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ACTION_DATE); $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ACTION_DATE);
$oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ATTEMPTS); $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ATTEMPTS);
$oCriteria->addSelectColumn(AppEventPeer::APP_EVN_LAST_EXECUTION_DATE); $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_LAST_EXECUTION_DATE);
$oCriteria->addSelectColumn(AppEventPeer::APP_EVN_STATUS); $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_STATUS);
$oCriteria->addSelectColumn(EventPeer::PRO_UID); $oCriteria->addSelectColumn(EventPeer::PRO_UID);
$oCriteria->addSelectColumn(EventPeer::EVN_WHEN_OCCURS); $oCriteria->addSelectColumn(EventPeer::EVN_WHEN_OCCURS);
$oCriteria->addSelectColumn(EventPeer::EVN_ACTION); $oCriteria->addSelectColumn(EventPeer::EVN_ACTION);
$oCriteria->addAsColumn('EVN_DESCRIPTION', 'C1.CON_VALUE'); $oCriteria->addAsColumn('EVN_DESCRIPTION', 'C1.CON_VALUE');
$oCriteria->addAsColumn('TAS_TITLE', 'C2.CON_VALUE'); $oCriteria->addAsColumn('TAS_TITLE', 'C2.CON_VALUE');
$oCriteria->addAsColumn('APP_TITLE', 'C3.CON_VALUE'); $oCriteria->addAsColumn('APP_TITLE', 'C3.CON_VALUE');
$oCriteria->addAlias('C1', 'CONTENT'); $oCriteria->addAsColumn('PRO_TITLE', 'C4.CON_VALUE');
$oCriteria->addAlias('C2', 'CONTENT'); $oCriteria->addAlias('C1', 'CONTENT');
$oCriteria->addAlias('C3', 'CONTENT'); $oCriteria->addAlias('C2', 'CONTENT');
$oCriteria->addJoin(AppEventPeer::EVN_UID, EventPeer::EVN_UID, Criteria::LEFT_JOIN); $oCriteria->addAlias('C3', 'CONTENT');
$del = DBAdapter::getStringDelimiter(); $oCriteria->addAlias('C4', 'CONTENT');
$aConditions = array(); $oCriteria->addJoin(AppEventPeer::EVN_UID, EventPeer::EVN_UID, Criteria::LEFT_JOIN);
$aConditions[] = array(EventPeer::EVN_UID, 'C1.CON_ID'); $del = DBAdapter::getStringDelimiter();
$aConditions[] = array('C1.CON_CATEGORY', $del . 'EVN_DESCRIPTION' . $del); $aConditions = array();
$aConditions[] = array('C1.CON_LANG', $del . SYS_LANG . $del); $aConditions[] = array(EventPeer::EVN_UID, 'C1.CON_ID');
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $aConditions[] = array('C1.CON_CATEGORY', $del . 'EVN_DESCRIPTION' . $del);
$aConditions = array(); $aConditions[] = array('C1.CON_LANG', $del . SYS_LANG . $del);
$aConditions[] = array(AppEventPeer::APP_UID, AppDelegationPeer::APP_UID); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
$aConditions[] = array(AppEventPeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX); $aConditions = array();
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $aConditions[] = array(AppEventPeer::APP_UID, AppDelegationPeer::APP_UID);
$aConditions = array(); $aConditions[] = array(AppEventPeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX);
$aConditions[] = array(AppDelegationPeer::TAS_UID, 'C2.CON_ID'); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
$aConditions[] = array('C2.CON_CATEGORY', $del . 'TAS_TITLE' . $del); $aConditions = array();
$aConditions[] = array('C2.CON_LANG', $del . SYS_LANG . $del); $aConditions[] = array(AppDelegationPeer::TAS_UID, 'C2.CON_ID');
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $aConditions[] = array('C2.CON_CATEGORY', $del . 'TAS_TITLE' . $del);
$aConditions = array(); $aConditions[] = array('C2.CON_LANG', $del . SYS_LANG . $del);
$aConditions[] = array(AppDelegationPeer::APP_UID, 'C3.CON_ID'); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
$aConditions[] = array('C3.CON_CATEGORY', $del . 'APP_TITLE' . $del); $aConditions = array();
$aConditions[] = array('C3.CON_LANG', $del . SYS_LANG . $del); $aConditions[] = array(AppDelegationPeer::APP_UID, 'C3.CON_ID');
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $aConditions[] = array('C3.CON_CATEGORY', $del . 'APP_TITLE' . $del);
$oCriteria->add(AppEventPeer::EVN_UID, '', Criteria::NOT_EQUAL); $aConditions[] = array('C3.CON_LANG', $del . SYS_LANG . $del);
$oCriteria->add(EventPeer::PRO_UID, $sProcessUid); $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);
if($EVN_ACTION != ''){ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
$oCriteria->add(EventPeer::EVN_ACTION, $EVN_ACTION); $oCriteria->add(AppEventPeer::EVN_UID, '', Criteria::NOT_EQUAL);
} if($sProcessUid != ''){
$oCriteria->add(EventPeer::PRO_UID, $sProcessUid);
switch ($sStatus) { }
case '': if($EVN_ACTION != ''){
//Nothing $oCriteria->add(EventPeer::EVN_ACTION, $EVN_ACTION);
break; }
case 'PENDING': switch ($sStatus) {
$oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'OPEN'); case '':
break; //Nothing
case 'COMPLETED': break;
$oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'CLOSE'); case 'PENDING':
break; $oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'OPEN');
} break;
$oCriteria->addDescendingOrderByColumn(AppEventPeer::APP_EVN_ACTION_DATE); case 'COMPLETED':
return $oCriteria; $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()) { function executeEvents($sNow, $debug=false, &$log=array()) {

View File

@@ -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('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('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('LOGIN', 'loginSettings', G::LoadTranslation('LOGIN'), "",'', 'settings');
$G_TMP_MENU->AddIdRawOption('DASHBOARD', '../dashboard/dashletsList', ucfirst(G::LoadTranslation('ID_DASHBOARD')), '', '', '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'); $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');
}

View File

@@ -0,0 +1,95 @@
<?php
/**
* eventList.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* 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');

View File

@@ -1,74 +1,74 @@
<?php <?php
$req = $_POST['request']; //$req = $_POST['request'];
$req = (isset($_POST['request']))? $_POST['request']:((isset($_REQUEST['request']))? $_REQUEST['request'] : 'No hayyy tal');
require_once 'classes/model/Content.php';
switch($req){ switch($req){
case 'showUsers': case 'showUsers':
/* /*
$sql = "SELECT USR_UID, USR_EMAIL, CONCAT(USR_FIRSTNAME, ' ' , USR_LASTNAME) 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); $sDataBase = 'database_' . strtolower(DB_ADAPTER);
if(G::LoadSystemExist($sDataBase)){ if (G::LoadSystemExist($sDataBase)) {
G::LoadSystem($sDataBase); G::LoadSystem($sDataBase);
$oDataBase = new database(); $oDataBase = new database();
$sConcat = $oDataBase->concatString("USR_FIRSTNAME", "' '" , "USR_LASTNAME") ; $sConcat = $oDataBase->concatString("USR_FIRSTNAME", "' '" , "USR_LASTNAME") ;
} }
$sql = " SELECT USR_UID, USR_EMAIL, " . $sql = " SELECT USR_UID, USR_EMAIL, " .
$sConcat . $sConcat .
" AS USR_FULLNAME FROM USERS " . " AS USR_FULLNAME FROM USERS " .
" WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''"; " WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''";
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria('workflow');
$del = DBAdapter::getStringDelimiter(); $del = DBAdapter::getStringDelimiter();
$con = Propel::getConnection("workflow"); $con = Propel::getConnection("workflow");
$stmt = $con->prepareStatement($sql); $stmt = $con->prepareStatement($sql);
$rs = $stmt->executeQuery(); $rs = $stmt->executeQuery();
$aRows[] = array('USR_UID'=>'char', 'USR_EMAIL'=>'char', 'USR_FULLNAME'=>'char'); $aRows[] = array('USR_UID'=>'char', 'USR_EMAIL'=>'char', 'USR_FULLNAME'=>'char');
while($rs->next()){ while($rs->next()){
$aRows[] = array('USR_UID'=>$rs->getString('USR_UID'), 'USR_EMAIL'=>$rs->getString('USR_EMAIL'), 'USR_FULLNAME'=>$rs->getString('USR_FULLNAME')); $aRows[] = array('USR_UID'=>$rs->getString('USR_UID'), 'USR_EMAIL'=>$rs->getString('USR_EMAIL'), 'USR_FULLNAME'=>$rs->getString('USR_FULLNAME'));
} }
//echo '<pre>'; print_r($aRows); //echo '<pre>'; print_r($aRows);
global $_DBArray; global $_DBArray;
$_DBArray['virtualtable'] = $aRows; $_DBArray['virtualtable'] = $aRows;
$_SESSION['_DBArray'] = $_DBArray; $_SESSION['_DBArray'] = $_DBArray;
G::LoadClass('ArrayPeer'); G::LoadClass('ArrayPeer');
$oCriteria = new Criteria('dbarray'); $oCriteria = new Criteria('dbarray');
$oCriteria->setDBArrayTable('virtualtable'); $oCriteria->setDBArrayTable('virtualtable');
$G_PUBLISH = new Publisher(); $G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/usermailList', $oCriteria); $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/usermailList', $oCriteria);
G::RenderPage('publish', 'raw'); G::RenderPage('publish', 'raw');
break; 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'); global $_DBArray;
$groups = new Groups(); $_DBArray['virtualtable'] = $aRows;
$allGroups= $groups->getAllGroups(); $_SESSION['_DBArray'] = $_DBArray;
G::LoadClass('ArrayPeer');
$oCriteria = new Criteria('dbarray');
$oCriteria->setDBArrayTable('virtualtable');
$aRows[] = array('GRP_UID' => 'char', 'GROUP_TITLE' => 'char'); $G_PUBLISH = new Publisher();
foreach($allGroups as $group) { $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/groupmailList', $oCriteria);
$UID = htmlentities($group->getGrpUid()); G::RenderPage('publish', 'raw');
$GROUP_TITLE = strip_tags($group->getGrpTitle()); break;
$aRows[] = array('GRP_UID'=>$UID, 'GROUP_TITLE'=>$GROUP_TITLE); case 'showDynavars':
}
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::LoadClass('xmlfield_InputPM'); G::LoadClass('xmlfield_InputPM');
$dynaformFields = getDynaformsVars($_SESSION['PROCESS'], false, false); $dynaformFields = getDynaformsVars($_SESSION['PROCESS'], false, false);
$fields = array(array('id' => 'char', 'dynaform' => 'char', 'name' => 'char')); $fields = array(array('id' => 'char', 'dynaform' => 'char', 'name' => 'char'));
@@ -78,15 +78,70 @@ switch($req){
'name' => '<a href="#" style="color: black;" onclick="e.toAdd(\'' . $dynaformField['sName'] . '\', \'' . $dynaformField['sName'] . '\', \'dyn\');oPanel.remove();return false;">@#' . $dynaformField['sName'] . '</a>', 'label' => $dynaformField['sLabel']); 'name' => '<a href="#" style="color: black;" onclick="e.toAdd(\'' . $dynaformField['sName'] . '\', \'' . $dynaformField['sName'] . '\', \'dyn\');oPanel.remove();return false;">@#' . $dynaformField['sName'] . '</a>', 'label' => $dynaformField['sLabel']);
} }
global $_DBArray; global $_DBArray;
$_DBArray['virtualtable'] = $fields; $_DBArray['virtualtable'] = $fields;
$_SESSION['_DBArray'] = $_DBArray; $_SESSION['_DBArray'] = $_DBArray;
G::LoadClass('ArrayPeer'); G::LoadClass('ArrayPeer');
$oCriteria = new Criteria('dbarray'); $oCriteria = new Criteria('dbarray');
$oCriteria->setDBArrayTable('virtualtable'); $oCriteria->setDBArrayTable('virtualtable');
$G_PUBLISH = new Publisher(); $G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/dynavarsList', $oCriteria); $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/dynavarsList', $oCriteria);
G::RenderPage('publish', 'raw'); G::RenderPage('publish', 'raw');
break; 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;
} }

View File

@@ -769,6 +769,12 @@ antes funcionaba.
background-position:0 -17011px !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{ .ICON_PROCESS_CATEGORY{
/*ss_sitemap_color*/ /*ss_sitemap_color*/
background-image:url( /images/icons_silk/sprites.png) !important; background-image:url( /images/icons_silk/sprites.png) !important;

View File

@@ -793,6 +793,11 @@ antes funcionaba.
background-image:url( /images/icons_silk/sprites.png) !important; background-image:url( /images/icons_silk/sprites.png) !important;
background-position:0 -17011px !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{ .ICON_PROCESS_CATEGORY{
/*ss_sitemap_color*/ /*ss_sitemap_color*/

View File

@@ -766,6 +766,12 @@ antes funcionaba.
background-position:0 -17011px !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{ .ICON_PROCESS_CATEGORY{
/*ss_sitemap_color*/ /*ss_sitemap_color*/
background-image:url( /images/icons_silk/sprites.png) !important; background-image:url( /images/icons_silk/sprites.png) !important;

View File

@@ -0,0 +1,3 @@
<div style="padding: 15px">
<div id="list-panel"></div>
</div>

View File

@@ -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(
'<tpl for="."><div class="x-combo-list-item" style="white-space:normal !important;word-wrap: break-word;">',
'<span> {APP_PRO_TITLE}</span>',
'</div></tpl>'
);
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') + '&nbsp; &nbsp; ',
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;
}
};

View File

@@ -5,23 +5,11 @@
<en>New</en> <en>New</en>
</MNU_ADD> </MNU_ADD>
<MNU_PENDING type="link" value="" link="#" onclick="eventsPending(); return false;" colAlign="left" colWidth="100">
<en>Pending</en>
</MNU_PENDING>
<MNU_COMPLETED type="link" value="" link="#" onclick="eventsCompleted(); return false;" colAlign="left" colWidth="100">
<en>Completed</en>
</MNU_COMPLETED>
<PRO_UID type="private"/> <PRO_UID type="private"/>
<EVN_TYPE type="private"/> <EVN_TYPE type="private"/>
<eventsNew type="private" defaultValue="../events/eventsNew"/> <eventsNew type="private" defaultValue="../events/eventsNew"/>
<eventsPending type="private" defaultValue="../events/eventsPending"/>
<eventsCompleted type="private" defaultValue="../events/eventsCompleted"/>
<eventsEdit type="private" defaultValue="../events/eventsEdit"/> <eventsEdit type="private" defaultValue="../events/eventsEdit"/>
<eventsEditAction type="private" defaultValue="../events/eventsEditAction"/> <eventsEditAction type="private" defaultValue="../events/eventsEditAction"/>
@@ -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); 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) { var eventsEdit = function(sUID) {
popupWindow('@G::LoadTranslation(ID_EDIT_EVENT)', '@G::encryptlink(@#eventsEdit)?EVN_UID=' + sUID , 540, 500); popupWindow('@G::LoadTranslation(ID_EDIT_EVENT)', '@G::encryptlink(@#eventsEdit)?EVN_UID=' + sUID , 540, 500);
}; };