users assignment (continue)

This commit is contained in:
Erik Amaru Ortiz
2011-02-22 23:22:50 +00:00
parent ea617b4f07
commit 282c491797
5 changed files with 601 additions and 195 deletions

View File

@@ -147,4 +147,61 @@ class TaskUser extends BaseTaskUser {
return $aRows;
}
//erik: new functions
function getUsersTask($TAS_UID, $TU_TYPE=1){
require_once 'classes/model/Users.php';
$groupsTask = array();
$usersTask = array();
//getting task's users
$criteria = new Criteria('workflow');
$criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
$criteria->addSelectColumn(UsersPeer::USR_USERNAME);
$criteria->addSelectColumn(TaskUserPeer::TAS_UID);
$criteria->addSelectColumn(TaskUserPeer::USR_UID);
$criteria->addSelectColumn(TaskUserPeer::TU_TYPE);
$criteria->addSelectColumn(TaskUserPeer::TU_RELATION);
$criteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
$criteria->add(TaskUserPeer::TAS_UID, $TAS_UID);
$criteria->add(TaskUserPeer::TU_TYPE, $TU_TYPE);
$criteria->add(TaskUserPeer::TU_RELATION, 1);
$dataset = TaskUserPeer::doSelectRS($criteria);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($dataset->next())
$usersTask[] = $dataset->getRow();
//getting task's groups
$delimiter = DBAdapter::getStringDelimiter ();
$criteria = new Criteria('workflow');
$criteria->addAsColumn('GRP_TITLE', 'CONTENT.CON_VALUE');
$criteria->addSelectColumn(TaskUserPeer::TAS_UID);
$criteria->addSelectColumn(TaskUserPeer::USR_UID);
$criteria->addSelectColumn(TaskUserPeer::TU_TYPE);
$criteria->addSelectColumn(TaskUserPeer::TU_RELATION);
$aConditions[] = array(TaskUserPeer::USR_UID, 'CONTENT.CON_ID');
$aConditions[] = array('CONTENT.CON_CATEGORY', $delimiter . 'GRP_TITLE' . $delimiter);
$aConditions[] = array('CONTENT.CON_LANG', $delimiter . SYS_LANG . $delimiter);
$criteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
$criteria->add(TaskUserPeer::TAS_UID, $TAS_UID);
$criteria->add(TaskUserPeer::TU_TYPE, $TU_TYPE);
$criteria->add(TaskUserPeer::TU_RELATION, 2);
$dataset = TaskUserPeer::doSelectRS($criteria);
$dataset = TaskUserPeer::doSelectRS($criteria);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while( $dataset->next() )
$usersTask[] = $dataset->getRow();
$result->data = $usersTask;
$result->totalCount = sizeof($usersTask);
return $result;
}
} // TaskUser

View File

