HOR-474 "Asignacion de un rol a usuarios tarda demasiado " SOLVED

Issue:
    Asignacion de un rol a usuarios tarda demasiado
Cause:
    Los metodos Roles::getRoleUsers() y Roles::getAllUsers() no son optimos
Solution:
    - Se a mejorado el metodo \ProcessMaker\BusinessModel\Role\User::getUsers() (Back-End)
    - Se agrego el pager a los grids en ADMIN>Users>Roles>Users (Front-End)

HOR-474 "Asignacion de un rol a usuarios tarda demasiado " SOLVED

Issue:
    Asignacion de un rol a usuarios tarda demasiado
Cause:
    Los metodos Roles::getRoleUsers() y Roles::getAllUsers() no son optimos
Solution:
    - Se a mejorado el metodo \ProcessMaker\BusinessModel\Role\User::getUsers() (Back-End)
    - Se agrego el pager a los grids en ADMIN>Users>Roles>Users (Front-End)

HOR-474 "Asignacion de un rol a usuarios tarda demasiado " SOLVED

Issue:
    Asignacion de un rol a usuarios tarda demasiado
Cause:
    Los metodos Roles::getRoleUsers() y Roles::getAllUsers() no son optimos
Solution:
    - Se a mejorado el metodo \ProcessMaker\BusinessModel\Role\User::getUsers() (Back-End)
    - Se agrego el pager a los grids en ADMIN>Users>Roles>Users (Front-End)
This commit is contained in:
Victor Saisa Lopez
2016-03-18 16:49:33 -04:00
parent edb7ae6cee
commit 49e299fbcc
8 changed files with 288 additions and 238 deletions

View File

