diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php
index 85d6e4977..b9a9199c1 100644
--- a/workflow/engine/classes/class.processMap.php
+++ b/workflow/engine/classes/class.processMap.php
@@ -5719,7 +5719,9 @@ class processMap {
}
return $aReportTable;
}
- function getExtAvailableUsersList($sTaskUID = '', $iType = 1) {
+
+
+ function getExtAvailableUsersList($sTaskUID = '', $iType = 2) {
try {
$oTasks = new Tasks ( );
$aAux = $oTasks->getGroupsOfTask($sTaskUID, $iType);
@@ -5782,13 +5784,85 @@ class processMap {
$_DBArray ['availableUsers'] = $aUsers;
$_SESSION ['_DBArray'] = $_DBArray;
return $_SESSION ['_DBArray']['availableUsers'];
- return $oCriteria;
} catch (Exception $oError) {
throw ($oError);
}
}
-
+function getExtTaskUsersAdHocCriteria($sTaskUID = '', $iType = 1) {
+ try {
+ $aUsers = array();
+ $aUsers [] = array('LABEL' => 'char', 'TAS_UID' => 'char', 'USR_UID' => 'char', 'TU_TYPE' => 'integer', 'TU_RELATION' => 'integer');
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE');
+ $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID);
+ $oCriteria->addSelectColumn(TaskUserPeer::USR_UID);
+ $oCriteria->addSelectColumn(TaskUserPeer::TU_TYPE);
+ $oCriteria->addSelectColumn(TaskUserPeer::TU_RELATION);
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(TaskUserPeer::USR_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
+ $oCriteria->add(TaskUserPeer::TU_TYPE, $iType);
+ $oCriteria->add(TaskUserPeer::TU_RELATION, 2);
+ $oDataset = TaskUserPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $c = 0;
+ while ($aRow = $oDataset->getRow()) {
+ $c++;
+ $oGroup = new Groupwf ( );
+ $aFields = $oGroup->load($aRow ['USR_UID']);
+ if ($aFields ['GRP_STATUS'] == 'ACTIVE') {
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
+ $oCriteria->add(GroupUserPeer::GRP_UID, $aRow ['USR_UID']);
+ $oDataset2 = GroupUserPeer::doSelectRS($oCriteria);
+ $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset2->next();
+ $aRow2 = $oDataset2->getRow();
+ } else {
+ $aRow2 ['GROUP_INACTIVE'] = '(' . G::LoadTranslation('ID_GROUP_INACTIVE') . ')';
+ }
+ $aUsers [] = array('LABEL' => (!isset($aRow2 ['GROUP_INACTIVE']) ? $aRow ['GRP_TITLE'] . ' (' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')
' : $aRow ['GRP_TITLE'] . ' ' . $aRow2 ['GROUP_INACTIVE']), 'TAS_UID' => $aRow ['TAS_UID'], 'USR_UID' => $aRow ['USR_UID'], 'TU_TYPE' => $aRow ['TU_TYPE'], 'TU_RELATION' => $aRow ['TU_RELATION']);
+ $oDataset->next();
+ }
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
+ $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
+ $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID);
+ $oCriteria->addSelectColumn(TaskUserPeer::USR_UID);
+ $oCriteria->addSelectColumn(TaskUserPeer::TU_TYPE);
+ $oCriteria->addSelectColumn(TaskUserPeer::TU_RELATION);
+ $oCriteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
+ $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
+ $oCriteria->add(TaskUserPeer::TU_TYPE, $iType);
+ $oCriteria->add(TaskUserPeer::TU_RELATION, 1);
+ $oDataset = TaskUserPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $aUsers [] = array('LABEL' => $aRow ['USR_FIRSTNAME'] . ' ' . $aRow ['USR_LASTNAME'], 'TAS_UID' => $aRow ['TAS_UID'], 'USR_UID' => $aRow ['USR_UID'], 'TU_TYPE' => $aRow ['TU_TYPE'], 'TU_RELATION' => $aRow ['TU_RELATION']);
+ $oDataset->next();
+ }
+ global $_DBArray;
+ $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
+ $_DBArray ['taskUsers'] = $aUsers;
+ $_SESSION ['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('taskUsers');
+ $oCriteria->addDescendingOrderByColumn(TaskUserPeer::TU_RELATION);
+ $oCriteria->addAscendingOrderByColumn('LABEL');
+ return $oCriteria;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
@@ -5820,8 +5894,8 @@ class processMap {
$G_PUBLISH = new Publisher ( );
$oTask = new Task ( );
$aTask = $oTask->load($sTaskUID);
-
- $this->getExtTaskUsersCriteria ( $sTaskUID, $_SESSION ['iType'] );
+ //$assignedUsers = getExtTaskUsersCriteria($sTaskUID, $_SESSION ['iType']);
+ $this->getExtTaskUsersAdHocCriteria ( $sTaskUID, $_SESSION ['iType'] );
return $_SESSION ['_DBArray']['taskUsers'];
} catch ( Exception $oError ) {
diff --git a/workflow/engine/methods/bpmn/proxyExtjs.php b/workflow/engine/methods/bpmn/proxyExtjs.php
index af4a81ef3..890698040 100644
--- a/workflow/engine/methods/bpmn/proxyExtjs.php
+++ b/workflow/engine/methods/bpmn/proxyExtjs.php
@@ -171,6 +171,7 @@ switch($_GET['action'])
case 'availableUsers':
$rows = $oProcessMap->getExtAvailableUsersList($_GET['tid']);
+ array_shift($rows);
break;
case 'assignedUsers':
diff --git a/workflow/engine/methods/users/users_Ajax.php b/workflow/engine/methods/users/users_Ajax.php
index 8b7a16f55..b2f66fe58 100644
--- a/workflow/engine/methods/users/users_Ajax.php
+++ b/workflow/engine/methods/users/users_Ajax.php
@@ -42,8 +42,15 @@ try {
{
$_POST = $_POST['form'];
}
- $_POST['function'] = get_ajax_value('function');
- switch ($_POST['function'])
+ if(isset($_POST['function']))
+ {$value= $_POST['function'];
+ $value = get_ajax_value('function');}
+ else
+ {$value= $_POST['functions'];
+ $value = get_ajax_value('functions');}
+
+
+ switch ($value)
{
case 'verifyUsername':
//print_r($_POST); die;
diff --git a/workflow/engine/templates/bpmn/ProcessOptions.js b/workflow/engine/templates/bpmn/ProcessOptions.js
index cae5090d5..609b45417 100755
--- a/workflow/engine/templates/bpmn/ProcessOptions.js
+++ b/workflow/engine/templates/bpmn/ProcessOptions.js
@@ -2337,6 +2337,8 @@ var formWindow = new Ext.Window({
success: function(response) {
Ext.MessageBox.alert ('Status','Report Table Edited Successfully.');
}
+
+
});
}
@@ -2346,6 +2348,7 @@ var formWindow = new Ext.Window({
formWindow.close();
reportStore.reload();
+
}
},{
text: 'Cancel',
@@ -2355,5 +2358,6 @@ var formWindow = new Ext.Window({
}
}]
});
+ gridWindow.show();
}
diff --git a/workflow/engine/templates/bpmn/TaskContext.js b/workflow/engine/templates/bpmn/TaskContext.js
index 3a7bd7572..c99be9136 100755
--- a/workflow/engine/templates/bpmn/TaskContext.js
+++ b/workflow/engine/templates/bpmn/TaskContext.js
@@ -1807,6 +1807,29 @@ TaskContext.prototype.editUsersAdHoc= function(_5625)
var editor = new Ext.ux.grid.RowEditor({
saveText: 'Update'
});
+ var taskUsers = new Ext.data.JsonStore({
+ root : 'data',
+ totalProperty: 'totalCount',
+ idProperty : 'gridIndex',
+ remoteSort : true,
+ fields : userFields,
+ proxy: new Ext.data.HttpProxy({
+ url: 'proxyExtjs?pid='+pro_uid+'&tid='+taskId+'&action=assignedUsers'
+ })
+ });
+ //taskUsers.setDefaultSort('LABEL', 'asc');
+ taskUsers.load();
+
+ // create the Data Store of users that are not assigned to a task
+ var storeUsers = new Ext.data.JsonStore({
+ root : 'data',
+ url : 'proxyExtjs?tid='+taskId+'&action=availableUsers',
+ totalProperty : 'totalCount',
+ idProperty : 'gridIndex',
+ remoteSort : false, //true,
+ autoLoad : true,
+ fields : userFields
+ });
var btnAdd = new Ext.Button({
@@ -1834,8 +1857,11 @@ TaskContext.prototype.editUsersAdHoc= function(_5625)
grid.getView().refresh();
//grid.getSelectionModel().selectRow(0);
editor.startEditing(0, 0);
+
}
- }
+
+ }
+
});
var btnRemove = new Ext.Button({
@@ -1889,29 +1915,7 @@ TaskContext.prototype.editUsersAdHoc= function(_5625)
});
// create the Data Store of users that are already assigned to a task
- var taskUsers = new Ext.data.JsonStore({
- root : 'data',
- totalProperty: 'totalCount',
- idProperty : 'gridIndex',
- remoteSort : true,
- fields : userFields,
- proxy: new Ext.data.HttpProxy({
- url: 'proxyExtjs?pid='+pro_uid+'&tid='+taskId+'&action=assignedUsers'
- })
- });
- //taskUsers.setDefaultSort('LABEL', 'asc');
- taskUsers.load();
-
- // create the Data Store of users that are not assigned to a task
- var storeUsers = new Ext.data.JsonStore({
- root : 'data',
- url : 'proxyExtjs?tid='+taskId+'&action=availableUsers',
- totalProperty : 'totalCount',
- idProperty : 'gridIndex',
- remoteSort : false, //true,
- autoLoad : true,
- fields : userFields
- });
+
var grid = new Ext.grid.GridPanel({
@@ -1941,7 +1945,7 @@ TaskContext.prototype.editUsersAdHoc= function(_5625)
fieldLabel: 'Users_groups',
hiddenName: 'number',
store : storeUsers,
- displayField : 'LABEL' ,
+ displayField : 'LABEL',
valueField : 'LABEL',
name : 'LABEL',
scope : _5625,
@@ -1991,13 +1995,22 @@ TaskContext.prototype.editUsersAdHoc= function(_5625)
var userId = record.data.USR_UID;
var tu_Type = record.data.TU_TYPE;
var tu_Relation = record.data.TU_RELATION;
- var urlparams = '?action=assign&data={"TAS_UID":"'+taskId+'","USR_UID":"'+userId+'","TU_TYPE":"'+tu_Type+'","TU_RELATION":"'+tu_Relation+'"}';
+ ///var urlparams = '?action=assign&data={"TAS_UID":"'+taskId+'","USR_UID":"'+userId+'","TU_TYPE":"'+tu_Type+'","TU_RELATION":"'+tu_Relation+'"}';
Ext.Ajax.request({
- url: 'processes_Ajax.php' +urlparams ,
+ url: '../users/users_Ajax.php',
+ METHOD:'post',
success: function (response) { // When saving data success
Ext.MessageBox.alert ('Status','User has been successfully assigned');
},
+ params:{
+ functions : 'assign',
+ TAS_UID : taskId,
+ USR_UID : userId,
+ TU_TYPE : tu_Type,
+ TU_RELATION:tu_Relation
+
+ },
failure: function () { // when saving data failed
Ext.MessageBox.alert ('Status','Failed saving User Assigned to Task');
}
@@ -2009,15 +2022,24 @@ TaskContext.prototype.editUsersAdHoc= function(_5625)
var user_TURel = record.json.TU_RELATION;
var userUID = record.json.USR_UID;
var user_TUtype = record.json.TU_TYPE;
- urlparams = '?action=ofToAssign&data={"TAS_UID":"'+taskId+'","TU_RELATION":"'+user_TURel+'","USR_UID":"'+userUID+'","TU_TYPE":"'+user_TUtype+'"}';
+ //urlparams = '?action=ofToAssign&data={"TAS_UID":"'+taskId+'","TU_RELATION":"'+user_TURel+'","USR_UID":"'+userUID+'","TU_TYPE":"'+user_TUtype+'"}';
Ext.Ajax.request({
- url : 'processes_Ajax.php' +urlparams ,
+ url : '../users/users_Ajax.php',
+ method: 'POST',
success: function(response) {
- //Ext.MessageBox.alert ('Status','User has been updated successfully.');
- }
+ Ext.MessageBox.alert ('Status','User has been updated successfully.');
+ },
+ params:{
+ functions : 'ofToAssign',
+ TAS_UID : taskId,
+ USR_UID : userId,
+ TU_TYPE : tu_Type,
+ TU_RELATION:tu_Relation
+
+ }
});
}
- storeUsers.reload();
+ //storeUsers.reload();
}
});