@@ -150,12 +150,10 @@ class Ajax
{
require_once 'classes/model/Users.php';
G::LoadClass('configuration');
$search = isset($params['search']) ? $params['search']: null;
$users = Users::getAll($params['start'], $params['limit'], $search);
$conf = new Configurations;
$search = isset($params['search']) ? $params['search']: null;
$users = Users::getAll($params['start'], $params['limit'], $search);
foreach($users->data as $i=>$user){
$users->data[$i]['USER'] = $conf->getEnvSetting(
@@ -178,7 +176,125 @@ class Ajax
print G::json_encode($groups);
}
function assignUsersTask($param)
{
try{
require_once 'classes/model/TaskUser.php';
$oTaskUser = new TaskUser();
$UIDS = explode(',', $param['UIDS']);
$TU_TYPE = 1;
foreach( $UIDS as $UID ) {
if ($_POST['TU_RELATION'] == 1 )
$oTaskUser->create(array('TAS_UID' => $param['TAS_UID'], 'USR_UID' => $UID, 'TU_TYPE' => $TU_TYPE, 'TU_RELATION' => 1));
else
$oTaskUser->create(array('TAS_UID' => $param['TAS_UID'], 'USR_UID' => $UID, 'TU_TYPE' => $TU_TYPE, 'TU_RELATION' => 2));
}
$result->success = true;
$result->msg = '';
} catch(Exception $e){
$result->success = false;
$result->msg = $e->getMessage();
}
print G::json_encode($result);
}
function removeUsersTask($param)
{
try{
require_once 'classes/model/TaskUser.php';
$oTaskUser = new TaskUser();
$USR_UIDS = explode(',', $param['USR_UID']);
$TU_RELATIONS = explode(',', $param['TU_RELATION']);
$TU_TYPE = 1;
foreach($USR_UIDS as $i=>$USR_UID) {
if ($TU_RELATIONS[$i] == 1 ){
$oTaskUser->remove($param['TAS_UID'], $USR_UID, $TU_TYPE, 1);
} else {
$oTaskUser->remove($param['TAS_UID'], $USR_UID, $TU_TYPE, 2);
}
}
$result->success = true;
$result->msg = '';
} catch(Exception $e){
$result->success = false;
$result->msg = "{$TU_RELATIONS[$i]} - {$param['TAS_UID']}, {$USR_UIDS[$i]}, $TU_TYPE, 1 --> " . $e->getMessage();
}
print G::json_encode($result);
}
function getUsersTask($param)
{
require_once 'classes/model/TaskUser.php';
G::LoadClass('configuration');
$usersTaskList = Array();
$task = new TaskUser;
$conf = new Configurations;
$TU_TYPE = 1;
$usersTask = $task->getUsersTask($param['TAS_UID'], $TU_TYPE);
foreach($usersTask->data as $userTask) {
$usersTaskListItem['TAS_UID'] = $userTask['TAS_UID'];
if( $userTask['TU_RELATION'] == 1 )
$usersTaskListItem['NAME'] = $conf->getEnvSetting(
'format',
Array(
'userName'=>$userTask['USR_USERNAME'],
'firstName'=>$userTask['USR_FIRSTNAME'],
'lastName'=>$userTask['USR_LASTNAME']
)
);
else
$usersTaskListItem['NAME'] = $userTask['GRP_TITLE'];
$usersTaskListItem['TU_RELATION'] = $userTask['TU_RELATION'];
$usersTaskListItem['USR_UID'] = $userTask['USR_UID'];
$usersTaskList[] = $usersTaskListItem;
}
$result->data = $usersTaskList;
$result->totalCount = $usersTask->totalCount;
print G::json_encode($result);
}
function getProcessDetail($param){
require_once 'classes/model/Process.php';
$PRO_UID = $param['PRO_UID'];
G::loadClass('tasks');
$tasks = new Tasks();
$process = ProcessPeer::retrieveByPk($PRO_UID);
$tasksList = $tasks->getAllTasks($PRO_UID);
$rootNode->id = $process->getProUid();
$rootNode->text = $process->getProTitle();
$rootNode->leaf = false;
$rootNode->expanded =true;
foreach($tasksList as $task) {
$node = new stdClass;
$node->id = $task['TAS_UID'];
$node->text = $task['TAS_TITLE'];
$node->leaf = true;
$rootNode->children[] = $node;
}
$treeDetail[] = $rootNode;
print G::json_encode($treeDetail);
}
}

View File

@@ -225,6 +225,8 @@ Figure.prototype.onDragend=function() {
case 'bpmnSubProcess':
currObj.actiontype = 'saveTaskPosition';
currObj.workflow.savePosition(currObj);
break;
case 'bpmnAnnotation':
currObj.actiontype = 'saveTextPosition';
@@ -969,8 +971,9 @@ bpmnTask.prototype.onDoubleClick = function () {
* erik: Setting task target to Drop user & group assignment
*/
bpmnTask.prototype.onMouseEnter = function () {
if( this.type == 'bpmnTask' && typeof(Ext.getCmp('usersPanel')) != 'undefined' )
Ext.getCmp('usersPanel')._targetTask = this.id;
if( this.type == 'bpmnTask' && typeof Ext.getCmp('usersPanel') != 'undefined' ) {
Ext.getCmp('usersPanel')._targetTask = {id: this.id, name: this.taskName};
}
};
bpmnTask.prototype.trim = function (str) {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff