diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php
index dc1c12052..9c4885016 100755
--- a/workflow/engine/classes/class.processMap.php
+++ b/workflow/engine/classes/class.processMap.php
@@ -1149,34 +1149,23 @@ class processMap {
$aUsers = array();
$aUsers [] = array('LABEL' => 'char', 'TAS_UID' => 'char', 'USR_UID' => 'char', 'TU_TYPE' => 'integer', 'TU_RELATION' => 'integer');
$sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(GroupwfPeer::GRP_UID);
- $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE');
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(GroupwfPeer::GRP_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(GroupwfPeer::GRP_STATUS, 'ACTIVE');
- $oCriteria->add(GroupwfPeer::GRP_UID, $aUIDS1, Criteria::NOT_IN);
- //$oCriteria->add(GroupwfPeer::GRP_UID, '', Criteria::NOT_EQUAL);
- $oDataset = GroupwfPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
+ $groups = new Groupwf();
+ $start = '';
+ $limit = '';
+ $filter = '';
+ $result = $groups->getAllGroup($start,$limit,$filter);
$c = 0;
- while ($aRow = $oDataset->getRow()) {
+ foreach ($result as $results) {
$c++;
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
- $oCriteria->add(GroupUserPeer::GRP_UID, $aRow ['GRP_UID']);
+ $oCriteria->add(GroupUserPeer::GRP_UID, $results ['GRP_UID']);
$oDataset2 = GroupUserPeer::doSelectRS($oCriteria);
$oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset2->next();
$aRow2 = $oDataset2->getRow();
- $aUsers [] = array('LABEL' => $aRow ['GRP_TITLE'] . ' (' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')
', 'TAS_UID' => $sTaskUID, 'USR_UID' => $aRow ['GRP_UID'], 'TU_TYPE' => $iType, 'TU_RELATION' => 2);
- $oDataset->next();
- }
+ $aUsers [] = array ('LABEL' => $results ['GRP_TITLE'] .' (' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')
', 'TAS_UID' => $sTaskUID, 'USR_UID' => $results ['GRP_UID'], 'TU_TYPE' => $iType, 'TU_RELATION' => 2);
+ }
$sDelimiter = DBAdapter::getStringDelimiter ();
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
diff --git a/workflow/engine/classes/model/Groupwf.php b/workflow/engine/classes/model/Groupwf.php
index 5c8116768..0e3fa69ed 100755
--- a/workflow/engine/classes/model/Groupwf.php
+++ b/workflow/engine/classes/model/Groupwf.php
@@ -313,6 +313,64 @@ class Groupwf extends BaseGroupwf {
return $result;
}
+ function getAllGroup($start=null, $limit=null, $search=null)
+ {
+ require_once PATH_RBAC . "model/RbacUsers.php";
+ require_once 'classes/model/TaskUser.php';
+ require_once 'classes/model/GroupUser.php';
+
+ $totalCount = 0;
+ $criteria = new Criteria('workflow');
+ $criteria->addSelectColumn(GroupwfPeer::GRP_UID);
+ $criteria->addSelectColumn(GroupwfPeer::GRP_STATUS);
+ $criteria->addSelectColumn(GroupwfPeer::GRP_UX);
+ $criteria->add(GroupwfPeer::GRP_STATUS, 'ACTIVE');
+ $oDataset = GroupwfPeer::doSelectRS ( $criteria );
+ $oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
+ $processes = Array();
+ $uids=array();
+
+ while( $oDataset->next() ) {
+ $groups[] = $oDataset->getRow();
+ $uids[] = $groups[sizeof($groups)-1]['GRP_UID'];
+ }
+
+ // for labels of groups
+ $groupDetails = Array();
+ $c = new Criteria('workflow');
+ $c->add ( ContentPeer::CON_LANG, defined('SYS_LANG')?SYS_LANG:'en', Criteria::EQUAL );
+ $c->add ( ContentPeer::CON_ID, $uids, Criteria::IN );
+
+ $dt = ContentPeer::doSelectRS ($c);
+ $dt->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+
+ while( $dt->next() ) {
+ $row = $dt->getRow();
+ $groupDetails[$row['CON_ID']] [$row['CON_CATEGORY']] = $row['CON_VALUE'];
+ }
+
+ // foreach all groups
+
+ foreach( $groups as $group ) {
+ $grpTitle = isset($groupDetails[$group['GRP_UID']]) && isset($groupDetails[$group['GRP_UID']]['GRP_TITLE']) ? $groupDetails[$group['GRP_UID']]['GRP_TITLE'] : '';
+ if ( trim($grpTitle) == '') { // if not, then load the record to generate content for current language
+ $grpData = $this->load($group['GRP_UID']);
+ $grpTitle = $grpData['GRP_TITLE'];
+ }
+
+ //filtering by $processName
+ if( isset($search) && $search != '' && stripos($grpTitle, $search) === false){
+ continue;
+ }
+
+ $group['GRP_TITLE'] = $grpTitle;
+
+ $aGroups[] = $group;
+ }
+
+ return $aGroups;
+ }
+
function filterGroup($filter,$start,$limit)
{
require_once 'classes/model/Groupwf.php';
diff --git a/workflow/engine/methods/groups/groups_Ajax.php b/workflow/engine/methods/groups/groups_Ajax.php
index e99849765..c44722bdd 100755
--- a/workflow/engine/methods/groups/groups_Ajax.php
+++ b/workflow/engine/methods/groups/groups_Ajax.php
@@ -99,7 +99,6 @@ switch ($_POST['action'])
require_once 'classes/model/TaskUser.php';
require_once 'classes/model/GroupUser.php';
G::LoadClass('configuration');
-
$co = new Configurations();
$config = $co->getConfiguration('groupList', 'pageSize','',$_SESSION['USER_LOGGED']);
$env = $co->getConfiguration('ENVIRONMENT_SETTINGS', '');
@@ -107,35 +106,7 @@ switch ($_POST['action'])
$start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0;
$limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : $limit_size;
$filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : '';
-
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(GroupwfPeer::GRP_UID);
- $oCriteria->addJoin(GroupwfPeer::GRP_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN);
- $oCriteria->add(ContentPeer::CON_CATEGORY,'GRP_TITLE');
- $oCriteria->add(ContentPeer::CON_LANG,SYS_LANG);
- if ($filter != ''){
- $oCriteria->add(ContentPeer::CON_VALUE, '%'.$filter.'%', Criteria::LIKE);
- }
- $totalRows = GroupwfPeer::doCount($oCriteria);
- $oCriteria = new Criteria('workflow');
-
- $oCriteria->addSelectColumn(GroupwfPeer::GRP_UID);
- $oCriteria->addSelectColumn(GroupwfPeer::GRP_STATUS);
- $oCriteria->addSelectColumn(GroupwfPeer::GRP_UX);
- $oCriteria->addSelectColumn(ContentPeer::CON_VALUE);
- $oCriteria->addAsColumn('GRP_TASKS', 0);
- $oCriteria->addAsColumn('GRP_USERS', 0);
- $oCriteria->addJoin(GroupwfPeer::GRP_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN);
- $oCriteria->add(ContentPeer::CON_CATEGORY,'GRP_TITLE');
- $oCriteria->add(ContentPeer::CON_LANG,SYS_LANG);
- if ($filter != ''){
- $oCriteria->add(ContentPeer::CON_VALUE, '%'.$filter.'%', Criteria::LIKE);
- }
- $oCriteria->setOffset($start);
- $oCriteria->setLimit($limit);
- $oDataset = GroupwfPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
global $RBAC;
$tasks = new TaskUser();
@@ -147,16 +118,15 @@ switch ($_POST['action'])
require_once PATH_CONTROLLERS . 'adminProxy.php';
$uxList = adminProxy::getUxTypesList();
- $arrData = Array();
- while ($oDataset->next()){
- $row = $oDataset->getRow();
- $row['GRP_TASKS'] = isset($aTask[$row['GRP_UID']]) ? $aTask[$row['GRP_UID']] : 0;
- $row['GRP_USERS'] = isset($aMembers[$row['GRP_UID']]) ? $aMembers[$row['GRP_UID']] : 0;
- $group = GroupwfPeer::retrieveByPK($row['GRP_UID']);
- $row['CON_VALUE'] = $group->getGrpTitle();
- $row['GRP_UX'] = isset($uxList[$row['GRP_UX']]) ? $uxList[$row['GRP_UX']] : $uxList['NORMAL'];
-
- $arrData[] = $row;
+ $groups = new Groupwf();
+ $result = $groups->getAllGroup($start,$limit,$filter);
+ $totalRows = 0;
+ foreach ($result as $results) {
+ $totalRows ++;
+ $results['CON_VALUE'] = $results['GRP_TITLE'];
+ $results['GRP_TASKS'] = isset($aTask[$results['GRP_UID']]) ? $aTask[$results['GRP_UID']] : 0;
+ $results['GRP_USERS'] = isset($aMembers[$results['GRP_UID']]) ? $aMembers[$results['GRP_UID']] : 0;
+ $arrData[] = $results;
}
echo '{success: true, groups: '.G::json_encode($arrData).', total_groups: '.$totalRows.'}';