HOR-6 "No se puede reasignar un caso cuando se..." SOLVED
Issue:
No se puede reasignar un caso cuando se tiene asignados a la tarea 40000 usuarios
Cause:
El metodo "Cases::getUsersToReassign()" no es optimo
Solution:
- Se a creado el metodo "\ProcessMaker\BusinessModel\Cases::getUsersToReassign()", el cual esta optimizado (backend)
- Se hizo un refactor de las interfaces (frontend)
This commit is contained in:
@@ -926,82 +926,153 @@ Ext.onReady(function(){
|
||||
|
||||
Actions.getUsersToReassign = function()
|
||||
{
|
||||
var store = new Ext.data.Store( {
|
||||
autoLoad: true,
|
||||
proxy : new Ext.data.HttpProxy({
|
||||
url: 'ajaxListener?action=getUsersToReassign'
|
||||
}),
|
||||
reader : new Ext.data.JsonReader( {
|
||||
root: 'data',
|
||||
fields : [
|
||||
{name : 'USR_UID'},
|
||||
{name : 'USR_USERNAME'},
|
||||
{name : 'USR_FIRSTNAME'},
|
||||
{name : 'USR_LASTNAME'}
|
||||
]
|
||||
})
|
||||
var loadMaskUsersToReassign = new Ext.LoadMask(Ext.getBody(), {msg: _("ID_LOADING_GRID")});
|
||||
|
||||
//Variables
|
||||
var pageSizeUsersToReassign = 10;
|
||||
|
||||
//Stores
|
||||
var storeUsersToReassign = new Ext.data.Store({
|
||||
proxy: new Ext.data.HttpProxy({
|
||||
url: "ajaxListener",
|
||||
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)
|
||||
{
|
||||
winReassignInCasesList.setDisabled(true);
|
||||
|
||||
loadMaskUsersToReassign.show();
|
||||
|
||||
this.baseParams = {
|
||||
action: "getUsersToReassign",
|
||||
search: Ext.getCmp("txtSearchUsersToReassign").getValue(),
|
||||
pageSize: pageSizeUsersToReassign
|
||||
};
|
||||
},
|
||||
load: function (store, record, opt)
|
||||
{
|
||||
winReassignInCasesList.setDisabled(false);
|
||||
|
||||
loadMaskUsersToReassign.hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var grid = new Ext.grid.GridPanel( {
|
||||
id: 'reassignGrid',
|
||||
height:300,
|
||||
width:'300',
|
||||
title : '',
|
||||
stateful : true,
|
||||
stateId : 'gridCasesOpen',
|
||||
enableColumnResize: true,
|
||||
enableHdMenu: true,
|
||||
frame:false,
|
||||
cls : 'grid_with_checkbox',
|
||||
columnLines: true,
|
||||
//Components
|
||||
var pagingUsersToReassign = new Ext.PagingToolbar({
|
||||
id: "pagingUsersToReassign",
|
||||
|
||||
viewConfig: {
|
||||
forceFit:true
|
||||
},
|
||||
pageSize: pageSizeUsersToReassign,
|
||||
store: storeUsersToReassign,
|
||||
displayInfo: true,
|
||||
displayMsg: _("ID_DISPLAY_ITEMS"),
|
||||
emptyMsg: _("ID_NO_RECORDS_FOUND")
|
||||
});
|
||||
|
||||
cm: new Ext.grid.ColumnModel({
|
||||
var cmodelUsersToReassign = new Ext.grid.ColumnModel({
|
||||
defaults: {
|
||||
width: 200,
|
||||
sortable: true
|
||||
},
|
||||
columns: [
|
||||
{id:'USR_UID', dataIndex: 'USR_UID', hidden:true, hideable:false},
|
||||
{header: _('ID_USER_NAME'), dataIndex: 'USR_USERNAME', width: 300},
|
||||
{header: _('ID_FIRSTNAME'), dataIndex: 'USR_FIRSTNAME', width: 300},
|
||||
{header: _('ID_LASTNAME'), dataIndex: 'USR_LASTNAME', width: 300}
|
||||
{id: "USR_UID", dataIndex: "USR_UID", hidden: true, hideable: false},
|
||||
{id: "USR_FIRSTNAME", dataIndex: "USR_FIRSTNAME", header: _("ID_FIRSTNAME"), width: 300},
|
||||
{id: "USR_LASTNAME", dataIndex: "USR_LASTNAME", header: _("ID_LASTNAME"), width: 300}
|
||||
]
|
||||
}),
|
||||
sm: new Ext.grid.RowSelectionModel({singleSelect: true}),
|
||||
store: store,
|
||||
|
||||
tbar:[
|
||||
{
|
||||
text:_('ID_REASSIGN'),
|
||||
iconCls: 'ICON_CASES_TO_REASSIGN',
|
||||
handler: Actions.reassignCase
|
||||
}
|
||||
],
|
||||
listeners: {
|
||||
//rowdblclick: openCase,
|
||||
render: function(){
|
||||
this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING')});
|
||||
this.ownerCt.doLayout();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var win = new Ext.Window({
|
||||
var smodelUsersToReassign = new Ext.grid.RowSelectionModel({
|
||||
singleSelect: true
|
||||
});
|
||||
|
||||
var grdpnlUsersToReassign = new Ext.grid.GridPanel({
|
||||
id: "grdpnlUsersToReassign",
|
||||
|
||||
store: storeUsersToReassign,
|
||||
colModel: cmodelUsersToReassign,
|
||||
selModel: smodelUsersToReassign,
|
||||
|
||||
columnLines: true,
|
||||
viewConfig: {forceFit: true},
|
||||
enableColumnResize: true,
|
||||
enableHdMenu: true,
|
||||
|
||||
tbar: [
|
||||
{
|
||||
text: _("ID_REASSIGN"),
|
||||
iconCls: "ICON_CASES_TO_REASSIGN",
|
||||
|
||||
handler: Actions.reassignCase
|
||||
},
|
||||
"->",
|
||||
{
|
||||
xtype: "textfield",
|
||||
id: "txtSearchUsersToReassign",
|
||||
|
||||
emptyText: _("ID_EMPTY_SEARCH"),
|
||||
width: 150,
|
||||
allowBlank: true,
|
||||
|
||||
listeners: {
|
||||
specialkey: function (f, e)
|
||||
{
|
||||
if (e.getKey() == e.ENTER) {
|
||||
pagingUsersToReassign.moveFirst();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
text: "X",
|
||||
ctCls: "pm_search_x_button",
|
||||
|
||||
handler: function ()
|
||||
{
|
||||
Ext.getCmp("txtSearchUsersToReassign").reset();
|
||||
}
|
||||
},
|
||||
{
|
||||
text: _("ID_SEARCH"),
|
||||
|
||||
handler: function ()
|
||||
{
|
||||
pagingUsersToReassign.moveFirst();
|
||||
}
|
||||
}
|
||||
],
|
||||
bbar: pagingUsersToReassign,
|
||||
|
||||
title: ""
|
||||
});
|
||||
|
||||
var winReassignInCasesList = new Ext.Window({
|
||||
title: '',
|
||||
width: 450,
|
||||
height: 280,
|
||||
height: 350,
|
||||
layout:'fit',
|
||||
autoScroll:true,
|
||||
modal: true,
|
||||
resizable: false,
|
||||
maximizable: false,
|
||||
items: [grid]
|
||||
items: [grdpnlUsersToReassign]
|
||||
});
|
||||
Ext.Ajax.request({
|
||||
|
||||
Ext.Ajax.request({
|
||||
url : 'ajaxListener' ,
|
||||
params : {action : 'verifySession'},
|
||||
success: function ( result, request ) {
|
||||
@@ -1026,7 +1097,9 @@ Ext.onReady(function(){
|
||||
}
|
||||
});
|
||||
} else {
|
||||
win.show();
|
||||
winReassignInCasesList.show();
|
||||
|
||||
grdpnlUsersToReassign.store.load();
|
||||
}
|
||||
},
|
||||
failure: function ( result, request) {
|
||||
@@ -1039,7 +1112,8 @@ Ext.onReady(function(){
|
||||
|
||||
Actions.reassignCase = function()
|
||||
{
|
||||
var rowSelected = Ext.getCmp('reassignGrid').getSelectionModel().getSelected();
|
||||
var rowSelected = Ext.getCmp("grdpnlUsersToReassign").getSelectionModel().getSelected();
|
||||
|
||||
if( rowSelected ) {
|
||||
PMExt.confirm(_('ID_CONFIRM'), _('ID_REASSIGN_CONFIRM'), function(){
|
||||
Ext.Ajax.request({
|
||||
|
||||
Reference in New Issue
Block a user