BUG 6788 Ad Hoc Assignment within a Task does not work
this option was added and it's working fine
This commit is contained in:
73
workflow/engine/controllers/adhocUserProxy.php
Normal file
73
workflow/engine/controllers/adhocUserProxy.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
require_once 'classes/model/Application.php';
|
||||
G::LoadClass('case');
|
||||
class adhocUserProxy extends HttpProxyController
|
||||
{
|
||||
//list of users into adhoc option
|
||||
function adhocAssignUsersk($params){
|
||||
|
||||
G::LoadClass('groups');
|
||||
G::LoadClass('tasks');
|
||||
$oTasks = new Tasks();
|
||||
$aAux = $oTasks->getGroupsOfTask($_SESSION['TASK'], 2);
|
||||
$aAdhocUsers = array();
|
||||
$oGroups = new Groups();
|
||||
foreach($aAux as $aGroup) {
|
||||
$aUsers = $oGroups->getUsersOfGroup($aGroup['GRP_UID']);
|
||||
foreach($aUsers as $aUser) {
|
||||
if($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) {
|
||||
$aAdhocUsers[] = $aUser['USR_UID'];
|
||||
}
|
||||
}
|
||||
}
|
||||
$aAux = $oTasks->getUsersOfTask($_SESSION['TASK'], 2);
|
||||
foreach($aAux as $aUser) {
|
||||
if($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) {
|
||||
$aAdhocUsers[] = $aUser['USR_UID'];
|
||||
}
|
||||
}
|
||||
require_once 'classes/model/Users.php';
|
||||
$oCriteria = new Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
|
||||
$oCriteria->add(UsersPeer::USR_UID, $aAdhocUsers, Criteria::IN);
|
||||
$oDataset = UsersPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$aData=array();
|
||||
while ($oDataset->next()){
|
||||
$aData[] = $oDataset->getRow();
|
||||
}
|
||||
|
||||
$this->data = $aData;
|
||||
|
||||
}
|
||||
//assign user adhoc
|
||||
function reassignCase($params){
|
||||
|
||||
$cases = new Cases();
|
||||
$cases->reassignCase($_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['USER_LOGGED'], $_POST['USR_UID'], $_POST['THETYPE']);
|
||||
$this->success = true;
|
||||
|
||||
}
|
||||
//delete case adhoc
|
||||
function deleteCase($params){
|
||||
$ainfoCase = array();
|
||||
try{
|
||||
$applicationUID = (isset($_POST['APP_UID'])) ? $_POST['APP_UID'] : $_SESSION['APPLICATION'];
|
||||
$app = new Application();
|
||||
$caseData = $app->load($applicationUID);
|
||||
$data['APP_NUMBER'] = $caseData['APP_NUMBER'];
|
||||
|
||||
$oCase = new Cases();
|
||||
$oCase->removeCase($applicationUID);
|
||||
|
||||
$this->success = true;
|
||||
$this->msg = G::LoadTranslation('ID_CASE_DELETED_SUCCESSFULLY', SYS_LANG, $data);
|
||||
} catch(Exception $e) {
|
||||
$this->success = false;
|
||||
$this->msg = $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
} //End adhocUserProxy
|
||||
@@ -304,7 +304,7 @@ $caseStep->getStepPosition());
|
||||
$oTask = new Task();
|
||||
$aTask = $oTask->load($_SESSION['TASK']);
|
||||
if ($aTask['TAS_TYPE'] == 'ADHOC') {
|
||||
$options[] = Array('text'=>G::LoadTranslation('ID_ADHOC_ASSIGNMENT'), 'fn'=>'');
|
||||
$options[] = Array('text'=>G::LoadTranslation('ID_ADHOC_ASSIGNMENT'), 'fn'=>'adhocAssignmentUsers');
|
||||
}
|
||||
}
|
||||
return $options;
|
||||
|
||||
@@ -637,8 +637,7 @@ Ext.onReady(function(){
|
||||
var loadMask = new Ext.LoadMask(document.body, {msg:'Deleting case...'});
|
||||
loadMask.show();
|
||||
Ext.Ajax.request({
|
||||
url : 'ajaxListener' ,
|
||||
params : {action : 'deleteCase'},
|
||||
url : '../adhocUserProxy/deleteCase',
|
||||
success: function ( result, request ) {
|
||||
loadMask.hide();
|
||||
var data = Ext.util.JSON.decode(result.responseText);
|
||||
@@ -711,7 +710,115 @@ Ext.onReady(function(){
|
||||
|
||||
});
|
||||
|
||||
/*-----added by krlos------------*/
|
||||
Actions.adhocAssignmentUsers = function()
|
||||
{
|
||||
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
|
||||
Ext.QuickTips.init();
|
||||
store = new Ext.data.GroupingStore( {
|
||||
proxy : new Ext.data.HttpProxy({
|
||||
url: '../adhocUserProxy/adhocAssignUsersk'//,
|
||||
//method: 'POST'
|
||||
}),
|
||||
|
||||
reader : new Ext.data.JsonReader( {
|
||||
root: 'data',
|
||||
fields : [
|
||||
{name : 'USR_UID'},
|
||||
{name : 'USR_FIRSTNAME'},
|
||||
{name : 'USR_LASTNAME'}
|
||||
]
|
||||
})
|
||||
});
|
||||
|
||||
cmk = new Ext.grid.ColumnModel({
|
||||
defaults: {
|
||||
width: 40,
|
||||
sortable: true
|
||||
},
|
||||
columns: [
|
||||
{ id:'USR_UID', dataIndex: 'USR_UID', hidden:true, hideable:false},
|
||||
{ header : "First Name", dataIndex : 'USR_FIRSTNAME', sortable : true, width: 130, align:'center'},
|
||||
{ header : "Last Name", dataIndex : 'USR_LASTNAME', sortable : true,width: 130, align:'center', }
|
||||
]
|
||||
});
|
||||
|
||||
pbark = new Ext.PagingToolbar({
|
||||
pageSize: 8,
|
||||
store: store,
|
||||
displayInfo: true,
|
||||
displayMsg: 'Displaying Users {0} - {1} of {2}',
|
||||
emptyMsg: "",
|
||||
items:[]
|
||||
});
|
||||
|
||||
var adHocUserGrid = new Ext.grid.GridPanel( {
|
||||
region: 'center',
|
||||
layout: 'fit',
|
||||
id: 'adHocUserGrid',
|
||||
height:210,
|
||||
//autoWidth : true,
|
||||
width:'',
|
||||
title : '',
|
||||
stateful : true,
|
||||
stateId : 'grid',
|
||||
enableColumnResize: true,
|
||||
enableHdMenu: true,
|
||||
frame:false,
|
||||
columnLines: true,
|
||||
viewConfig: {
|
||||
forceFit:true
|
||||
},
|
||||
cm: cmk,
|
||||
store: store,
|
||||
tbar:[{text:_('ID_ASSIGN'), iconCls: 'silk-add', icon: '/images/cases-selfservice.png', handler: assignAdHocUser} ],
|
||||
bbar: '',
|
||||
listeners:{
|
||||
rowdblclick: assignAdHocUser
|
||||
}
|
||||
});
|
||||
|
||||
var w = new Ext.Window({
|
||||
title: _('ID_ADHOC_ASSIGNMENT'),
|
||||
width: 500,
|
||||
height: 240,
|
||||
resizable: false,
|
||||
items: [ adHocUserGrid ],
|
||||
id: 'w'
|
||||
});
|
||||
adHocUserGrid.store.load();
|
||||
w.show();
|
||||
|
||||
function assignAdHocUser(){
|
||||
rowSelected = adHocUserGrid.getSelectionModel().getSelected();
|
||||
PMExt.confirm(_('ID_CONFIRM'), _('ID_CONFIRM_ADHOCUSER_CASE'), function(){
|
||||
var loadMask = new Ext.LoadMask(document.body, {msg:'Assignment case...'});
|
||||
loadMask.show();
|
||||
Ext.Ajax.request({
|
||||
url : '../adhocUserProxy/reassignCase' ,
|
||||
method: 'POST',
|
||||
params : {USR_UID: rowSelected.data.USR_UID, THETYPE: 'ADHOC'},
|
||||
success: function ( result, request ) {
|
||||
loadMask.hide();
|
||||
var data = Ext.util.JSON.decode(result.responseText);
|
||||
if( data.success ) {
|
||||
CloseWindow();
|
||||
location.href = 'casesListExtJs';
|
||||
} else {
|
||||
PMExt.error(_('ID_ERROR'), data.msg);
|
||||
}
|
||||
},
|
||||
failure: function ( result, request) {
|
||||
Ext.MessageBox.alert('Failed', result.responseText);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
CloseWindow = function(){
|
||||
Ext.getCmp('w').hide();
|
||||
};
|
||||
/*-----added by krlos end------------*/
|
||||
/*Date.prototype.dateFormat = function(format) {
|
||||
var result = "";
|
||||
for (var i = 0; i < format.length; ++i) {
|
||||
|
||||
Reference in New Issue
Block a user