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:
Carlos Pacha
2011-05-09 11:48:31 -04:00
parent 83feb1b130
commit b8019eecfd
3 changed files with 183 additions and 3 deletions

View 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

View File

@@ -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;

View File

@@ -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) {