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':
require_once 'classes/model/Users.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'];
$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->addSelectColumn(GroupUserPeer::GRP_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_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE))));
}
}
$oCriteria->setOffset($start);
$oCriteria->setLimit($limit);
$oDataset = UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$arrData = Array();
while ($oDataset->next()){
$arrData[] = $oDataset->getRow();
}
echo '{success: true, members: '.G::json_encode($arrData).'}';
echo '{success: true, members: '.G::json_encode($arrData).', total_users: '.$totalRows.'}';
break;
case 'availableMembers':
require_once 'classes/model/Users.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'];
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(GroupUserPeer::GRP_UID);
@@ -235,6 +278,25 @@ switch ($_POST['action'])
$uUIDs[] = $aRow['USR_UID'];
$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->addSelectColumn(UsersPeer::USR_UID);
$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_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE))));
}
}
$oCriteria->setOffset($start);
$oCriteria->setLimit($limit);
$oDataset = UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$arrData = Array();
while ($oDataset->next()){
$arrData[] = $oDataset->getRow();
}
echo '{success: true, members: '.G::json_encode($arrData).'}';
echo '{success: true, members: '.G::json_encode($arrData).', total_users: '.$totalRows.'}';
break;
case 'assignUsersToGroupsMultiple':
$GRP_UID = $_POST['GRP_UID'];

View File

@@ -38,6 +38,8 @@ var assignAllButton;
var removeButton;
var removeAllButton;
var backButton;
var pageSize = 20;
var bbarpaging;
Ext.onReady(function(){
@@ -66,6 +68,7 @@ Ext.onReady(function(){
}),
reader : new Ext.data.JsonReader( {
root: 'members',
totalProperty: 'total_users',
fields : [
{name : 'USR_UID'},
{name : 'USR_USERNAME'},
@@ -125,6 +128,7 @@ Ext.onReady(function(){
}),
reader : new Ext.data.JsonReader( {
root: 'members',
totalProperty: 'total_users',
fields : [
{name : 'USR_UID'},
{name : 'USR_USERNAME'},
@@ -168,72 +172,137 @@ Ext.onReady(function(){
selectSingle: false,
listeners:{
selectionchange: function(sm){
switch(sm.getCount()){
switch(sm.getCount()){
case 0: Ext.getCmp('removeButton').disable(); 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({
layout : 'fit',
title : _('ID_AVAILABLE_USERS'),
region : 'center',
ddGroup : 'assignedGridDDGroup',
store : storeA,
cm : cmodelP,
sm : smodelA,
enableDragDrop : true,
stripeRows : true,
autoExpandColumn: 'USR_USERNAME',
iconCls : 'icon-grid',
id : 'availableGrid',
height : 100,
autoWidth : true,
stateful : true,
stateId : 'grid',
layout : 'fit',
title : _('ID_AVAILABLE_USERS'),
region : 'center',
ddGroup : 'assignedGridDDGroup',
store : storeA,
cm : cmodelP,
sm : smodelA,
enableDragDrop : true,
stripeRows : true,
autoExpandColumn : 'USR_USERNAME',
iconCls : 'icon-grid',
id : 'availableGrid',
height : 100,
autoWidth : true,
stateful : true,
stateId : 'grid',
enableColumnResize : true,
enableHdMenu : true,
frame : false,
columnLines : false,
viewConfig: {
forceFit:true,
cls:"x-grid-empty",
emptyText: (TRANSLATIONS.ID_NO_RECORDS_FOUND)
enableHdMenu : true,
frame : false,
columnLines : false,
viewConfig : {
forceFit : true,
cls : "x-grid-empty",
emptyText : (TRANSLATIONS.ID_NO_RECORDS_FOUND)
},
tbar: [cancelEditMembersButton,{xtype: 'tbfill'},'-',searchTextA,clearTextButtonA],
tbar : [cancelEditMembersButton,{xtype: 'tbfill'},'-',searchTextA,clearTextButtonA],
//bbar: [{xtype: 'tbfill'}, assignAllButton],
listeners: {rowdblclick: AssignUsersAction},
hidden: true
listeners : {rowdblclick: AssignUsersAction},
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({
layout : 'fit',
title : _('ID_ASSIGNED_USERS'),
ddGroup : 'availableGridDDGroup',
store : storeP,
cm : cmodelP,
sm : smodelP,
enableDragDrop : true,
stripeRows : true,
autoExpandColumn: 'USR_USERNAME',
iconCls : 'icon-grid',
id : 'assignedGrid',
height : 100,
autoWidth : true,
stateful : true,
stateId : 'grid',
layout : 'fit',
title : _('ID_ASSIGNED_USERS'),
ddGroup : 'availableGridDDGroup',
store : storeP,
cm : cmodelP,
sm : smodelP,
enableDragDrop : true,
stripeRows : true,
autoExpandColumn : 'USR_USERNAME',
iconCls : 'icon-grid',
id : 'assignedGrid',
height : 100,
autoWidth : true,
stateful : true,
stateId : 'grid',
enableColumnResize : true,
enableHdMenu : true,
frame : false,
columnLines : false,
viewConfig : {forceFit:true},
tbar: [editMembersButton,{xtype: 'tbfill'},'-',searchTextP,clearTextButtonP],
enableHdMenu : true,
frame : false,
columnLines : false,
viewConfig : {forceFit:true},
tbar : [editMembersButton,{xtype: 'tbfill'},'-',searchTextP,clearTextButtonP],
//bbar: [{xtype: 'tbfill'},removeAllButton],
listeners: {rowdblclick: function(){
(availableGrid.hidden)? DoNothing() : RemoveUsersAction();
}}
listeners : {
rowdblclick: function() {
(availableGrid.hidden) ? DoNothing() : RemoveUsersAction();
}
},
bbar : bbarpagingAssigned
});
buttonsPanel = new Ext.Panel({