BUG 7004 Adjustment in the paging the users selection by group.

This commit is contained in:
Hector Cortez
2011-12-22 10:34:19 -04:00
parent cfe3c19041
commit db6a1ea88a
2 changed files with 188 additions and 55 deletions

View File

@@ -190,7 +190,37 @@ switch ($_POST['action'])
case 'assignedMembers': case 'assignedMembers':
require_once 'classes/model/Users.php'; require_once 'classes/model/Users.php';
require_once 'classes/model/GroupUser.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', '');
$limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20;
$start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0;
$limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : $limit_size;
$filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : '';
$sGroupUID = $_REQUEST['gUID']; $sGroupUID = $_REQUEST['gUID'];
$aUsers = Array();
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn('COUNT(*) AS CNT');
$oCriteria->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
$oCriteria->add(GroupUserPeer::GRP_UID, $sGroupUID);
$oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
$filter = (isset($_POST['textFilter']))? $_POST['textFilter'] : '';
if ($filter != ''){
$oCriteria->add(
$oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE))));
}
$oDataset = UsersPeer::DoSelectRs ($oCriteria);
$oDataset->setFetchmode (ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$row = $oDataset->getRow();
$totalRows = $row['CNT'];
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(GroupUserPeer::GRP_UID); $oCriteria->addSelectColumn(GroupUserPeer::GRP_UID);
$oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addSelectColumn(UsersPeer::USR_UID);
@@ -208,18 +238,31 @@ switch ($_POST['action'])
$oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%', Criteria::LIKE)->addOr( $oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr( $oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE)))); $oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE))));
} }
$oCriteria->setOffset($start);
$oCriteria->setLimit($limit);
$oDataset = UsersPeer::doSelectRS($oCriteria); $oDataset = UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$arrData = Array(); $arrData = Array();
while ($oDataset->next()){ while ($oDataset->next()){
$arrData[] = $oDataset->getRow(); $arrData[] = $oDataset->getRow();
} }
echo '{success: true, members: '.G::json_encode($arrData).'}'; echo '{success: true, members: '.G::json_encode($arrData).', total_users: '.$totalRows.'}';
break; break;
case 'availableMembers': case 'availableMembers':
require_once 'classes/model/Users.php'; require_once 'classes/model/Users.php';
require_once 'classes/model/GroupUser.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', '');
$limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20;
$start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0;
$limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : $limit_size;
$filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : '';
$sGroupUID = $_REQUEST['gUID']; $sGroupUID = $_REQUEST['gUID'];
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(GroupUserPeer::GRP_UID); $oCriteria->addSelectColumn(GroupUserPeer::GRP_UID);
@@ -235,6 +278,25 @@ switch ($_POST['action'])
$uUIDs[] = $aRow['USR_UID']; $uUIDs[] = $aRow['USR_UID'];
$oDataset->next(); $oDataset->next();
} }
$aUsers = Array();
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn('COUNT(*) AS CNT');
$oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
$oCriteria->add(UsersPeer::USR_UID, $uUIDs, Criteria::NOT_IN);
$filter = (isset($_POST['textFilter']))? $_POST['textFilter'] : '';
if ($filter != ''){
$oCriteria->add(
$oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE))));
}
$oDataset = UsersPeer::DoSelectRs ($oCriteria);
$oDataset->setFetchmode (ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$row = $oDataset->getRow();
$totalRows = $row['CNT'];
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addSelectColumn(UsersPeer::USR_UID);
$oCriteria->addSelectColumn(UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);
@@ -250,14 +312,16 @@ switch ($_POST['action'])
$oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%', Criteria::LIKE)->addOr( $oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr( $oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE)))); $oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE))));
} }
$oCriteria->setOffset($start);
$oCriteria->setLimit($limit);
$oDataset = UsersPeer::doSelectRS($oCriteria); $oDataset = UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$arrData = Array(); $arrData = Array();
while ($oDataset->next()){ while ($oDataset->next()){
$arrData[] = $oDataset->getRow(); $arrData[] = $oDataset->getRow();
} }
echo '{success: true, members: '.G::json_encode($arrData).'}'; echo '{success: true, members: '.G::json_encode($arrData).', total_users: '.$totalRows.'}';
break; break;
case 'assignUsersToGroupsMultiple': case 'assignUsersToGroupsMultiple':
$GRP_UID = $_POST['GRP_UID']; $GRP_UID = $_POST['GRP_UID'];