@@ -788,7 +788,7 @@ class RBAC
*/ */
public function getRoleUsers ($ROL_UID, $filter = '') public function getRoleUsers ($ROL_UID, $filter = '')
{ {
return $this->rolesObj->getRoleUsers( $ROL_UID, $filter ); throw new Exception(__METHOD__ . ': The method is deprecated');
} }
/** /**
@@ -859,7 +859,7 @@ class RBAC
*/ */
public function getAllUsers ($ROL_UID, $filter = '') public function getAllUsers ($ROL_UID, $filter = '')
{ {
return $this->rolesObj->getAllUsers( $ROL_UID, $filter ); throw new Exception(__METHOD__ . ': The method is deprecated');
} }
/** /**

View File

@@ -398,85 +398,11 @@ class Roles extends BaseRoles {
} }
function getRoleUsers($ROL_UID, $filter='') { function getRoleUsers($ROL_UID, $filter='') {
try { throw new Exception(__METHOD__ . ': The method is deprecated');
$criteria = new Criteria();
$criteria->addSelectColumn(RolesPeer::ROL_UID);
$criteria->addSelectColumn(RolesPeer::ROL_PARENT);
$criteria->addSelectColumn(RolesPeer::ROL_SYSTEM);
$criteria->addSelectColumn(RolesPeer::ROL_CODE);
$criteria->addSelectColumn(RolesPeer::ROL_CREATE_DATE);
$criteria->addSelectColumn(RolesPeer::ROL_UPDATE_DATE);
$criteria->addSelectColumn(RolesPeer::ROL_STATUS);
$criteria->addSelectColumn(RbacUsersPeer::USR_UID);
$criteria->addSelectColumn(RbacUsersPeer::USR_USERNAME);
$criteria->addSelectColumn(RbacUsersPeer::USR_FIRSTNAME);
$criteria->addSelectColumn(RbacUsersPeer::USR_LASTNAME);
$criteria->add(RolesPeer::ROL_UID, "", Criteria::NOT_EQUAL);
$criteria->add(RolesPeer::ROL_UID, $ROL_UID);
$criteria->add(RbacUsersPeer::USR_STATUS, 0, Criteria::NOT_EQUAL);
$criteria->addJoin(RolesPeer::ROL_UID, UsersRolesPeer::ROL_UID);
$criteria->addJoin(UsersRolesPeer::USR_UID, RbacUsersPeer::USR_UID);
if ($filter != ''){
$criteria->add(
$criteria->getNewCriterion(RbacUsersPeer::USR_USERNAME,'%'.$filter.'%',Criteria::LIKE)->addOr(
$criteria->getNewCriterion(RbacUsersPeer::USR_FIRSTNAME,'%'.$filter.'%',Criteria::LIKE)->addOr(
$criteria->getNewCriterion(RbacUsersPeer::USR_LASTNAME,'%'.$filter.'%',Criteria::LIKE)))
);
}
$oDataset = RolesPeer::doSelectRS($criteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
return $oDataset;
} catch( exception $e ) {
throw $e;
}
} }
function getAllUsers($ROL_UID, $filter='') { function getAllUsers($ROL_UID, $filter='') {
try { throw new Exception(__METHOD__ . ': The method is deprecated');
$c = new Criteria();
$c->addSelectColumn(RbacUsersPeer::USR_UID);
$c->add(RolesPeer::ROL_UID, $ROL_UID);
$c->addJoin(RolesPeer::ROL_UID, UsersRolesPeer::ROL_UID);
$c->addJoin(UsersRolesPeer::USR_UID, RbacUsersPeer::USR_UID);
$result = RolesPeer::doSelectRS($c);
$result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$result->next();
$a = Array();
while( $row = $result->getRow() ) {
$a[] = $row['USR_UID'];
$result->next();
}
$criteria = new Criteria();
$criteria->addSelectColumn(RbacUsersPeer::USR_UID);
$criteria->addSelectColumn(RbacUsersPeer::USR_USERNAME);
$criteria->addSelectColumn(RbacUsersPeer::USR_FIRSTNAME);
$criteria->addSelectColumn(RbacUsersPeer::USR_LASTNAME);
$criteria->add(RbacUsersPeer::USR_STATUS, 1, Criteria::EQUAL);
$criteria->add(RbacUsersPeer::USR_UID, $a, Criteria::NOT_IN);
if ($filter != ''){
$criteria->add(
$criteria->getNewCriterion(RbacUsersPeer::USR_USERNAME,'%'.$filter.'%',Criteria::LIKE)->addOr(
$criteria->getNewCriterion(RbacUsersPeer::USR_FIRSTNAME,'%'.$filter.'%',Criteria::LIKE)->addOr(
$criteria->getNewCriterion(RbacUsersPeer::USR_LASTNAME,'%'.$filter.'%',Criteria::LIKE)))
);
}
$oDataset = RbacUsersPeer::doSelectRS($criteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
return $oDataset;
} catch( exception $e ) {
throw $e;
}
} }
function assignUserToRole($aData) { function assignUserToRole($aData) {

View File

@@ -1,42 +1,32 @@
<?php <?php
/** $response = [];
* data_rolesUsers.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*/
$ROL_UID = $_GET['rUID']; try {
$TYPE_DATA = $_GET["type"]; $option = $_POST['option'];
$roleUid = $_POST['roleUid'];
global $RBAC; $pageSize = $_POST['pageSize'];
$filter = $_POST['filter'];
$filter = (isset( $_REQUEST['textFilter'] )) ? $_REQUEST['textFilter'] : ''; $sortField = (isset($_POST['sort']))? $_POST['sort']: 'USR_FIRSTNAME';
$sortDir = (isset($_POST['dir']))? $_POST['dir']: 'ASC';
$start = (isset($_POST['start']))? $_POST['start']: 0;
$limit = (isset($_POST['limit']))? $_POST['limit']: $pageSize;
if ($TYPE_DATA == 'list') $roleUser = new \ProcessMaker\BusinessModel\Role\User();
$oDataset = $RBAC->getRoleUsers( $ROL_UID, $filter );
if ($TYPE_DATA == 'show')
$oDataset = $RBAC->getAllUsers( $ROL_UID, $filter );
$rows = Array (); $result = $roleUser->getUsers(
while ($oDataset->next()) { $roleUid, $option, ['filter' => $filter, 'filterOption' => ''], $sortField, $sortDir, $start, $limit
$rows[] = $oDataset->getRow(); );
$response['status'] = 'OK';
$response['success'] = true;
$response['resultTotal'] = $result['total'];
$response['resultRoot'] = $result['data'];
} catch (Exception $e) {
$response['status'] = 'ERROR';
$response['message'] = $e->getMessage();
} }
echo '{users: ' . G::json_encode( $rows ) . '}';
echo G::json_encode($response);

