diff --git a/workflow/engine/classes/class.applications.php b/workflow/engine/classes/class.applications.php index 26c20dcd6..745e3d29c 100644 --- a/workflow/engine/classes/class.applications.php +++ b/workflow/engine/classes/class.applications.php @@ -105,7 +105,7 @@ class Applications $Criteria->addAsColumn('USR_USERNAME', 'CU.USR_USERNAME'); // Fix for previous user - if ($action == 'todo' || $action == 'selfservice' || $action =='unassigned' || $action == 'paused' || $action == 'to_revise') { + if ($action == 'todo' || $action == 'selfservice' || $action =='unassigned' || $action == 'paused' || $action == 'to_revise' || $action == 'sent') { $Criteria->addAlias('PU', 'USERS'); $Criteria->addJoin(AppCacheViewPeer::PREVIOUS_USR_UID, 'PU.USR_UID', Criteria::LEFT_JOIN); $Criteria->addAsColumn('PREVIOUS_USR_FIRSTNAME', 'PU.USR_FIRSTNAME'); @@ -305,7 +305,7 @@ class Applications $Criteria->setOffset( $start ); - /* + // this is the optimal way or query to render the cases search list // fixing the bug related to the wrong data displayed in the list if ( $action == 'search' ) { @@ -323,7 +323,6 @@ class Applications $params = array ( $maxDelIndexList ); } - */ //execute the query $oDataset = AppCacheViewPeer::doSelectRS($Criteria); @@ -344,7 +343,7 @@ class Applications * but Propel might not support it and subqueries can be slower for larger * datasets). */ - if ($action == 'sent' || $action == 'search') { + /*if ($action == 'sent' || $action == 'search') { $maxCriteria = new Criteria('workflow'); $maxCriteria->add(AppCacheViewPeer::APP_UID, $aRow['APP_UID'], Criteria::EQUAL); $maxCriteria->addDescendingOrderByColumn(AppCacheViewPeer::DEL_INDEX); @@ -361,7 +360,7 @@ class Applications } $maxDataset->close(); - } + }*/ if (!isset($aRow['APP_CURRENT_USER'])) $aRow['APP_CURRENT_USER'] = "[Unassigned]"; diff --git a/workflow/engine/classes/model/AppCacheView.php b/workflow/engine/classes/model/AppCacheView.php index 4cd6c2fd3..0ef7c73f3 100755 --- a/workflow/engine/classes/model/AppCacheView.php +++ b/workflow/engine/classes/model/AppCacheView.php @@ -56,7 +56,7 @@ class AppCacheView extends BaseAppCacheView break; case 'sent': $criteria = $this->getSentCountCriteria($userUid); - return AppCacheViewPeer::doCount($criteria, true); + //return AppCacheViewPeer::doCount($criteria, true); break; case 'selfservice': $criteria = $this->getUnassignedCountCriteria($userUid); @@ -207,12 +207,13 @@ class AppCacheView extends BaseAppCacheView */ public function getSentCountCriteria($userUid) { - $criteria = new Criteria('workflow'); + /*$criteria = new Criteria('workflow'); $criteria = $this->addPMFieldsToCriteria('sent'); $criteria->add(AppCacheViewPeer::USR_UID, $userUid); - return $criteria; + return $criteria;*/ + return $this->getSentListCriteria($userUid); } /** @@ -226,9 +227,11 @@ class AppCacheView extends BaseAppCacheView //$criteria->addAsColumn('MAX_DEL_INDEX', 'MAX(' . AppDelegationPeer::DEL_INDEX . ')'); //$criteria->addJoin(AppCacheViewPeer::APP_UID , AppDelegationPeer::APP_UID, Criteria::LEFT_JOIN); - $criteria->add(AppCacheViewPeer::USR_UID, $userUid); - $criteria->addGroupByColumn(AppCacheViewPeer::APP_UID); + //$criteria->add(AppCacheViewPeer::USR_UID, $userUid); + //$criteria->addGroupByColumn(AppCacheViewPeer::APP_UID); //$criteria->addGroupByColumn(AppCacheViewPeer::APP_); + $criteria->add(AppCacheViewPeer::PREVIOUS_USR_UID, $userUid); + $criteria->add(AppCacheViewPeer::DEL_FINISH_DATE, null, Criteria::ISNULL); return $criteria; } @@ -571,10 +574,11 @@ class AppCacheView extends BaseAppCacheView public function getSearchCountCriteria() { //$criteria = new Criteria('workflow'); - $criteria = $this->addPMFieldsToCriteria('sent'); + //$criteria = $this->addPMFieldsToCriteria('sent'); - return $criteria; + //return $criteria; //return $this->getSearchCriteria(true); + return $this->getSearchListCriteria(); } public function getSearchAllCount() diff --git a/workflow/engine/methods/cases/ajaxListener.php b/workflow/engine/methods/cases/ajaxListener.php index 8c24e86cb..c18f56a9a 100755 --- a/workflow/engine/methods/cases/ajaxListener.php +++ b/workflow/engine/methods/cases/ajaxListener.php @@ -215,6 +215,8 @@ class Ajax global $G_TABLE; global $RBAC; + G::LoadClass('processMap'); + $oTemplatePower = new TemplatePower(PATH_TPL . 'processes/processes_Map.html'); $oTemplatePower->prepare(); $G_PUBLISH = new Publisher(); @@ -224,6 +226,7 @@ class Ajax //$oHeadPublisher->addScriptfile('/jscore/processmap/core/processmap.js'); $oHeadPublisher->addScriptCode(' + var maximunX = ' . processMap::getMaximunTaskX($_SESSION['PROCESS']) . '; window.onload = function(){ var pb=leimnud.dom.capture("tag.body 0"); Pm=new processmap(); diff --git a/workflow/engine/methods/cases/casesListExtJs.php b/workflow/engine/methods/cases/casesListExtJs.php index 27af63f8d..a9ea381dd 100755 --- a/workflow/engine/methods/cases/casesListExtJs.php +++ b/workflow/engine/methods/cases/casesListExtJs.php @@ -430,6 +430,9 @@ $caseReaderFields[] = array( 'name' => 'APP_UID' ); $caseReaderFields[] = array( 'name' => 'USR_UID' ); $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_UID' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_FIRSTNAME' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_LASTNAME' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_USERNAME' ); $caseReaderFields[] = array( 'name' => 'APP_NUMBER' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); $caseReaderFields[] = array( 'name' => 'DEL_INDEX' ); diff --git a/workflow/engine/methods/cases/cases_Ajax.php b/workflow/engine/methods/cases/cases_Ajax.php index 297fabb1d..244bc8bdd 100755 --- a/workflow/engine/methods/cases/cases_Ajax.php +++ b/workflow/engine/methods/cases/cases_Ajax.php @@ -78,12 +78,14 @@ switch (($_POST['action'])?$_POST['action']:$_REQUEST['action']) { G::RenderPage('publish', 'raw'); break; case 'showProcessMap': + G::LoadClass('processMap'); $oTemplatePower = new TemplatePower(PATH_TPL . 'processes/processes_Map.html'); $oTemplatePower->prepare(); $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower); $oHeadPublisher = & headPublisher::getSingleton(); $oHeadPublisher->addScriptCode(' + var maximunX = ' . processMap::getMaximunTaskX($_SESSION['PROCESS']) . '; var pb=leimnud.dom.capture("tag.body 0"); Pm=new processmap(); diff --git a/workflow/engine/methods/cases/proxyReassignUsersList.php b/workflow/engine/methods/cases/proxyReassignUsersList.php index 0309e9ae0..66f1bc110 100755 --- a/workflow/engine/methods/cases/proxyReassignUsersList.php +++ b/workflow/engine/methods/cases/proxyReassignUsersList.php @@ -46,7 +46,7 @@ function array_sort($array, $on, $order=SORT_ASC, $query='') foreach ($sortable_array as $k => $v) { if ($query==''){ $new_array[] = $array[$k]; - } + } else { if ( preg_match("/".$query."/i", $array[$k]['userFullname']) ) { $new_array[] = $array[$k]; @@ -57,11 +57,11 @@ function array_sort($array, $on, $order=SORT_ASC, $query='') return $new_array; } // $APP_UIDS = explode(',', $_POST['APP_UID']); - + $appUid = isset($_POST['application']) ? $_POST['application'] : ''; // $processUid = isset($_POST['process']) ? $_POST['process'] : ''; -// $TaskUid = isset($_POST['task']) ? $_POST['task'] : ''; - $sReassignFromUser = isset($_POST['user']) ? $_POST['user'] : ''; + $TaskUid = isset($_POST['task']) ? $_POST['task'] : ''; + $sReassignFromUser = isset($_POST['currentUser']) ? $_POST['currentUser'] : ''; G::LoadClass('tasks'); G::LoadClass('groups'); @@ -76,25 +76,25 @@ function array_sort($array, $on, $order=SORT_ASC, $query='') $aCasesList = Array(); // foreach ( $APP_UIDS as $APP_UID ) { - $aCase = $oCases->loadCaseInCurrentDelegation($appUid); - + //$aCase = $oCases->loadCaseInCurrentDelegation($appUid); + $aUsersInvolved = Array(); - $aCaseGroups = $oTasks->getGroupsOfTask($aCase['TAS_UID'], 1); - $oConf = new Configurations; + $aCaseGroups = $oTasks->getGroupsOfTask($TaskUid, 1); + $oConf = new Configurations; $ConfEnv= $oConf->getFormats(); foreach ( $aCaseGroups as $aCaseGroup ) { $aCaseUsers = $oGroups->getUsersOfGroup($aCaseGroup['GRP_UID']); foreach ( $aCaseUsers as $aCaseUser ) { if ( $aCaseUser['USR_UID'] != $sReassignFromUser ) { $aCaseUserRecord = $oUser->load($aCaseUser['USR_UID']); - $sCaseUser = G::getFormatUserList ($ConfEnv['format'],$aCaseUserRecord); + $sCaseUser = G::getFormatUserList ($ConfEnv['format'],$aCaseUserRecord); // $aUsersInvolved[] = array ( 'userUid' => $aCaseUser['USR_UID'] , 'userFullname' => $aCaseUserRecord['USR_FIRSTNAME'] . ' ' . $aCaseUserRecord['USR_LASTNAME']); // . ' (' . $aCaseUserRecord['USR_USERNAME'] . ')'; $aUsersInvolved[] = array ( 'userUid' => $aCaseUser['USR_UID'] , 'userFullname' => $sCaseUser); // . ' (' . $aCaseUserRecord['USR_USERNAME'] . ')'; } } } - $aCaseUsers = $oTasks->getUsersOfTask($aCase['TAS_UID'], 1); + $aCaseUsers = $oTasks->getUsersOfTask($TaskUid, 1); foreach ( $aCaseUsers as $aCaseUser ) { if ( $aCaseUser['USR_UID'] != $sReassignFromUser ) { $aCaseUserRecord = $oUser->load($aCaseUser['USR_UID']); @@ -105,7 +105,7 @@ function array_sort($array, $on, $order=SORT_ASC, $query='') } // $oTmp = new stdClass(); // $oTmp->items = $aUsersInvolved; - $result = array(); - $aUsersInvolved = array_sort($aUsersInvolved,'userFullname',SORT_ASC, $query); + $result = array(); + $aUsersInvolved = array_sort($aUsersInvolved,'userFullname',SORT_ASC, $query); $result['data'] = $aUsersInvolved; print G::json_encode( $result ) ; diff --git a/workflow/engine/methods/tracker/tracker_ViewMap.php b/workflow/engine/methods/tracker/tracker_ViewMap.php index 734348698..a47745c35 100755 --- a/workflow/engine/methods/tracker/tracker_ViewMap.php +++ b/workflow/engine/methods/tracker/tracker_ViewMap.php @@ -53,6 +53,7 @@ switch (($aCaseTracker['CT_MAP_TYPE'])) { break; case 'PROCESSMAP': G::LoadClass('case'); + G::LoadClass('processMap'); $oCase = new Cases(); $aFields = $oCase->loadCase($_SESSION['APPLICATION']); if (isset($aFields['TITLE'])) { @@ -72,6 +73,7 @@ switch (($aCaseTracker['CT_MAP_TYPE'])) { $G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower); $oHeadPublisher = & headPublisher::getSingleton(); $oHeadPublisher->addScriptCode(' + var maximunX = ' . processMap::getMaximunTaskX($_SESSION['PROCESS']) . '; leimnud.event.add(window,"load",function(){ var pb = leimnud.dom.capture("tag.body 0"); pm = new processmap(); diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js index 32a9882b6..8b1ecb900 100644 --- a/workflow/engine/templates/cases/casesList.js +++ b/workflow/engine/templates/cases/casesList.js @@ -852,7 +852,7 @@ Ext.onReady ( function() { 'select': function() { filterProcess = comboAllUsers.value; - if (filterProcess==''){ + /*if (filterProcess==''){ btnSelectAll.hide(); btnUnSelectAll.hide(); btnReassign.hide(); @@ -861,7 +861,7 @@ Ext.onReady ( function() { btnSelectAll.show(); btnUnSelectAll.show(); btnReassign.show(); - } + }*/ storeCases.setBaseParam( 'user', filterProcess); storeCases.load({params:{user: filterProcess, start : 0 , limit : pageSize}}); }}, @@ -1741,6 +1741,8 @@ var gridForm = new Ext.FormPanel({ click: function() { rows = this.getSelectionModel().getSelections(); var application = ''; + var task = ''; + var currentUser = ''; comboUsersToReassign.disable(); if( rows.length > 0 ) { comboUsersToReassign.enable(); @@ -1748,13 +1750,17 @@ var gridForm = new Ext.FormPanel({ for(i=0; i