View File

@@ -38,6 +38,8 @@ var assignAllButton;
var removeButton; var removeButton;
var removeAllButton; var removeAllButton;
var backButton; var backButton;
var pageSize = 20;
var bbarpaging;
Ext.onReady(function(){ Ext.onReady(function(){
@@ -66,6 +68,7 @@ Ext.onReady(function(){
}), }),
reader : new Ext.data.JsonReader( { reader : new Ext.data.JsonReader( {
root: 'members', root: 'members',
totalProperty: 'total_users',
fields : [ fields : [
{name : 'USR_UID'}, {name : 'USR_UID'},
{name : 'USR_USERNAME'}, {name : 'USR_USERNAME'},
@@ -125,6 +128,7 @@ Ext.onReady(function(){
}), }),
reader : new Ext.data.JsonReader( { reader : new Ext.data.JsonReader( {
root: 'members', root: 'members',
totalProperty: 'total_users',
fields : [ fields : [
{name : 'USR_UID'}, {name : 'USR_UID'},
{name : 'USR_USERNAME'}, {name : 'USR_USERNAME'},
@@ -168,72 +172,137 @@ Ext.onReady(function(){
selectSingle: false, selectSingle: false,
listeners:{ listeners:{
selectionchange: function(sm){ selectionchange: function(sm){
switch(sm.getCount()){ switch(sm.getCount()){
case 0: Ext.getCmp('removeButton').disable(); break; case 0: Ext.getCmp('removeButton').disable(); break;
default: Ext.getCmp('removeButton').enable(); break; default: Ext.getCmp('removeButton').enable(); break;
}
} }
}
} }
}); });
storePageSize = new Ext.data.SimpleStore({
fields : ['size'],
data : [['20'],['30'],['40'],['50'],['100']],
autoLoad : true
});
comboPageSizeAvailable = new Ext.form.ComboBox({
typeAhead : false,
mode : 'local',
triggerAction : 'all',
store : storePageSize,
valueField : 'size',
displayField : 'size',
width : 50,
editable : false,
listeners : {
select : function(c, d, i) {
bbarpagingAvailable.pageSize = parseInt(d.data['size']);
bbarpagingAvailable.moveFirst();
}
}
});
comboPageSizeAvailable.setValue(pageSize);
bbarpagingAvailable = new Ext.PagingToolbar({
pageSize : pageSize,
store : storeA,
displayInfo : true,
displayMsg : '{0} - {1} of {2}',
emptyMsg : 'No records',
items: ['-', _('ID_PAGE_SIZE')+':', comboPageSizeAvailable ]
});
availableGrid = new Ext.grid.GridPanel({ availableGrid = new Ext.grid.GridPanel({
layout : 'fit', layout : 'fit',
title : _('ID_AVAILABLE_USERS'), title : _('ID_AVAILABLE_USERS'),
region : 'center', region : 'center',
ddGroup : 'assignedGridDDGroup', ddGroup : 'assignedGridDDGroup',
store : storeA, store : storeA,
cm : cmodelP, cm : cmodelP,
sm : smodelA, sm : smodelA,
enableDragDrop : true, enableDragDrop : true,
stripeRows : true, stripeRows : true,
autoExpandColumn: 'USR_USERNAME', autoExpandColumn : 'USR_USERNAME',
iconCls : 'icon-grid', iconCls : 'icon-grid',
id : 'availableGrid', id : 'availableGrid',
height : 100, height : 100,
autoWidth : true, autoWidth : true,
stateful : true, stateful : true,
stateId : 'grid', stateId : 'grid',
enableColumnResize : true, enableColumnResize : true,
enableHdMenu : true, enableHdMenu : true,
frame : false, frame : false,
columnLines : false, columnLines : false,
viewConfig: { viewConfig : {
forceFit:true, forceFit : true,
cls:"x-grid-empty", cls : "x-grid-empty",
emptyText: (TRANSLATIONS.ID_NO_RECORDS_FOUND) emptyText : (TRANSLATIONS.ID_NO_RECORDS_FOUND)
}, },
tbar: [cancelEditMembersButton,{xtype: 'tbfill'},'-',searchTextA,clearTextButtonA], tbar : [cancelEditMembersButton,{xtype: 'tbfill'},'-',searchTextA,clearTextButtonA],
//bbar: [{xtype: 'tbfill'}, assignAllButton], //bbar: [{xtype: 'tbfill'}, assignAllButton],
listeners: {rowdblclick: AssignUsersAction}, listeners : {rowdblclick: AssignUsersAction},
hidden: true hidden : true,
bbar : bbarpagingAvailable
});
comboPageSizeAssigned = new Ext.form.ComboBox({
typeAhead : false,
mode : 'local',
triggerAction : 'all',
store : storePageSize,
valueField : 'size',
displayField : 'size',
width : 50,
editable : false,
listeners : {
select : function(c, d, i) {
bbarpagingAssigned.pageSize = parseInt(d.data['size']);
bbarpagingAssigned.moveFirst();
}
}
});
comboPageSizeAssigned.setValue(pageSize);
bbarpagingAssigned = new Ext.PagingToolbar({
pageSize : pageSize,
store : storeP,
displayInfo : true,
displayMsg : '{0} - {1} of {2}',
emptyMsg : 'No records',
items: ['-', _('ID_PAGE_SIZE')+':', comboPageSizeAssigned ]
}); });
assignedGrid = new Ext.grid.GridPanel({ assignedGrid = new Ext.grid.GridPanel({
layout : 'fit', layout : 'fit',
title : _('ID_ASSIGNED_USERS'), title : _('ID_ASSIGNED_USERS'),
ddGroup : 'availableGridDDGroup', ddGroup : 'availableGridDDGroup',
store : storeP, store : storeP,
cm : cmodelP, cm : cmodelP,
sm : smodelP, sm : smodelP,
enableDragDrop : true, enableDragDrop : true,
stripeRows : true, stripeRows : true,
autoExpandColumn: 'USR_USERNAME', autoExpandColumn : 'USR_USERNAME',
iconCls : 'icon-grid', iconCls : 'icon-grid',
id : 'assignedGrid', id : 'assignedGrid',
height : 100, height : 100,
autoWidth : true, autoWidth : true,
stateful : true, stateful : true,
stateId : 'grid', stateId : 'grid',
enableColumnResize : true, enableColumnResize : true,
enableHdMenu : true, enableHdMenu : true,
frame : false, frame : false,
columnLines : false, columnLines : false,
viewConfig : {forceFit:true}, viewConfig : {forceFit:true},
tbar: [editMembersButton,{xtype: 'tbfill'},'-',searchTextP,clearTextButtonP], tbar : [editMembersButton,{xtype: 'tbfill'},'-',searchTextP,clearTextButtonP],
//bbar: [{xtype: 'tbfill'},removeAllButton], //bbar: [{xtype: 'tbfill'},removeAllButton],
listeners: {rowdblclick: function(){ listeners : {
(availableGrid.hidden)? DoNothing() : RemoveUsersAction(); rowdblclick: function() {
}} (availableGrid.hidden) ? DoNothing() : RemoveUsersAction();
}
},
bbar : bbarpagingAssigned
}); });
buttonsPanel = new Ext.Panel({ buttonsPanel = new Ext.Panel({