Completed Users and groups (Ad-Hoc part) in ExtJS

This commit is contained in:
safan
2011-01-10 13:16:06 +00:00
parent 3ce95f44c5
commit 9d877b2e74
5 changed files with 147 additions and 39 deletions

View File

@@ -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'] = '<strong>(' . G::LoadTranslation('ID_GROUP_INACTIVE') . ')</strong>';
}
$aUsers [] = array('LABEL' => (!isset($aRow2 ['GROUP_INACTIVE']) ? $aRow ['GRP_TITLE'] . ' <a href="#" onclick="usersGroup(\'' . $aRow ['USR_UID'] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>' : $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 ) {

View File

@@ -171,6 +171,7 @@ switch($_GET['action'])
case 'availableUsers':
$rows = $oProcessMap->getExtAvailableUsersList($_GET['tid']);
array_shift($rows);
break;
case 'assignedUsers':

View File

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

View File

@@ -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();
}

View File

@@ -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();
}
});