View File

@@ -48,8 +48,15 @@ $G_ID_SUB_MENU_SELECTED = 'ROLES';
$G_PUBLISH = new Publisher(); $G_PUBLISH = new Publisher();
$configuration = new Configurations();
$arrayConfigPage = $configuration->getConfiguration('roleUsersPermissionsList', 'pageSize', null, $_SESSION['USER_LOGGED']);
$arrayConfig = [];
$arrayConfig['pageSize'] = (isset($arrayConfigPage['pageSize']))? $arrayConfigPage['pageSize'] : 20;
$oHeadPublisher = & headPublisher::getSingleton(); $oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher->assign("PARTNER_FLAG", (defined('PARTNER_FLAG')) ? PARTNER_FLAG : false); $oHeadPublisher->assign("PARTNER_FLAG", (defined('PARTNER_FLAG')) ? PARTNER_FLAG : false);
$oHeadPublisher->assign('CONFIG', $arrayConfig);
$oHeadPublisher->addExtJsScript( 'roles/rolesUsersPermission', false ); //adding a javascript file .js $oHeadPublisher->addExtJsScript( 'roles/rolesUsersPermission', false ); //adding a javascript file .js
$oHeadPublisher->addContent( 'roles/rolesUsersPermission' ); //adding a html file .html. $oHeadPublisher->addContent( 'roles/rolesUsersPermission' ); //adding a html file .html.

View File

