BUG 8792 Paginación de tamaño 20 en los grupos de usuarios no funciona SOLVED

- no funcionaba correctamente la paginacion en el listado de grupos.
- se soluciono añadiendo a la consulta el limite y el inicio del listado.
This commit is contained in:
Alvaro Campos
2012-04-05 09:17:12 -04:00
parent 55616696b7
commit 917a1ac704
2 changed files with 28 additions and 5 deletions

View File

@@ -324,7 +324,16 @@ class Groupwf extends BaseGroupwf {
$criteria->addSelectColumn(GroupwfPeer::GRP_UID); $criteria->addSelectColumn(GroupwfPeer::GRP_UID);
$criteria->addSelectColumn(GroupwfPeer::GRP_STATUS); $criteria->addSelectColumn(GroupwfPeer::GRP_STATUS);
$criteria->addSelectColumn(GroupwfPeer::GRP_UX); $criteria->addSelectColumn(GroupwfPeer::GRP_UX);
$criteria->add(GroupwfPeer::GRP_STATUS, 'ACTIVE'); $criteria->add(GroupwfPeer::GRP_STATUS, 'ACTIVE');
$criteriaCount = clone $criteria;
if($start != '')
$criteria->setOffset($start);
if($limit != '')
$criteria->setLimit($limit);
$oDataset = GroupwfPeer::doSelectRS ( $criteria ); $oDataset = GroupwfPeer::doSelectRS ( $criteria );
$oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
$processes = Array(); $processes = Array();
@@ -368,8 +377,15 @@ class Groupwf extends BaseGroupwf {
$aGroups[] = $group; $aGroups[] = $group;
} }
$criteriaCount->clearSelectColumns();
$criteriaCount->addSelectColumn('COUNT(*) AS CNT');
$dt = ContentPeer::doSelectRS ($criteriaCount);
$dt->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$dt->next();
$row = $dt->getRow();
return $aGroups; return array('rows' => $aGroups, 'totalCount'=>$row ['CNT']);
} }
function filterGroup($filter,$start,$limit) function filterGroup($filter,$start,$limit)

View File

@@ -108,7 +108,7 @@ switch ($_POST['action'])
$filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : ''; $filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : '';
global $RBAC; global $RBAC;
if ($limit == $start) $limit = $limit +$limit ;
$tasks = new TaskUser(); $tasks = new TaskUser();
$aTask = $tasks->getCountAllTaksByGroups(); $aTask = $tasks->getCountAllTaksByGroups();
@@ -119,7 +119,9 @@ switch ($_POST['action'])
$uxList = adminProxy::getUxTypesList(); $uxList = adminProxy::getUxTypesList();
$groups = new Groupwf(); $groups = new Groupwf();
$result = $groups->getAllGroup($start,$limit,$filter); $data = $groups->getAllGroup($start,$limit,$filter);
$result = $data['rows'];
$totalRows = 0; $totalRows = 0;
foreach ($result as $results) { foreach ($result as $results) {
$totalRows ++; $totalRows ++;
@@ -128,8 +130,13 @@ switch ($_POST['action'])
$results['GRP_USERS'] = isset($aMembers[$results['GRP_UID']]) ? $aMembers[$results['GRP_UID']] : 0; $results['GRP_USERS'] = isset($aMembers[$results['GRP_UID']]) ? $aMembers[$results['GRP_UID']] : 0;
$arrData[] = $results; $arrData[] = $results;
} }
$result = new StdClass();
$result->success = true;
$result->groups = $arrData;
$result->total_groups = $data['totalCount'];
echo '{success: true, groups: '.G::json_encode($arrData).', total_groups: '.$totalRows.'}'; echo G::json_encode($result);
break; break;
case 'exitsGroupName': case 'exitsGroupName':
require_once 'classes/model/Groupwf.php'; require_once 'classes/model/Groupwf.php';