Departments Manager Ext JS Migration Complete
This commit is contained in:
@@ -670,6 +670,19 @@ class RBAC
|
||||
return $this->rolesObj->getAllUsersByRole();
|
||||
}
|
||||
|
||||
/**
|
||||
* this function gets the number of users by department
|
||||
*
|
||||
*
|
||||
* @access public
|
||||
* @author: Enrique Ponce de Leon <enrique@colosa.com>
|
||||
*
|
||||
* @return $this->rolesObj->getAllUsersByRole
|
||||
*/
|
||||
function getAllUsersByDepartment(){
|
||||
return $this->rolesObj->getAllUsersByDepartment();
|
||||
}
|
||||
|
||||
/**
|
||||
* this function gets roles code
|
||||
*
|
||||
|
||||
@@ -359,6 +359,23 @@ class Roles extends BaseRoles {
|
||||
return $aRoles;
|
||||
}
|
||||
|
||||
//Added by Enrique at Feb 10th, 2011
|
||||
//Gets number of users by department
|
||||
function getAllUsersByDepartment(){
|
||||
$oCriteria = new Criteria('rbac');
|
||||
$oCriteria->addSelectColumn(UsersPeer::DEP_UID);
|
||||
$oCriteria->addSelectColumn('COUNT(*) AS CNT');
|
||||
$oCriteria->addGroupByColumn(UsersPeer::DEP_UID);
|
||||
$oDataset = UsersPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$aDepts = array();
|
||||
while ($oDataset->next()){
|
||||
$row = $oDataset->getRow();
|
||||
$aDepts[$row['DEP_UID']] = $row['CNT'];
|
||||
}
|
||||
return $aDepts;
|
||||
}
|
||||
|
||||
function getRoleUsers($ROL_UID, $filter='') {
|
||||
try {
|
||||
$criteria = new Criteria();
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -22,6 +22,47 @@
|
||||
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
function LookForChildren($parent, $level,$aDepUsers){
|
||||
G::LoadClass('configuration');
|
||||
$conf = new Configurations();
|
||||
$oDept = new Department();
|
||||
$allDepartments = $oDept->getDepartments ( $parent );
|
||||
$level++;
|
||||
$rows = Array();
|
||||
foreach($allDepartments as $department){
|
||||
unset($depto);
|
||||
$depto['DEP_TITLE'] = $department['DEP_TITLE'];
|
||||
$depto['DEP_STATUS'] = $department['DEP_STATUS'];
|
||||
if ($department['DEP_MANAGER_USERNAME']!=''){
|
||||
$depto['DEP_MANAGER_NAME'] = $conf->usersNameFormat($department['DEP_MANAGER_USERNAME'], $department['DEP_MANAGER_FIRSTNAME'], $department['DEP_MANAGER_LASTNAME']);
|
||||
}else{
|
||||
$depto['DEP_MANAGER_NAME'] = '';
|
||||
}
|
||||
$depto['DEP_TOTAL_USERS'] = isset($aDepUsers[$department['DEP_UID']])? $aDepUsers[$department['DEP_UID']] : 0;
|
||||
$depto['DEP_UID'] = $department['DEP_UID'];
|
||||
$depto['DEP_MANAGER'] = $department['DEP_MANAGER'];
|
||||
$depto['DEP_PARENT'] = $department['DEP_PARENT'];
|
||||
if ($department['HAS_CHILDREN'] > 0){
|
||||
$depto['children'] = LookForChildren($department['DEP_UID'], $level, $aDepUsers);
|
||||
$depto['iconCls'] = 'ss_sprite ss_chart_organisation';
|
||||
$depto['expanded'] = true;
|
||||
}else{
|
||||
$depto['leaf'] = true;
|
||||
if ($level==1){
|
||||
$depto['iconCls'] = 'ss_sprite ss_chart_organisation';
|
||||
}else{
|
||||
$depto['iconCls'] = 'ss_sprite ss_plugin';
|
||||
}
|
||||
}
|
||||
|
||||
$rows[] = $depto;
|
||||
}
|
||||
return $rows;
|
||||
}
|
||||
|
||||
|
||||
if (($RBAC_Response=$RBAC->userCanAccess("PM_USERS"))!=1) return $RBAC_Response;
|
||||
G::LoadInclude('ajax');
|
||||
$_POST['action'] = get_ajax_value('action');
|
||||
@@ -110,5 +151,210 @@ switch ($_POST['action'])
|
||||
G::RenderPage('publish', 'raw');
|
||||
|
||||
break;
|
||||
|
||||
case 'departmentList':
|
||||
global $RBAC;
|
||||
$aDEPTS = $RBAC->getAllUsersByDepartment();
|
||||
$tree_depart = LookForChildren('', 0,$aDEPTS);
|
||||
echo G::json_encode($tree_depart);
|
||||
break;
|
||||
case 'checkDepartmentName':
|
||||
$parent = $_REQUEST['parent'];
|
||||
$dep_name = $_REQUEST['name'];
|
||||
|
||||
$oCriteria = new Criteria('workflow');
|
||||
|
||||
$oCriteria->clearSelectColumns();
|
||||
$oCriteria->addSelectColumn( ContentPeer::CON_CATEGORY );
|
||||
$oCriteria->addSelectColumn( ContentPeer::CON_VALUE );
|
||||
$oCriteria->addSelectColumn(DepartmentPeer::DEP_PARENT);
|
||||
$oCriteria->add(ContentPeer::CON_CATEGORY, 'DEPO_TITLE');
|
||||
$oCriteria->addJoin(ContentPeer::CON_ID, DepartmentPeer::DEP_UID, Criteria::LEFT_JOIN);
|
||||
$oCriteria->add(ContentPeer::CON_VALUE, $dep_name);
|
||||
$oCriteria->add(ContentPeer::CON_LANG, SYS_LANG );
|
||||
$oCriteria->add(DepartmentPeer::DEP_PARENT,$parent);
|
||||
|
||||
$oDataset = DepartmentPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
echo (!$aRow) ? 'true' : 'false';
|
||||
break;
|
||||
case 'checkEditDepartmentName':
|
||||
$parent = $_REQUEST['parent'];
|
||||
$dep_name = $_REQUEST['name'];
|
||||
$dep_uid = $_REQUEST['uid'];
|
||||
|
||||
$oCriteria = new Criteria('workflow');
|
||||
$oCriteria->clearSelectColumns();
|
||||
$oCriteria->addSelectColumn( ContentPeer::CON_CATEGORY );
|
||||
$oCriteria->addSelectColumn( ContentPeer::CON_VALUE );
|
||||
$oCriteria->addSelectColumn(DepartmentPeer::DEP_PARENT);
|
||||
$oCriteria->add(ContentPeer::CON_CATEGORY, 'DEPO_TITLE');
|
||||
$oCriteria->addJoin(ContentPeer::CON_ID, DepartmentPeer::DEP_UID, Criteria::LEFT_JOIN);
|
||||
$oCriteria->add(ContentPeer::CON_VALUE, $dep_name);
|
||||
$oCriteria->add(DepartmentPeer::DEP_UID,$dep_uid,Criteria::NOT_EQUAL);
|
||||
$oCriteria->add(ContentPeer::CON_LANG, SYS_LANG );
|
||||
$oCriteria->add(DepartmentPeer::DEP_PARENT,$parent);
|
||||
|
||||
$oDataset = DepartmentPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
echo (!$aRow) ? 'true' : 'false';
|
||||
break;
|
||||
|
||||
case 'saveDepartment':
|
||||
$parent = $_REQUEST['parent'];
|
||||
$dep_name = $_REQUEST['name'];
|
||||
$newDepartment['DEP_PARENT'] = $parent;
|
||||
$newDepartment['DEP_TITLE'] = $dep_name;
|
||||
$oDept = new Department();
|
||||
$oDept->create($newDepartment);
|
||||
echo '{success: true}';
|
||||
break;
|
||||
case 'usersByDepartment':
|
||||
G::LoadClass ( 'configuration' );
|
||||
$sDepUid = $_REQUEST['DEP_UID'];
|
||||
$oCriteria = new Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_REPORTS_TO);
|
||||
$oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
|
||||
$oCriteria->add(UsersPeer::DEP_UID, $sDepUid);
|
||||
|
||||
$oDataset = DepartmentPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$rows = Array();
|
||||
|
||||
$conf = new Configurations();
|
||||
|
||||
while ($oDataset->next()){
|
||||
$aRow = $oDataset->getRow();
|
||||
$user['USR_UID'] = $aRow['USR_UID'];
|
||||
$user['USR_VALUE'] = $conf->usersNameFormat($aRow['USR_USERNAME'], $aRow['USR_FIRSTNAME'], $aRow['USR_LASTNAME']);
|
||||
$rows[] = $user;
|
||||
}
|
||||
|
||||
echo '{users: '.G::json_encode($rows).'}';
|
||||
break;
|
||||
case 'updateDepartment':
|
||||
try{
|
||||
$dep_name = $_REQUEST['name'];
|
||||
echo $dep_name;
|
||||
$dep_uid = $_REQUEST['uid'];
|
||||
$dep_manager = $_REQUEST['manager'];
|
||||
$dep_status = $_REQUEST['status'];
|
||||
$editDepartment['DEP_UID'] = $dep_uid;
|
||||
$editDepartment['DEPO_TITLE'] = $dep_name;
|
||||
$editDepartment['DEP_STATUS'] = $dep_status;
|
||||
$editDepartment['DEP_MANAGER'] = $dep_manager;
|
||||
$oDept = new Department();
|
||||
$oDept->update($editDepartment);
|
||||
$oDept->updateDepartmentManager($dep_uid);
|
||||
echo '{success: true}';
|
||||
}catch(exception $e){
|
||||
echo '{success: false}';
|
||||
}
|
||||
break;
|
||||
case 'canDeleteDepartment':
|
||||
global $RBAC;
|
||||
$aDEPTS = $RBAC->getAllUsersByDepartment();
|
||||
if (isset($aDEPTS[$_POST['dep_uid']])){
|
||||
echo '{success: false, users: '.$aDEPTS[$_POST['dep_uid']].'}';
|
||||
}else{
|
||||
echo '{success: true}';
|
||||
}
|
||||
break;
|
||||
case 'deleteDepartment':
|
||||
$DEP_UID = $_POST['DEP_UID'];
|
||||
$oDept = new Department();
|
||||
$oDept->remove($DEP_UID);
|
||||
echo '{success: true}';
|
||||
break;
|
||||
case 'assignedUsers':
|
||||
$filter = isset($_POST['textFilter']) ? $_POST['textFilter'] : '';
|
||||
$dep_uid = $_REQUEST['dUID'];
|
||||
$oCriteria = new Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
|
||||
if ($filter!=''){
|
||||
$oCriteria->add(
|
||||
$oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%',Criteria::LIKE)->addOr(
|
||||
$oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%',Criteria::LIKE)->addOr(
|
||||
$oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%',Criteria::LIKE)))
|
||||
);
|
||||
}
|
||||
$oCriteria->add(UsersPeer::DEP_UID,$dep_uid);
|
||||
$oDataset = UsersPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$aUsers = array();
|
||||
while ($oDataset->next()){
|
||||
$aUsers[] = $oDataset->getRow();
|
||||
}
|
||||
echo '{users:'.G::json_encode($aUsers).'}';
|
||||
break;
|
||||
case 'availableUsers':
|
||||
$filter = isset($_POST['textFilter']) ? $_POST['textFilter'] : '';
|
||||
$dep_uid = $_REQUEST['dUID'];
|
||||
$oCriteria = new Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
|
||||
$oCriteria->add(UsersPeer::DEP_UID,'');
|
||||
$oCriteria->add(UsersPeer::USR_STATUS,'CLOSED',Criteria::NOT_EQUAL);
|
||||
|
||||
if ($filter!=''){
|
||||
$oCriteria->add(
|
||||
$oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%',Criteria::LIKE)->addOr(
|
||||
$oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%',Criteria::LIKE)->addOr(
|
||||
$oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%',Criteria::LIKE)))
|
||||
);
|
||||
}
|
||||
$oDataset = UsersPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$aUsers = array();
|
||||
while ($oDataset->next()){
|
||||
$aUsers[] = $oDataset->getRow();
|
||||
}
|
||||
echo '{users:'.G::json_encode($aUsers).'}';
|
||||
break;
|
||||
case 'assignDepartmentToUserMultiple':
|
||||
$DEP_UID = $_REQUEST['DEP_UID'];
|
||||
$uSERS = $_REQUEST['USR_UID'];
|
||||
$aUsers = explode(',',$uSERS);
|
||||
$dep = new Department();
|
||||
$dep->Load($DEP_UID);
|
||||
$dep_manager = $dep->getDepManager();
|
||||
$manager = ($dep_manager=='')? true : false;
|
||||
foreach ($aUsers as $USR_UID){
|
||||
$dep->addUserToDepartment($DEP_UID, $USR_UID, $manager, false);
|
||||
$manager = false;
|
||||
}
|
||||
$dep->updateDepartmentManager($DEP_UID);
|
||||
break;
|
||||
case 'deleteDepartmentToUserMultiple':
|
||||
$DEP_UID = $_REQUEST['DEP_UID'];
|
||||
$uSERS = $_REQUEST['USR_UID'];
|
||||
$aUsers = explode(',',$uSERS);
|
||||
$dep = new Department();
|
||||
$dep->Load($DEP_UID);
|
||||
$manager = $dep->getDepManager();
|
||||
foreach ($aUsers as $USR_UID){
|
||||
$dep->removeUserFromDepartment($DEP_UID, $USR_UID);
|
||||
if ($USR_UID==$manager){
|
||||
$editDepto['DEP_UID'] = $DEP_UID;
|
||||
$editDepto['DEP_MANAGER'] = '';
|
||||
$dep->update($editDepto);
|
||||
$dep->updateDepartmentManager($DEP_UID);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
3
workflow/engine/templates/departments/departmentList.html
Executable file
3
workflow/engine/templates/departments/departmentList.html
Executable file
@@ -0,0 +1,3 @@
|
||||
<div style="padding: 15px">
|
||||
<div id="list-panel"></div>
|
||||
</div>
|
||||
435
workflow/engine/templates/departments/departmentList.js
Executable file
435
workflow/engine/templates/departments/departmentList.js
Executable file
File diff suppressed because it is too large
Load Diff
4
workflow/engine/templates/departments/departmentUsers.html
Executable file
4
workflow/engine/templates/departments/departmentUsers.html
Executable file
@@ -0,0 +1,4 @@
|
||||
<div style="padding: 15px">
|
||||
<div id="list-panel"></div>
|
||||
</div>
|
||||
|
||||
478
workflow/engine/templates/departments/departmentUsers.js
Executable file
478
workflow/engine/templates/departments/departmentUsers.js
Executable file
File diff suppressed because it is too large
Load Diff
@@ -48,6 +48,9 @@
|
||||
$template->assign( 'ADD_UNASSIGNEDUSER', G::loadTranslation("ID_UNASSIGNED_USERS") );
|
||||
|
||||
$htmlDpto = lookforchildren( '' , 0);
|
||||
|
||||
print_r($htmlDpto);
|
||||
die;
|
||||
|
||||
$content = $template->getOutputContent();
|
||||
print $content;
|
||||
|
||||
Reference in New Issue
Block a user