@@ -2694,30 +2694,22 @@ class Cases
} }
//Number records total //Number records total
$criteriaCount = clone $criteria; $numRecTotal = \UsersPeer::doCount($criteria);
$criteriaCount->clearSelectColumns();
$criteriaCount->addSelectColumn('COUNT(' . \UsersPeer::USR_UID . ') AS NUM_REC');
$rsCriteriaCount = \UsersPeer::doSelectRS($criteriaCount);
$rsCriteriaCount->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$result = $rsCriteriaCount->next();
$row = $rsCriteriaCount->getRow();
$numRecTotal = (int)($row['NUM_REC']);
//Query //Query
$conf = new \Configurations();
$sortFieldDefault = \UsersPeer::TABLE_NAME . '.' . $conf->userNameFormatGetFirstFieldByUsersTable();
if (!is_null($sortField) && trim($sortField) != '') { if (!is_null($sortField) && trim($sortField) != '') {
$sortField = strtoupper($sortField); $sortField = strtoupper($sortField);
if (in_array(\UsersPeer::TABLE_NAME . '.' . $sortField, $criteria->getSelectColumns())) { if (in_array(\UsersPeer::TABLE_NAME . '.' . $sortField, $criteria->getSelectColumns())) {
$sortField = \UsersPeer::TABLE_NAME . '.' . $sortField; $sortField = \UsersPeer::TABLE_NAME . '.' . $sortField;
} else { } else {
$sortField = \UsersPeer::USR_FIRSTNAME; $sortField = $sortFieldDefault;
} }
} else { } else {
$sortField = \UsersPeer::USR_FIRSTNAME; $sortField = $sortFieldDefault;
} }
if (!is_null($sortDir) && trim($sortDir) != '' && strtoupper($sortDir) == 'DESC') { if (!is_null($sortDir) && trim($sortDir) != '' && strtoupper($sortDir) == 'DESC') {

View File

@@ -217,48 +217,6 @@ class User
} }
} }
/**
* Get criteria for User
*
* @param string $roleUid Unique id of Role
* @param array $arrayUserUidExclude Unique id of Users to exclude
*
* return object
*/
public function getUserCriteria($roleUid, array $arrayUserUidExclude = null)
{
try {
$criteria = new \Criteria("rbac");
$criteria->addSelectColumn(\RbacUsersPeer::USR_UID);
$criteria->addSelectColumn(\RbacUsersPeer::USR_USERNAME);
$criteria->addSelectColumn(\RbacUsersPeer::USR_FIRSTNAME);
$criteria->addSelectColumn(\RbacUsersPeer::USR_LASTNAME);
$criteria->addSelectColumn(\RbacUsersPeer::USR_STATUS);
$criteria->addAlias("USR", \RbacUsersPeer::TABLE_NAME);
$arrayCondition = array();
$arrayCondition[] = array(\RbacUsersPeer::USR_UID, "USR.USR_UID", \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
if ($roleUid != "") {
$criteria->addJoin(\UsersRolesPeer::USR_UID, \RbacUsersPeer::USR_UID, \Criteria::LEFT_JOIN);
$criteria->add(\UsersRolesPeer::ROL_UID, $roleUid, \Criteria::EQUAL);
}
$criteria->add("USR.USR_USERNAME", "", \Criteria::NOT_EQUAL);
if (!is_null($arrayUserUidExclude) && is_array($arrayUserUidExclude)) {
$criteria->add(\RbacUsersPeer::USR_UID, $arrayUserUidExclude, \Criteria::NOT_IN);
}
return $criteria;
} catch (\Exception $e) {
throw $e;
}
}
/** /**
* Get data of a User from a record * Get data of a User from a record
* *
@@ -299,7 +257,11 @@ class User
try { try {
$arrayUser = array(); $arrayUser = array();
//Verify data $numRecTotal = 0;
//Verify data and Set variables
$flagFilter = !is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData['filter']);
$process = new \ProcessMaker\BusinessModel\Process(); $process = new \ProcessMaker\BusinessModel\Process();
$role = new \ProcessMaker\BusinessModel\Role(); $role = new \ProcessMaker\BusinessModel\Role();
@@ -314,56 +276,89 @@ class User
$process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), $this->arrayFieldNameForException); $process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), $this->arrayFieldNameForException);
//Get data //Set variables
if (!is_null($limit) && $limit . "" == "0") { $filterName = 'filter';
return $arrayUser;
if ($flagFilter) {
$arrayAux = [
'' => 'filter',
'LEFT' => 'lfilter',
'RIGHT' => 'rfilter'
];
$filterName = $arrayAux[
(isset($arrayFilterData['filterOption']))? $arrayFilterData['filterOption'] : ''
];
} }
//SQL //Get data
if (!is_null($limit) && (string)($limit) == '0') {
return [
'total' => $numRecTotal,
'start' => (int)((!is_null($start))? $start : 0),
'limit' => (int)((!is_null($limit))? $limit : 0),
$filterName => ($flagFilter)? $arrayFilterData['filter'] : '',
'data' => $arrayUser
];
}
//Query
$criteria = new \Criteria('rbac');
$criteria->addSelectColumn(\RbacUsersPeer::USR_UID);
$criteria->addSelectColumn(\RbacUsersPeer::USR_USERNAME);
$criteria->addSelectColumn(\RbacUsersPeer::USR_FIRSTNAME);
$criteria->addSelectColumn(\RbacUsersPeer::USR_LASTNAME);
$criteria->addSelectColumn(\RbacUsersPeer::USR_STATUS);
$criteria->addJoin(\RbacUsersPeer::USR_UID, \UsersRolesPeer::USR_UID, \Criteria::LEFT_JOIN);
$criteria->add(\RbacUsersPeer::USR_USERNAME, '', \Criteria::NOT_EQUAL);
switch ($option) { switch ($option) {
case "USERS": case "USERS":
//Criteria $criteria->add(\UsersRolesPeer::ROL_UID, $roleUid, \Criteria::EQUAL);
$criteria = $this->getUserCriteria($roleUid);
break; break;
case "AVAILABLE-USERS": case "AVAILABLE-USERS":
//Get Uids $criteria->add(\UsersRolesPeer::ROL_UID, $roleUid, \Criteria::NOT_EQUAL);
$arrayUid = array();
$criteria = $this->getUserCriteria($roleUid);
$rsCriteria = \RbacUsersPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayUid[] = $row["USR_UID"];
}
//Criteria
$criteria = $this->getUserCriteria("", $arrayUid);
break; break;
} }
if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") { if ($flagFilter && trim($arrayFilterData['filter']) != '') {
$arraySearch = [
'' => '%' . $arrayFilterData['filter'] . '%',
'LEFT' => $arrayFilterData['filter'] . '%',
'RIGHT' => '%' . $arrayFilterData['filter']
];
$search = $arraySearch[
(isset($arrayFilterData['filterOption']))? $arrayFilterData['filterOption'] : ''
];
$criteria->add( $criteria->add(
$criteria->getNewCriterion(\RbacUsersPeer::USR_USERNAME, "%" . $arrayFilterData["filter"] . "%", \Criteria::LIKE)->addOr( $criteria->getNewCriterion(\RbacUsersPeer::USR_USERNAME, $search, \Criteria::LIKE)->addOr(
$criteria->getNewCriterion(\RbacUsersPeer::USR_FIRSTNAME, "%" . $arrayFilterData["filter"] . "%", \Criteria::LIKE)->addOr( $criteria->getNewCriterion(\RbacUsersPeer::USR_FIRSTNAME, $search, \Criteria::LIKE)->addOr(
$criteria->getNewCriterion(\RbacUsersPeer::USR_LASTNAME, "%" . $arrayFilterData["filter"] . "%", \Criteria::LIKE))) $criteria->getNewCriterion(\RbacUsersPeer::USR_LASTNAME, $search, \Criteria::LIKE)))
); );
} }
//SQL //Number records total
if (!is_null($sortField) && trim($sortField) != "") { $numRecTotal = \RbacUsersPeer::doCount($criteria);
//Query
$conf = new \Configurations();
$sortFieldDefault = \RbacUsersPeer::TABLE_NAME . '.' . $conf->userNameFormatGetFirstFieldByUsersTable();
if (!is_null($sortField) && trim($sortField) != '') {
$sortField = strtoupper($sortField); $sortField = strtoupper($sortField);
if (in_array($sortField, array("USR_UID", "USR_USERNAME", "USR_FIRSTNAME", "USR_LASTNAME", "USR_STATUS"))) { if (in_array(\RbacUsersPeer::TABLE_NAME . '.' . $sortField, $criteria->getSelectColumns())) {
$sortField = \RbacUsersPeer::TABLE_NAME . "." . $sortField; $sortField = \RbacUsersPeer::TABLE_NAME . '.' . $sortField;
} else { } else {
$sortField = \RbacUsersPeer::USR_USERNAME; $sortField = $sortFieldDefault;
} }
} else { } else {
$sortField = \RbacUsersPeer::USR_USERNAME; $sortField = $sortFieldDefault;
} }
if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") { if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") {
@@ -390,7 +385,13 @@ class User
} }
//Return //Return
return $arrayUser; return [
'total' => $numRecTotal,
'start' => (int)((!is_null($start))? $start : 0),
'limit' => (int)((!is_null($limit))? $limit : 0),
$filterName => ($flagFilter)? $arrayFilterData['filter'] : '',
'data' => $arrayUser
];
} catch (\Exception $e) { } catch (\Exception $e) {
throw $e; throw $e;
} }

View File

@@ -38,9 +38,13 @@ class User extends Api
public function doGetUsers($rol_uid, $filter = null, $start = null, $limit = null) public function doGetUsers($rol_uid, $filter = null, $start = null, $limit = null)
{ {
try { try {
$response = $this->roleUser->getUsers($rol_uid, (preg_match("/^.*\/users$/", $this->restler->url))? "USERS" : "AVAILABLE-USERS", array("filter" => $filter), null, null, $start, $limit); $option = (preg_match('/^.*\/users$/', $this->restler->url))? 'USERS' : 'AVAILABLE-USERS';
return $response; $response = $this->roleUser->getUsers(
$rol_uid, $option, ['filter' => $filter, 'filterOption' => ''], null, null, $start, $limit
);
return $response['data'];
} catch (\Exception $e) { } catch (\Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
} }

View File

@@ -26,8 +26,6 @@ var storeA;
var cmodelP; var cmodelP;
var smodelA; var smodelA;
var smodelP; var smodelP;
var storeU;
var storeX;
var cmodelU; var cmodelU;
var smodelU; var smodelU;
var smodelX; var smodelX;
@@ -54,6 +52,9 @@ var removeUAllButton;
var backButton; var backButton;
var editForm; var editForm;
var pagingUser;
var pagingAvailableUser;
var sw_func_permissions; var sw_func_permissions;
var sw_func_users; var sw_func_users;
@@ -83,12 +84,12 @@ GridByDefaultP = function(){
//Function DoSearch Available //Function DoSearch Available
DoSearchU = function(){ DoSearchU = function(){
availableUGrid.store.load({params: {textFilter: searchTextU.getValue()}}); pagingAvailableUser.moveFirst();
}; };
//Function DoSearch Assigned //Function DoSearch Assigned
DoSearchX = function(){ DoSearchX = function(){
assignedUGrid.store.load({params: {textFilter: searchTextX.getValue()}}); pagingUser.moveFirst();
}; };
//Load Grid By Default Available Members //Load Grid By Default Available Members
@@ -149,6 +150,11 @@ CancelEditPermissionsActionU = function(){
Ext.onReady(function(){ Ext.onReady(function(){
var loadMaskUserPermission = new Ext.LoadMask(Ext.getBody(), {msg: _("ID_LOADING_GRID")});
//Variables
var pageSizeU = parseInt(CONFIG.pageSize);
var pageSizeA = parseInt(CONFIG.pageSize);
sw_func_permissions = false; sw_func_permissions = false;
sw_func_users = false; sw_func_users = false;
@@ -404,34 +410,154 @@ Ext.onReady(function(){
}); });
storeU = new Ext.data.GroupingStore({ //Stores
proxy : new Ext.data.HttpProxy({ var storePageSize = new Ext.data.SimpleStore({
url: 'data_rolesUsers?rUID=' + ROLES.ROL_UID + '&type=list' fields: ["size"],
}), data: [["20"], ["30"], ["40"], ["50"], ["100"]],
reader : new Ext.data.JsonReader( { autoLoad: true
root: 'users',
fields : [
{name : 'USR_UID'},
{name : 'USR_USERNAME'},
{name : 'USR_FIRSTNAME'},
{name : 'USR_LASTNAME'}
]
})
}); });
storeX = new Ext.data.GroupingStore({ var storeUser = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({ proxy: new Ext.data.HttpProxy({
url: 'data_rolesUsers?rUID=' + ROLES.ROL_UID + '&type=show' url: "data_rolesUsers",
method: "POST"
}), }),
reader: new Ext.data.JsonReader({ reader: new Ext.data.JsonReader({
root: 'users', root: "resultRoot",
totalProperty: "resultTotal",
fields: [ fields: [
{name: 'USR_UID'}, {name: 'USR_UID'},
{name: 'USR_USERNAME'}, {name: 'USR_USERNAME'},
{name: 'USR_FIRSTNAME'}, {name: 'USR_FIRSTNAME'},
{name: 'USR_LASTNAME'} {name: 'USR_LASTNAME'}
] ]
}) }),
remoteSort: true,
listeners: {
beforeload: function (store)
{
loadMaskUserPermission.show();
this.baseParams = {
"option": "USERS",
"roleUid": ROLES.ROL_UID,
"pageSize": pageSizeU,
"filter": searchTextX.getValue()
};
},
load: function (store, record, opt)
{
loadMaskUserPermission.hide();
}
}
});
var storeAvailableUser = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: "data_rolesUsers",
method: "POST"
}),
reader: new Ext.data.JsonReader({
root: "resultRoot",
totalProperty: "resultTotal",
fields: [
{name: 'USR_UID'},
{name: 'USR_USERNAME'},
{name: 'USR_FIRSTNAME'},
{name: 'USR_LASTNAME'}
]
}),
remoteSort: true,
listeners: {
beforeload: function (store)
{
loadMaskUserPermission.show();
this.baseParams = {
"option": "AVAILABLE-USERS",
"roleUid": ROLES.ROL_UID,
"pageSize": pageSizeA,
"filter": searchTextU.getValue()
};
},
load: function (store, record, opt)
{
loadMaskUserPermission.hide();
}
}
});
//Components
var cboPageSizeUser = new Ext.form.ComboBox({
id: "cboPageSizeUser",
mode: "local",
triggerAction: "all",
store: storePageSize,
valueField: "size",
displayField: "size",
width: 50,
editable: false,
listeners: {
select: function (combo, record, index)
{
pageSizeU = parseInt(record.data["size"]);
pagingUser.pageSize = pageSizeU;
pagingUser.moveFirst();
}
}
});
pagingUser = new Ext.PagingToolbar({
id: "pagingUser",
pageSize: pageSizeU,
store: storeUser,
displayInfo: true,
displayMsg: _("ID_GRID_PAGE_DISPLAYING_ITEMS"),
emptyMsg: _("ID_NO_RECORDS_FOUND"),
items: ["-", _("ID_PAGE_SIZE") + "&nbsp;", cboPageSizeUser]
});
var cboPageSizeAvailableUser = new Ext.form.ComboBox({
id: "cboPageSizeAvailableUser",
mode: "local",
triggerAction: "all",
store: storePageSize,
valueField: "size",
displayField: "size",
width: 50,
editable: false,
listeners: {
select: function (combo, record, index)
{
pageSizeA = parseInt(record.data["size"]);
pagingAvailableUser.pageSize = pageSizeA;
pagingAvailableUser.moveFirst();
}
}
});
pagingAvailableUser = new Ext.PagingToolbar({
id: "pagingAvailableUser",
pageSize: pageSizeA,
store: storeAvailableUser,
displayInfo: true,
displayMsg: _("ID_GRID_PAGE_DISPLAYING_ITEMS"),
emptyMsg: _("ID_NO_RECORDS_FOUND"),
items: ["-", _("ID_PAGE_SIZE") + "&nbsp;", cboPageSizeAvailableUser]
}); });
cmodelU = new Ext.grid.ColumnModel({ cmodelU = new Ext.grid.ColumnModel({
@@ -510,7 +636,7 @@ Ext.onReady(function(){
title : _('ID_AVAILABLE_USERS'), title : _('ID_AVAILABLE_USERS'),
region : 'center', region : 'center',
ddGroup : 'assignedUGridDDGroup', ddGroup : 'assignedUGridDDGroup',
store : storeX, store: storeAvailableUser,
cm : cmodelU, cm : cmodelU,
sm : smodelX, sm : smodelX,
enableDragDrop : true, enableDragDrop : true,
@@ -528,7 +654,7 @@ Ext.onReady(function(){
columnLines : false, columnLines : false,
viewConfig : {forceFit:true}, viewConfig : {forceFit:true},
tbar: [cancelEditPermissionsUButton,{xtype: 'tbfill'},'-',searchTextU, clearTextButtonU], tbar: [cancelEditPermissionsUButton,{xtype: 'tbfill'},'-',searchTextU, clearTextButtonU],
//bbar: [{xtype: 'tbfill'}, assignUAllButton], bbar: pagingAvailableUser,
listeners: {rowdblclick: AssignUserAction}, listeners: {rowdblclick: AssignUserAction},
hidden : true hidden : true
}); });
@@ -537,7 +663,7 @@ Ext.onReady(function(){
layout : 'fit', layout : 'fit',
title : _('ID_ASSIGNED_USERS'), title : _('ID_ASSIGNED_USERS'),
ddGroup : 'availableUGridDDGroup', ddGroup : 'availableUGridDDGroup',
store : storeU, store: storeUser,
cm : cmodelU, cm : cmodelU,
sm : smodelU, sm : smodelU,
enableDragDrop : false, enableDragDrop : false,
@@ -554,7 +680,8 @@ Ext.onReady(function(){
frame : false, frame : false,
columnLines : false, columnLines : false,
viewConfig : {forceFit:true}, viewConfig : {forceFit:true},
tbar : [editPermissionsUButton,{xtype: 'tbfill'},'-',searchTextX, clearTextButtonX] tbar: [editPermissionsUButton, {xtype: "tbfill"}, "-", searchTextX, clearTextButtonX],
bbar: pagingUser
}); });
buttonsUPanel = new Ext.Panel({ buttonsUPanel = new Ext.Panel({
@@ -613,6 +740,9 @@ Ext.onReady(function(){
} }
}); });
cboPageSizeUser.setValue(pageSizeU);
cboPageSizeAvailableUser.setValue(pageSizeA);
//LOAD ALL PANELS //LOAD ALL PANELS
viewport = new Ext.Viewport({ viewport = new Ext.Viewport({
layout: 'border', layout: 'border',