BUG 8062 se dio solucion a este problema de la manera sugerida por erik

This commit is contained in:
Alvaro Campos
2012-03-05 11:20:32 -04:00
parent 8e43037faa
commit 8404fa6745
3 changed files with 76 additions and 59 deletions

View File

@@ -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'] . ' <a href="#" onclick="usersGroup(\'' . $aRow ['GRP_UID'] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>', 'TAS_UID' => $sTaskUID, 'USR_UID' => $aRow ['GRP_UID'], 'TU_TYPE' => $iType, 'TU_RELATION' => 2);
$oDataset->next();
}
$aUsers [] = array ('LABEL' => $results ['GRP_TITLE'] .' <a href="#" onclick="usersGroup(\'' . $results ['GRP_UID'] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>', '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);

View File

@@ -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';

View File

@@ -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.'}';