diff --git a/workflow/engine/methods/groups/groups_Ajax.php b/workflow/engine/methods/groups/groups_Ajax.php index 598d9f9a4..ca2913fff 100644 --- a/workflow/engine/methods/groups/groups_Ajax.php +++ b/workflow/engine/methods/groups/groups_Ajax.php @@ -168,7 +168,7 @@ switch ($_POST['action']) G::LoadClass('groups'); $newGroup['GRP_UID'] = ''; $newGroup['GRP_STATUS'] = G::toUpper($_POST['status']); - $newGroup['GRP_TITLE'] = $_POST['name']; + $newGroup['GRP_TITLE'] = trim($_POST['name']); unset($newGroup['GRP_UID']); $group = new Groupwf(); $group->create($newGroup); @@ -178,7 +178,7 @@ switch ($_POST['action']) G::LoadClass('groups'); $editGroup['GRP_UID'] = $_POST['grp_uid']; $editGroup['GRP_STATUS'] = G::toUpper($_POST['status']); - $editGroup['GRP_TITLE'] = $_POST['name']; + $editGroup['GRP_TITLE'] = trim($_POST['name']); $group = new Groupwf(); $group->update($editGroup); echo '{success: true}'; diff --git a/workflow/engine/methods/processCategory/processCategory_Ajax.php b/workflow/engine/methods/processCategory/processCategory_Ajax.php index 04bb6bc1a..fc714425a 100755 --- a/workflow/engine/methods/processCategory/processCategory_Ajax.php +++ b/workflow/engine/methods/processCategory/processCategory_Ajax.php @@ -99,7 +99,7 @@ if(isset($_REQUEST['action'])) { case 'saveNewCategory': try{ require_once 'classes/model/ProcessCategory.php'; - $catName = $_REQUEST['category']; + $catName = trim($_REQUEST['category']); $pcat = new ProcessCategory(); $pcat->setNew(true); $pcat->setCategoryUid(G::GenerateUniqueID()); @@ -129,7 +129,7 @@ if(isset($_REQUEST['action'])) { try{ require_once 'classes/model/ProcessCategory.php'; $catUID = $_REQUEST['cat_uid']; - $catName = $_REQUEST['category']; + $catName = trim($_REQUEST['category']); $pcat = new ProcessCategory(); $pcat->setNew(false); $pcat->setCategoryUid($catUID); diff --git a/workflow/engine/methods/roles/roles_Ajax.php b/workflow/engine/methods/roles/roles_Ajax.php index a3413c96f..da4ed0a80 100644 --- a/workflow/engine/methods/roles/roles_Ajax.php +++ b/workflow/engine/methods/roles/roles_Ajax.php @@ -24,296 +24,308 @@ */ $REQUEST = (isset($_GET['request']))?$_GET['request']:$_POST['request']; - + switch ($REQUEST) { - case 'newRole': - $G_PUBLISH = new Publisher(); - $G_PUBLISH->AddContent('xmlform', 'xmlform', 'roles/roles_New', '', ''); - G::RenderPage('publish', 'raw'); - break; + case 'newRole': + $G_PUBLISH = new Publisher(); + $G_PUBLISH->AddContent('xmlform', 'xmlform', 'roles/roles_New', '', ''); + G::RenderPage('publish', 'raw'); + break; - case 'saveNewRole': - $newid = md5($_POST['code'].date("d-M-Y_H:i:s")); - $aData['ROL_UID'] = $newid; - //$aData['ROL_PARENT'] = $_POST['parent']; - $aData['ROL_SYSTEM'] = '00000000000000000000000000000002'; - $aData['ROL_CODE'] = $_POST['code']; - $aData['ROL_NAME'] = $_POST['name']; - $aData['ROL_CREATE_DATE'] = date("Y-M-d H:i:s"); - $aData['ROL_UPDATE_DATE'] = date("Y-M-d H:i:s"); - $aData['ROL_STATUS'] = $_POST['status']; - $oCriteria = $RBAC->createRole($aData); - echo '{success: true}'; - break; - - case 'editRole': - - $ROL_UID = $_GET['ROL_UID']; - $aFields = $RBAC->loadById($ROL_UID); - - $G_PUBLISH = new Publisher(); - $G_PUBLISH->AddContent('xmlform', 'xmlform', 'roles/roles_Edit', '', $aFields); - G::RenderPage('publish', 'raw'); - break; - - case 'updateRole': - - $aData['ROL_UID'] = $_POST['rol_uid']; - //$aData['ROL_PARENT'] = $_POST['parent']; - $aData['ROL_CODE'] = $_POST['code']; - $aData['ROL_NAME'] = $_POST['name']; - $aData['ROL_UPDATE_DATE'] = date("Y-M-d H:i:s"); - $aData['ROL_STATUS'] = $_POST['status']; - $oCriteria = $RBAC->updateRole($aData); - echo '{success: true}'; - break; + case 'saveNewRole': + $newid = md5($_POST['code'].date("d-M-Y_H:i:s")); + $aData['ROL_UID'] = $newid; + //$aData['ROL_PARENT'] = $_POST['parent']; + $aData['ROL_SYSTEM'] = '00000000000000000000000000000002'; + $aData['ROL_CODE'] = trim($_POST['code']); + $aData['ROL_NAME'] = $_POST['name']; + $aData['ROL_CREATE_DATE'] = date("Y-M-d H:i:s"); + $aData['ROL_UPDATE_DATE'] = date("Y-M-d H:i:s"); + $aData['ROL_STATUS'] = $_POST['status']; + $oCriteria = $RBAC->createRole($aData); + echo '{success: true}'; + break; - case 'show': - G::LoadClass('ArrayPeer'); - $aRoles = $RBAC->getAllRoles(); - - $fields = Array( + case 'editRole': + + $ROL_UID = $_GET['ROL_UID']; + $aFields = $RBAC->loadById($ROL_UID); + + $G_PUBLISH = new Publisher(); + $G_PUBLISH->AddContent('xmlform', 'xmlform', 'roles/roles_Edit', '', $aFields); + G::RenderPage('publish', 'raw'); + break; + + case 'updateRole': + + $aData['ROL_UID'] = $_POST['rol_uid']; + //$aData['ROL_PARENT'] = $_POST['parent']; + $aData['ROL_CODE'] = trim($_POST['code']); + $aData['ROL_NAME'] = $_POST['name']; + $aData['ROL_UPDATE_DATE'] = date("Y-M-d H:i:s"); + $aData['ROL_STATUS'] = $_POST['status']; + $oCriteria = $RBAC->updateRole($aData); + echo '{success: true}'; + break; + + case 'show': + G::LoadClass('ArrayPeer'); + $aRoles = $RBAC->getAllRoles(); + + $fields = Array( 'ROL_UID'=>'char', 'ROL_PARENT'=>'char', 'ROL_SYSTEM'=>'char', 'ROL_CREATE_DATE'=>'char', 'ROL_UPDATE_DATE'=>'char', 'ROL_STATUS'=>'char' - ); - - $rows = array_merge(Array($fields), $aRoles); - - global $_DBArray; - $_DBArray['virtual_roles'] = $rows; - $oCriteria = new Criteria('dbarray'); - $oCriteria->setDBArrayTable('virtual_roles'); - - $G_PUBLISH = new Publisher; - $G_PUBLISH->AddContent('propeltable', 'paged-table', 'roles/roles_List', $oCriteria); - G::RenderPage('publish', 'raw'); - break; - - case 'deleteRole': - $oCriteria = $RBAC->removeRole($_POST['ROL_UID']); - break; - - case 'canDeleteRole': - - if($RBAC->numUsersWithRole($_POST['ROL_UID']) == 0){ - echo 'true'; - } else { - echo 'false'; - } - - break; + ); - case 'verifyNewRole': - $response = ($RBAC->verifyNewRole($_POST['code']))?'true':'false'; - print($response); - break; - - case 'updateDataRole': - require_once 'classes/model/om/BaseRoles.php'; - require_once 'classes/model/Content.php'; - $oCriteria = new Criteria('rbac'); - $oCriteria->addSelectColumn(RolesPeer::ROL_UID); - $oCriteria->addSelectColumn(RolesPeer::ROL_PARENT); - $oCriteria->addSelectColumn(RolesPeer::ROL_SYSTEM); - $oCriteria->addSelectColumn(RolesPeer::ROL_CODE); - $oCriteria->addSelectColumn(RolesPeer::ROL_CREATE_DATE); - $oCriteria->addSelectColumn(RolesPeer::ROL_UPDATE_DATE); - $oCriteria->addSelectColumn(RolesPeer::ROL_STATUS); - $oCriteria->add(RolesPeer::ROL_CODE, $_GET['code']); - - $result = RolesPeer::doSelectRS($oCriteria); - $result->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $result->next(); - $row = $result->getRow(); - - $oCriteria1 = new Criteria('workflow'); - $oCriteria1->add(ContentPeer::CON_CATEGORY, 'ROL_NAME'); - $oCriteria1->add(ContentPeer::CON_ID, $row['ROL_UID']); - $oCriteria1->add(ContentPeer::CON_LANG, SYS_LANG); - $oDataset1 = ContentPeer::doSelectRS($oCriteria1); - $oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $oDataset1->next(); - $aRow1 = $oDataset1->getRow(); - $row['ROL_NAME'] = $aRow1['CON_VALUE']; - $row['ROL_UPDATE_DATE'] = date("Y-M-d H:i:s"); + $rows = array_merge(Array($fields), $aRoles); + + global $_DBArray; + $_DBArray['virtual_roles'] = $rows; + $oCriteria = new Criteria('dbarray'); + $oCriteria->setDBArrayTable('virtual_roles'); + + $G_PUBLISH = new Publisher; + $G_PUBLISH->AddContent('propeltable', 'paged-table', 'roles/roles_List', $oCriteria); + G::RenderPage('publish', 'raw'); + break; + + case 'deleteRole': + $oCriteria = $RBAC->removeRole($_POST['ROL_UID']); + break; + + case 'canDeleteRole': + + if($RBAC->numUsersWithRole($_POST['ROL_UID']) == 0){ + echo 'true'; + } else { + echo 'false'; + } + + break; + + case 'verifyNewRole': + $response = ($RBAC->verifyNewRole($_POST['code']))?'true':'false'; + print($response); + break; + + case 'updateDataRole': + require_once 'classes/model/om/BaseRoles.php'; + require_once 'classes/model/Content.php'; + $oCriteria = new Criteria('rbac'); + $oCriteria->addSelectColumn(RolesPeer::ROL_UID); + $oCriteria->addSelectColumn(RolesPeer::ROL_PARENT); + $oCriteria->addSelectColumn(RolesPeer::ROL_SYSTEM); + $oCriteria->addSelectColumn(RolesPeer::ROL_CODE); + $oCriteria->addSelectColumn(RolesPeer::ROL_CREATE_DATE); + $oCriteria->addSelectColumn(RolesPeer::ROL_UPDATE_DATE); + $oCriteria->addSelectColumn(RolesPeer::ROL_STATUS); + $oCriteria->add(RolesPeer::ROL_CODE, $_GET['code']); + + $result = RolesPeer::doSelectRS($oCriteria); + $result->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $result->next(); + $row = $result->getRow(); + + $oCriteria1 = new Criteria('workflow'); + $oCriteria1->add(ContentPeer::CON_CATEGORY, 'ROL_NAME'); + $oCriteria1->add(ContentPeer::CON_ID, $row['ROL_UID']); + $oCriteria1->add(ContentPeer::CON_LANG, SYS_LANG); + $oDataset1 = ContentPeer::doSelectRS($oCriteria1); + $oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $oDataset1->next(); + $aRow1 = $oDataset1->getRow(); + $row['ROL_NAME'] = $aRow1['CON_VALUE']; + $row['ROL_UPDATE_DATE'] = date("Y-M-d H:i:s"); + + $RBAC->updateRole($row); + //$response = ($RBAC->verifyNewRole($_GET['code']))?'true':'false'; + + break; + + case 'usersIntoRole': + + $_GET['ROL_UID'] = (isset($_GET['ROL_UID']))?$_GET['ROL_UID']:$_POST['ROL_UID']; + $G_PUBLISH = new Publisher; + $G_PUBLISH->AddContent('view', 'roles/roles_Tree' ); + G::RenderPage('publish', 'raw'); + break; - $RBAC->updateRole($row); - //$response = ($RBAC->verifyNewRole($_GET['code']))?'true':'false'; - - break; - - case 'usersIntoRole': - $_GET['ROL_UID'] = (isset($_GET['ROL_UID']))?$_GET['ROL_UID']:$_POST['ROL_UID']; - $G_PUBLISH = new Publisher; - $G_PUBLISH->AddContent('view', 'roles/roles_Tree' ); - G::RenderPage('publish', 'raw'); - break; - - - case 'deleteUserRole': - $USR_UID = $_POST['USR_UID']; - $ROL_UID = $_POST['ROL_UID']; - $RBAC->deleteUserRole($ROL_UID, $USR_UID); - - $_GET['ROL_UID'] = $ROL_UID; - $G_PUBLISH = new Publisher; - $G_PUBLISH->AddContent('view', 'roles/roles_Tree' ); - G::RenderPage('publish', 'raw'); - break; - - case 'showUsers': - $ROL_UID = $_POST['ROL_UID']; - $_GET['ROL_UID'] = $ROL_UID; - $G_PUBLISH = new Publisher; - $G_PUBLISH->AddContent('view', 'roles/roles_AssignRole' ); - G::RenderPage('publish', 'raw'); - break; - - case 'showPermissions': - $ROL_UID = $_POST['ROL_UID']; - $_GET['ROL_UID'] = $ROL_UID; - $G_PUBLISH = new Publisher; - $G_PUBLISH->AddContent('view', 'roles/roles_AssignPermissions' ); - G::RenderPage('publish', 'raw'); - break; - - case 'assignUserToRole': + case 'deleteUserRole': + $USR_UID = $_POST['USR_UID']; + $ROL_UID = $_POST['ROL_UID']; + $RBAC->deleteUserRole($ROL_UID, $USR_UID); + + $_GET['ROL_UID'] = $ROL_UID; + $G_PUBLISH = new Publisher; + $G_PUBLISH->AddContent('view', 'roles/roles_Tree' ); + G::RenderPage('publish', 'raw'); + break; + + case 'showUsers': + $ROL_UID = $_POST['ROL_UID']; + $_GET['ROL_UID'] = $ROL_UID; + $G_PUBLISH = new Publisher; + $G_PUBLISH->AddContent('view', 'roles/roles_AssignRole' ); + G::RenderPage('publish', 'raw'); + break; - $ROL_UID = $_POST['ROL_UID']; - $aUserIuds = explode(",",$_POST['aUsers']); - foreach($aUserIuds as $key=>$val){ - $sData['USR_UID'] = $val; - $sData['ROL_UID'] = $ROL_UID; - $RBAC->assignUserToRole($sData); - } + case 'showPermissions': + $ROL_UID = $_POST['ROL_UID']; + $_GET['ROL_UID'] = $ROL_UID; + $G_PUBLISH = new Publisher; + $G_PUBLISH->AddContent('view', 'roles/roles_AssignPermissions' ); + G::RenderPage('publish', 'raw'); + break; -// $_GET['ROL_UID'] = $ROL_UID; -// $G_PUBLISH = new Publisher; -// $G_PUBLISH->AddContent('view', 'roles/roles_Tree' ); -// G::RenderPage('publish', 'raw'); - break; - - case 'assignPermissionToRole': - $USR_UID = $_POST['PER_UID']; - $ROL_UID = $_POST['ROL_UID']; - $sData['PER_UID'] = $USR_UID; - $sData['ROL_UID'] = $ROL_UID; - $RBAC->assignPermissionRole($sData); - -// $_GET['ROL_UID'] = $ROL_UID; -// $G_PUBLISH = new Publisher; -// $G_PUBLISH->AddContent('view', 'roles/roles_permissionsTree' ); -// G::RenderPage('publish', 'raw'); - break; - - case 'viewPermitions': - - $_GET['ROL_UID'] = (isset($_GET['ROL_UID']))?$_GET['ROL_UID']:$_POST['ROL_UID']; - $G_PUBLISH = new Publisher; - $G_PUBLISH->AddContent('view', 'roles/roles_permissionsTree' ); - G::RenderPage('publish', 'raw'); - break; - - case 'deletePermissionRole': - $PER_UID = $_POST['PER_UID']; - $ROL_UID = $_POST['ROL_UID']; - $RBAC->deletePermissionRole($ROL_UID, $PER_UID); - - $_GET['ROL_UID'] = $ROL_UID; - $G_PUBLISH = new Publisher; - $G_PUBLISH->AddContent('view', 'roles/roles_permissionsTree'); - G::RenderPage('publish', 'raw'); - break; - - case 'assignPermissionToRoleMultiple': - $USR_UID = $_POST['PER_UID']; - $ROL_UID = $_POST['ROL_UID']; - $arrPer = explode(',',$USR_UID); - foreach ($arrPer as $PER_UID){ - unset($sData); - $sData['PER_UID'] = $PER_UID; - $sData['ROL_UID'] = $ROL_UID; - $RBAC->assignPermissionRole($sData); - } - break; - - case 'deletePermissionToRoleMultiple': - $USR_UID = $_POST['PER_UID']; - $ROL_UID = $_POST['ROL_UID']; - $arrPer = explode(',',$USR_UID); - foreach ($arrPer as $PER_UID){ - $RBAC->deletePermissionRole($ROL_UID, $PER_UID); - } - break; - case 'deleteUserRoleMultiple': - $USR_UID = $_POST['USR_UID']; - $ROL_UID = $_POST['ROL_UID']; - $arrUsers = explode(',',$USR_UID); - foreach ($arrUsers as $aUID){ - $RBAC->deleteUserRole($ROL_UID, $aUID); - } - break; - case 'rolesList': - require_once (PATH_RBAC . "model/RolesPeer.php"); - require_once ("classes/model/Content.php"); - G::LoadClass('configuration'); - $co = new Configurations(); - $config = $co->getConfiguration('rolesList', 'pageSize','',$_SESSION['USER_LOGGED']); - $limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20; - - $start = isset($_POST['start']) ? $_POST['start'] : 0; - $limit = isset($_POST['limit']) ? $_POST['limit'] : $limit_size; - $filter = isset($_REQUEST['textFilter'])? $_REQUEST['textFilter'] : ''; + case 'assignUserToRole': - - global $RBAC; - $Criterias = $RBAC->getAllRolesFilter($start,$limit,$filter); - - $rs = RolesPeer::DoSelectRs($Criterias['LIST']); - $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); - - $content = new Content(); - $rNames = $content->getAllContentsByRole(); - $aUsers = $RBAC->getAllUsersByRole(); - - $aRows = Array(); - while($rs->next()){ - $aRows[] = $rs->getRow(); - $index = sizeof($aRows)-1; - $aRows[$index]['ROL_NAME'] = isset($rNames[$aRows[$index]['ROL_UID']])? $rNames[$aRows[$index]['ROL_UID']] : ''; - $aRows[$index]['TOTAL_USERS'] = isset($aUsers[$aRows[$index]['ROL_UID']])? $aUsers[$aRows[$index]['ROL_UID']] : 0; - } - - $oData = RolesPeer::doSelectRS($Criterias['COUNTER']); - $oData->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $oData->next(); - $row = $oData->getRow(); - $total_roles = $row['CNT']; - - echo '{roles: '.G::json_encode($aRows).', total_roles: '.$total_roles.'}'; - break; - case 'updatePageSize': - G::LoadClass('configuration'); - $c = new Configurations(); - $arr['pageSize'] = $_REQUEST['size']; - $arr['dateSave'] = date('Y-m-d H:i:s'); - $config = Array(); - $config[] = $arr; - $c->aConfig = $config; - $c->saveConfig('rolesList', 'pageSize','',$_SESSION['USER_LOGGED']); - echo '{success: true}'; - break; + $ROL_UID = $_POST['ROL_UID']; + $aUserIuds = explode(",",$_POST['aUsers']); + foreach($aUserIuds as $key=>$val){ + $sData['USR_UID'] = $val; + $sData['ROL_UID'] = $ROL_UID; + $RBAC->assignUserToRole($sData); + } - - - default: echo 'default'; + // $_GET['ROL_UID'] = $ROL_UID; + // $G_PUBLISH = new Publisher; + // $G_PUBLISH->AddContent('view', 'roles/roles_Tree' ); + // G::RenderPage('publish', 'raw'); + break; + + case 'assignPermissionToRole': + $USR_UID = $_POST['PER_UID']; + $ROL_UID = $_POST['ROL_UID']; + $sData['PER_UID'] = $USR_UID; + $sData['ROL_UID'] = $ROL_UID; + $RBAC->assignPermissionRole($sData); + + // $_GET['ROL_UID'] = $ROL_UID; + // $G_PUBLISH = new Publisher; + // $G_PUBLISH->AddContent('view', 'roles/roles_permissionsTree' ); + // G::RenderPage('publish', 'raw'); + break; + + case 'viewPermitions': + + $_GET['ROL_UID'] = (isset($_GET['ROL_UID']))?$_GET['ROL_UID']:$_POST['ROL_UID']; + $G_PUBLISH = new Publisher; + $G_PUBLISH->AddContent('view', 'roles/roles_permissionsTree' ); + G::RenderPage('publish', 'raw'); + break; + + case 'deletePermissionRole': + $PER_UID = $_POST['PER_UID']; + $ROL_UID = $_POST['ROL_UID']; + $RBAC->deletePermissionRole($ROL_UID, $PER_UID); + + $_GET['ROL_UID'] = $ROL_UID; + $G_PUBLISH = new Publisher; + $G_PUBLISH->AddContent('view', 'roles/roles_permissionsTree'); + G::RenderPage('publish', 'raw'); + break; + + case 'assignPermissionToRoleMultiple': + $USR_UID = $_POST['PER_UID']; + $ROL_UID = $_POST['ROL_UID']; + $arrPer = explode(',',$USR_UID); + foreach ($arrPer as $PER_UID){ + unset($sData); + $sData['PER_UID'] = $PER_UID; + $sData['ROL_UID'] = $ROL_UID; + $RBAC->assignPermissionRole($sData); + } + break; + + case 'deletePermissionToRoleMultiple': + $USR_UID = $_POST['PER_UID']; + $ROL_UID = $_POST['ROL_UID']; + $arrPer = explode(',',$USR_UID); + foreach ($arrPer as $PER_UID){ + $RBAC->deletePermissionRole($ROL_UID, $PER_UID); + } + break; + case 'deleteUserRoleMultiple': + $USR_UID = $_POST['USR_UID']; + $ROL_UID = $_POST['ROL_UID']; + $arrUsers = explode(',',$USR_UID); + foreach ($arrUsers as $aUID){ + $RBAC->deleteUserRole($ROL_UID, $aUID); + } + break; + case 'rolesList': + require_once (PATH_RBAC . "model/RolesPeer.php"); + require_once ("classes/model/Content.php"); + G::LoadClass('configuration'); + $co = new Configurations(); + $config = $co->getConfiguration('rolesList', 'pageSize','',$_SESSION['USER_LOGGED']); + $limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20; + + $start = isset($_POST['start']) ? $_POST['start'] : 0; + $limit = isset($_POST['limit']) ? $_POST['limit'] : $limit_size; + $filter = isset($_REQUEST['textFilter'])? $_REQUEST['textFilter'] : ''; + + + global $RBAC; + $Criterias = $RBAC->getAllRolesFilter($start,$limit,$filter); + + $rs = RolesPeer::DoSelectRs($Criterias['LIST']); + $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + $content = new Content(); + $rNames = $content->getAllContentsByRole(); + $aUsers = $RBAC->getAllUsersByRole(); + + $aRows = Array(); + while($rs->next()){ + $aRows[] = $rs->getRow(); + $index = sizeof($aRows)-1; + $aRows[$index]['ROL_NAME'] = isset($rNames[$aRows[$index]['ROL_UID']])? $rNames[$aRows[$index]['ROL_UID']] : ''; + $aRows[$index]['TOTAL_USERS'] = isset($aUsers[$aRows[$index]['ROL_UID']])? $aUsers[$aRows[$index]['ROL_UID']] : 0; + } + + $oData = RolesPeer::doSelectRS($Criterias['COUNTER']); + $oData->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $oData->next(); + $row = $oData->getRow(); + $total_roles = $row['CNT']; + + echo '{roles: '.G::json_encode($aRows).', total_roles: '.$total_roles.'}'; + break; + case 'updatePageSize': + G::LoadClass('configuration'); + $c = new Configurations(); + $arr['pageSize'] = $_REQUEST['size']; + $arr['dateSave'] = date('Y-m-d H:i:s'); + $config = Array(); + $config[] = $arr; + $c->aConfig = $config; + $c->saveConfig('rolesList', 'pageSize','',$_SESSION['USER_LOGGED']); + echo '{success: true}'; + break; + case 'checkRoleCode': + $rol_code = $_POST['ROL_CODE']; + $oCriteria = new Criteria('rbac'); + $oCriteria->addSelectColumn(RolesPeer::ROL_UID); + $oCriteria->add(RolesPeer::ROL_CODE, $rol_code); + $oDataset = RolesPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + if ($oDataset->next()){ + $response = 'false'; + }else{ + $response = 'true'; + } + echo '{success:'.$response.'}'; + break; + + default: echo 'default'; } diff --git a/workflow/engine/templates/departments/departmentList.js b/workflow/engine/templates/departments/departmentList.js index 6e789a3d2..86e18bb42 100755 --- a/workflow/engine/templates/departments/departmentList.js +++ b/workflow/engine/templates/departments/departmentList.js @@ -4,238 +4,236 @@ */ //Keyboard Events -new Ext.KeyMap(document, { - key: Ext.EventObject.F5, - fn: function(keycode, e) { - if (! e.ctrlKey) { - if (Ext.isIE) { - // IE6 doesn't allow cancellation of the F5 key, so trick it into - // thinking some other key was pressed (backspace in this case) - e.browserEvent.keyCode = 8; - } - e.stopEvent(); - document.location = document.location; - }else{ - Ext.Msg.alert('Refresh', 'You clicked: CTRL-F5'); - } - } -} -//, -//{ -// key: Ext.EventObject.DELETE, -// fn: function(k,e){ -// var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); -// //if (typeof dep_node != 'undefined') -// //if(dep_node.attributes.leaf){ -// DeleteDepartmentAction(); -// //} -// } -//} +new Ext.KeyMap(document, + [ + { + key: Ext.EventObject.F5, + fn: function(keycode, e) { + if (! e.ctrlKey) { + if (Ext.isIE) { + // IE6 doesn't allow cancellation of the F5 key, so trick it into + // thinking some other key was pressed (backspace in this case) + e.browserEvent.keyCode = 8; + } + e.stopEvent(); + document.location = document.location; + }else{ + Ext.Msg.alert('Refresh', 'You clicked: CTRL-F5'); + } + } + }, + { + key: Ext.EventObject.DELETE, + fn: function(k,e){ DeleteDepartmentAction();} + }, + { + key: Ext.EventObject.F2, + fn: function(k,e){ EditDepartmentAction(); } + } + ] ); var treePanel; var rootNode; +var w; Ext.onReady(function() { - Ext.QuickTips.init(); - - newButton = new Ext.Action({ - text: _('ID_NEW_DEPARTMENT'), - iconCls: ' button_menu_ext ss_sprite ss_add', - handler: NewRootDepartment - }); - - newSubButton = new Ext.Action({ - text: _('ID_NEW_SUB_DEPARTMENT'), - iconCls: ' button_menu_ext ss_sprite ss_add', - handler: NewSubDepartment, - disabled: true - }); - - editButton = new Ext.Action({ - text: _('ID_EDIT'), - iconCls: 'button_menu_ext ss_sprite ss_pencil', - handler: EditDepartmentAction, - disabled: true - }); + Ext.QuickTips.init(); - deleteButton = new Ext.Action({ - text: _('ID_DELETE'), - iconCls: 'button_menu_ext ss_sprite ss_delete', - handler: DeleteDepartmentAction, - disabled: true - }); - - usersButton = new Ext.Action({ - text: _('ID_USERS'), - iconCls: 'button_menu_ext ss_sprite ss_user_add', - handler: UsersButtonAction, - disabled: true - }); - - contextMenu = new Ext.menu.Menu({ - items: [newSubButton,'-',editButton, deleteButton,'-',usersButton] - }); - - smodel = new Ext.tree.DefaultSelectionModel({ - listeners:{ - selectionchange: function(sm, node){ - editButton.enable(); - newSubButton.enable(); - usersButton.enable(); - if (!node){ - deleteButton.disable(); - }else{ - if (node.attributes.leaf){ - deleteButton.enable(); - }else{ - deleteButton.disable(); - } - } - //var tree = Ext.getCmp('treePanel'); - //alert(treePanel.getRootNode()); - } - } - }); - - comboStatusStore = new Ext.data.SimpleStore({ - fields: ['id','value'], - data: [['ACTIVE',_('ID_ACTIVE')],['INACTIVE',_('ID_INACTIVE')]] - }); - - comboDepManager = new Ext.data.GroupingStore( { - proxy : new Ext.data.HttpProxy({ - url: 'departments_Ajax?action=usersByDepartment' - }), - reader : new Ext.data.JsonReader( { - root: 'users', - fields : [ - {name : 'USR_UID'}, - {name : 'USR_VALUE'} - ] - }) - }); - - newForm = new Ext.FormPanel({ - url: 'departments_Ajax?request=saveNewDepartment', - frame: true, - items:[ - {xtype: 'textfield', name: 'parent', hidden: true}, - {xtype: 'textfield', fieldLabel: _('ID_DEPARTMENT_NAME'), name: 'dep_name', width: 230, allowBlank: false} - ], - buttons: [ - {text: _('ID_SAVE'), handler: SaveNewDepartment}, - {text: _('ID_CANCEL'), handler: CloseWindow} - - ], - labelWidth: 120 - }); - - editForm = new Ext.FormPanel({ - url: 'departments_Ajax?request=saveEditDepartment', - frame: true, - items:[ - {xtype: 'textfield', name: 'dep_uid', hidden: true}, - {xtype: 'textfield', name: 'dep_parent', hidden: true}, - {xtype: 'textfield', fieldLabel: _('ID_DEPARTMENT_NAME'), name: 'dep_name', width: 230, allowBlank: false}, - { - xtype: 'combo', - fieldLabel: _('ID_STATUS'), - hiddenName: 'status', - typeAhead: true, - mode: 'local', - store: comboStatusStore, - displayField: 'value', - valueField:'id', - allowBlank: false, - triggerAction: 'all', - emptyText: _('ID_SELECT_STATUS'), - selectOnFocus:true - } - , - { - xtype: 'combo', - fieldLabel: 'Manager', - hiddenName: 'manager', - typeAhead: true, - mode: 'local', - store: comboDepManager, - displayField: 'USR_VALUE', - valueField:'USR_UID', - allowBlank: true, - triggerAction: 'all', - emptyText: '', - selectOnFocus:true - } - ], - buttons: [ - {text: _('ID_SAVE'), handler: SaveEditDepartment}, - {text: _('ID_CANCEL'), handler: CloseWindow} - ], - labelWidth: 120 - }); - - rootNode = new Ext.tree.AsyncTreeNode({ - text:'Departments' - }); - - - treePanel = new Ext.ux.tree.TreeGrid({ - title: _('ID_DEPARTMENTS'), - autoScroll: true, - width: 720, - height: 300, - id: 'treePanel', - columns:[{ - header: _('ID_DEPARTMENT_NAME'), - dataIndex: 'DEP_TITLE', - width: 320 - },{ - header: _('ID_STATUS'), - width: 100, - dataIndex: 'DEP_STATUS', - align: 'center', - tpl: new Ext.XTemplate('{DEP_STATUS:this.formatStatus}', { - formatStatus: function(v) { - switch(v){ - case 'ACTIVE': return '' + _('ID_ACTIVE') + ''; break; - case 'INACTIVE': return '' + _('ID_INACTIVE') + ''; break; - } - } - }) - },{ - header: _('ID_MANAGER'), - width: 220, - dataIndex: 'DEP_MANAGER_NAME' - },{ - header: _('ID_USERS'), - width: 80, - dataIndex: 'DEP_TOTAL_USERS', - align: 'center', - sortType: 'asFloat' + newButton = new Ext.Action({ + text: _('ID_NEW_DEPARTMENT'), + iconCls: ' button_menu_ext ss_sprite ss_add', + handler: NewRootDepartment + }); + + newSubButton = new Ext.Action({ + text: _('ID_NEW_SUB_DEPARTMENT'), + iconCls: ' button_menu_ext ss_sprite ss_add', + handler: NewSubDepartment, + disabled: true + }); + + editButton = new Ext.Action({ + text: _('ID_EDIT'), + iconCls: 'button_menu_ext ss_sprite ss_pencil', + handler: EditDepartmentAction, + disabled: true + }); + + deleteButton = new Ext.Action({ + text: _('ID_DELETE'), + iconCls: 'button_menu_ext ss_sprite ss_delete', + handler: DeleteDepartmentAction, + disabled: true + }); + + usersButton = new Ext.Action({ + text: _('ID_USERS'), + iconCls: 'button_menu_ext ss_sprite ss_user_add', + handler: UsersButtonAction, + disabled: true + }); + + contextMenu = new Ext.menu.Menu({ + items: [newSubButton,'-',editButton, deleteButton,'-',usersButton] + }); + + smodel = new Ext.tree.DefaultSelectionModel({ + listeners:{ + selectionchange: function(sm, node){ + editButton.enable(); + newSubButton.enable(); + usersButton.enable(); + if (!node){ + deleteButton.disable(); + }else{ + if (node.attributes.leaf){ + deleteButton.enable(); + }else{ + deleteButton.disable(); + } } - ], - selModel: smodel, - tbar: [newButton,'-',newSubButton,'-',editButton, deleteButton,'-',usersButton], - dataUrl:'departments_Ajax?action=departmentList', - root: rootNode - }); - - treePanel.on('contextmenu', treeContextHandler); - - viewport = new Ext.Viewport({ - layout: 'fit', - autoScroll: false, - items: [treePanel] - }); - + } + } + }); + + comboStatusStore = new Ext.data.SimpleStore({ + fields: ['id','value'], + data: [['ACTIVE',_('ID_ACTIVE')],['INACTIVE',_('ID_INACTIVE')]] + }); + + comboDepManager = new Ext.data.GroupingStore( { + proxy : new Ext.data.HttpProxy({ + url: 'departments_Ajax?action=usersByDepartment' + }), + reader : new Ext.data.JsonReader( { + root: 'users', + fields : [ + {name : 'USR_UID'}, + {name : 'USR_VALUE'} + ] + }) + }); + + newForm = new Ext.FormPanel({ + url: 'departments_Ajax?request=saveNewDepartment', + frame: true, + items:[ + {xtype: 'textfield', name: 'parent', hidden: true}, + {xtype: 'textfield', fieldLabel: _('ID_DEPARTMENT_NAME'), name: 'dep_name', width: 230, allowBlank: false} + ], + buttons: [ + {text: _('ID_SAVE'), handler: SaveNewDepartment}, + {text: _('ID_CANCEL'), handler: CloseWindow} + + ], + labelWidth: 120 + }); + + editForm = new Ext.FormPanel({ + url: 'departments_Ajax?request=saveEditDepartment', + frame: true, + items:[ + {xtype: 'textfield', name: 'dep_uid', hidden: true}, + {xtype: 'textfield', name: 'dep_parent', hidden: true}, + {xtype: 'textfield', fieldLabel: _('ID_DEPARTMENT_NAME'), name: 'dep_name', width: 230, allowBlank: false}, + { + xtype: 'combo', + fieldLabel: _('ID_STATUS'), + hiddenName: 'status', + typeAhead: true, + mode: 'local', + store: comboStatusStore, + displayField: 'value', + valueField:'id', + allowBlank: false, + triggerAction: 'all', + emptyText: _('ID_SELECT_STATUS'), + selectOnFocus:true + } + , + { + xtype: 'combo', + fieldLabel: 'Manager', + hiddenName: 'manager', + typeAhead: true, + mode: 'local', + store: comboDepManager, + displayField: 'USR_VALUE', + valueField:'USR_UID', + allowBlank: true, + triggerAction: 'all', + emptyText: '', + selectOnFocus:true + } + ], + buttons: [ + {text: _('ID_SAVE'), handler: SaveEditDepartment}, + {text: _('ID_CANCEL'), handler: CloseWindow} + ], + labelWidth: 120 + }); + + rootNode = new Ext.tree.AsyncTreeNode({ + text:'Departments' + }); + + treePanel = new Ext.ux.tree.TreeGrid({ + title: _('ID_DEPARTMENTS'), + autoScroll: true, + width: 720, + height: 300, + id: 'treePanel', + columns:[{ + header: _('ID_DEPARTMENT_NAME'), + dataIndex: 'DEP_TITLE', + width: 320 + },{ + header: _('ID_STATUS'), + width: 100, + dataIndex: 'DEP_STATUS', + align: 'center', + tpl: new Ext.XTemplate('{DEP_STATUS:this.formatStatus}', { + formatStatus: function(v) { + switch(v){ + case 'ACTIVE': return '' + _('ID_ACTIVE') + ''; break; + case 'INACTIVE': return '' + _('ID_INACTIVE') + ''; break; + } + } + }) + },{ + header: _('ID_MANAGER'), + width: 220, + dataIndex: 'DEP_MANAGER_NAME' + },{ + header: _('ID_USERS'), + width: 80, + dataIndex: 'DEP_TOTAL_USERS', + align: 'center', + sortType: 'asFloat' + } + ], + selModel: smodel, + tbar: [newButton,'-',newSubButton,'-',editButton, deleteButton,'-',usersButton], + dataUrl:'departments_Ajax?action=departmentList', + root: rootNode + }); + + treePanel.on('contextmenu', treeContextHandler); + + viewport = new Ext.Viewport({ + layout: 'fit', + autoScroll: false, + items: [treePanel] + }); + }); //Funtion Handles Context Menu Opening treeContextHandler = function(node, evt){ - node.select(); - var coords = evt.getXY(); - contextMenu.showAt([coords[0], coords[1]]); + node.select(); + var coords = evt.getXY(); + contextMenu.showAt([coords[0], coords[1]]); }; //Do Nothing Function @@ -243,120 +241,125 @@ DoNothing = function(){}; //Call New Department at Root NewRootDepartment = function(){ - newForm.getForm().findField('parent').setValue(''); - w = new Ext.Window({ - title: _('ID_NEW_DEPARTMENT'), - autoHeight: true, - modal: true, - closable: false, - width: 420, - items: [newForm] - }); - w.show(); + newForm.getForm().findField('parent').setValue(''); + w = new Ext.Window({ + title: _('ID_NEW_DEPARTMENT'), + autoHeight: true, + modal: true, + closable: false, + width: 420, + items: [newForm], + id: 'w' + }); + w.show(); }; //Call New Sub Department at Parent NewSubDepartment = function(){ - var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); - newForm.getForm().findField('parent').setValue(dep_node.attributes.DEP_UID); - w = new Ext.Window({ - title: _('ID_NEW_SUB_DEPARTMENT'), - autoHeight: true, - modal: true, - closable: false, - width: 420, - items: [newForm] - }); - w.show(); + var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); + newForm.getForm().findField('parent').setValue(dep_node.attributes.DEP_UID); + w = new Ext.Window({ + title: _('ID_NEW_SUB_DEPARTMENT'), + autoHeight: true, + modal: true, + closable: false, + width: 420, + items: [newForm], + id: 'w' + }); + w.show(); }; //Close PopUp Window CloseWindow = function(){ - w.hide(); + Ext.getCmp('w').hide(); }; -SaveNewDepartment = function(){ - var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); - if (dep_node) dep_node.unselect(); - var dep_name = newForm.getForm().findField('dep_name').getValue(); - var dep_parent = newForm.getForm().findField('parent').getValue(); - Ext.Ajax.request({ - url: 'departments_Ajax', - params: {action: 'checkDepartmentName', name: dep_name, parent: dep_parent}, - success: function(resp, opt){ - var res_ok = eval(resp.responseText); - if (res_ok){ - Ext.Ajax.request({ - url: 'departments_Ajax', - params: {action: 'saveDepartment', name: dep_name, parent: dep_parent}, - success: function(r,o){ - var xtree = Ext.getCmp('treePanel'); - treePanel.getLoader().load(rootNode); - newSubButton.disable(); - editButton.disable(); - deleteButton.disable(); - usersButton.disable(); - newForm.getForm().findField('dep_name').reset(); - w.hide(); - PMExt.notify(_('ID_DEPARTMENTS'), _('ID_DEPARTMENT_SUCCESS_NEW')); - }, - failure: function(r,o){ - DoNothing(); - } - }); - }else{ - PMExt.error(_('ID_DEPARTMENTS'), _('ID_DEPARTMENT_EXISTS')); - } - }, - failure: function(resp, opt){ - DoNothing(); - } - }); +SaveNewDepartment = function(){ + var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); + if (dep_node) dep_node.unselect(); + var dep_name = newForm.getForm().findField('dep_name').getValue(); + dep_name = dep_name.trim(); + if (dep_name=='') return; + var dep_parent = newForm.getForm().findField('parent').getValue(); + Ext.Ajax.request({ + url: 'departments_Ajax', + params: {action: 'checkDepartmentName', name: dep_name, parent: dep_parent}, + success: function(resp, opt){ + var res_ok = eval(resp.responseText); + if (res_ok){ + Ext.Ajax.request({ + url: 'departments_Ajax', + params: {action: 'saveDepartment', name: dep_name, parent: dep_parent}, + success: function(r,o){ + var xtree = Ext.getCmp('treePanel'); + treePanel.getLoader().load(rootNode); + newSubButton.disable(); + editButton.disable(); + deleteButton.disable(); + usersButton.disable(); + newForm.getForm().findField('dep_name').reset(); + CloseWindow(); + PMExt.notify(_('ID_DEPARTMENTS'), _('ID_DEPARTMENT_SUCCESS_NEW')); + }, + failure: function(r,o){ + DoNothing(); + } + }); + }else{ + PMExt.error(_('ID_DEPARTMENTS'), _('ID_DEPARTMENT_EXISTS')); + } + }, + failure: function(resp, opt){ + DoNothing(); + } + }); }; SaveEditDepartment = function(){ - var dep_name = editForm.getForm().findField('dep_name').getValue(); - var dep_parent = editForm.getForm().findField('dep_parent').getValue(); - var dep_uid = editForm.getForm().findField('dep_uid').getValue(); - var dep_status = editForm.getForm().findField('status').getValue(); - var dep_manager = editForm.getForm().findField('manager').getValue(); - var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); - if (dep_node) dep_node.unselect(); - Ext.Ajax.request({ - url: 'departments_Ajax', - params: {action: 'checkEditDepartmentName', name: dep_name, parent: dep_parent, uid: dep_uid}, - success: function(resp, opt){ - var res_ok = eval(resp.responseText); - if (res_ok){ - Ext.Ajax.request({ - url: 'departments_Ajax', - params: {action: 'updateDepartment', uid: dep_uid, name: dep_name, status: dep_status, manager: dep_manager}, - success: function(r,o){ - var xtree = Ext.getCmp('treePanel'); - xtree.getLoader().load(xtree.root); - newSubButton.disable(); - editButton.disable(); - deleteButton.disable(); - usersButton.disable(); - newForm.getForm().findField('dep_name').reset(); - w.hide(); - PMExt.notify(_('ID_DEPARTMENTS'), _('ID_DEPARTMENT_SUCCESS_UPDATE')); - }, - failure: function(r,o){ - DoNothing(); - } - }); - }else{ - PMExt.error(_('ID_DEPARTMENTS'), _('ID_DEPARTMENT_EXISTS')); - } - }, - failure: function(resp, opt){ - DoNothing(); - } - }); + var dep_name = editForm.getForm().findField('dep_name').getValue(); + dep_name = dep_name.trim(); + if (dep_name=='') return; + var dep_parent = editForm.getForm().findField('dep_parent').getValue(); + var dep_uid = editForm.getForm().findField('dep_uid').getValue(); + var dep_status = editForm.getForm().findField('status').getValue(); + var dep_manager = editForm.getForm().findField('manager').getValue(); + var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); + if (dep_node) dep_node.unselect(); + Ext.Ajax.request({ + url: 'departments_Ajax', + params: {action: 'checkEditDepartmentName', name: dep_name, parent: dep_parent, uid: dep_uid}, + success: function(resp, opt){ + var res_ok = eval(resp.responseText); + if (res_ok){ + Ext.Ajax.request({ + url: 'departments_Ajax', + params: {action: 'updateDepartment', uid: dep_uid, name: dep_name, status: dep_status, manager: dep_manager}, + success: function(r,o){ + var xtree = Ext.getCmp('treePanel'); + xtree.getLoader().load(xtree.root); + newSubButton.disable(); + editButton.disable(); + deleteButton.disable(); + usersButton.disable(); + newForm.getForm().findField('dep_name').reset(); + CloseWindow(); + PMExt.notify(_('ID_DEPARTMENTS'), _('ID_DEPARTMENT_SUCCESS_UPDATE')); + }, + failure: function(r,o){ + DoNothing(); + } + }); + }else{ + PMExt.error(_('ID_DEPARTMENTS'), _('ID_DEPARTMENT_EXISTS')); + } + }, + failure: function(resp, opt){ + DoNothing(); + } + }); }; - //Edit Department Action EditDepartmentAction = function(){ var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); @@ -365,71 +368,73 @@ EditDepartmentAction = function(){ editForm.getForm().findField('dep_name').setValue(dep_node.attributes.DEP_TITLE); editForm.getForm().findField('status').setValue(dep_node.attributes.DEP_STATUS); editForm.getForm().findField('manager').getStore().addListener('load',function(s,r,o){ - editForm.getForm().findField('manager').setValue(dep_node.attributes.DEP_MANAGER); + editForm.getForm().findField('manager').setValue(dep_node.attributes.DEP_MANAGER); }); editForm.getForm().findField('manager').store.load({params: {DEP_UID: dep_node.attributes.DEP_UID }}); w = new Ext.Window({ - title: _('ID_EDIT_DEPARTMENT'), - autoHeight: true, - modal: true, - closable: false, - width: 420, - items: [editForm] + title: _('ID_EDIT_DEPARTMENT'), + autoHeight: true, + modal: true, + closable: false, + width: 420, + items: [editForm], + id: 'w' }); w.show(); }; //Delete Department Action DeleteDepartmentAction = function(){ - var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); - var DEP_UID = dep_node.attributes.DEP_UID; - if (dep_node) dep_node.unselect(); - viewport.getEl().mask(_('ID_PROCESSING')); - Ext.Ajax.request({ - url: 'departments_Ajax', - params: {action: 'canDeleteDepartment', dep_uid: DEP_UID }, - success: function(r,o){ - viewport.getEl().unmask(); - var response = Ext.util.JSON.decode(r.responseText); - if (response.success){ - - Ext.Msg.confirm(_('ID_DEPARTMENTS'), _('ID_CONFIRM_DELETE_DEPARTMENT'), - function(btn, text){ - if (btn=='yes'){ - viewport.getEl().mask(_('ID_PROCESSING')); - Ext.Ajax.request({ - url: 'departments_Ajax', - params: {action: 'deleteDepartment', DEP_UID: DEP_UID}, - success: function(r,o){ - viewport.getEl().unmask(); - treePanel.getRootNode().reload(); - newSubButton.disable(); - editButton.disable(); - deleteButton.disable(); - usersButton.disable(); - PMExt.notify(_('ID_DEPARTMENTS'), _('ID_DEPARTMENT_SUCCESS_DELETE')); - }, - failure: function(r,o){ - viewport.getEl().unmask(); - } - }); - } - }); - - }else{ - PMExt.error(_('ID_DEPARTMENTS'),_('ID_MSG_CANNOT_DELETE_DEPARTMENT')); - } - }, - failure: function(r,o){ - viewport.getEl().unmask(); - - } - }); + var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); + if (!dep_node.attributes.leaf) return; + var DEP_UID = dep_node.attributes.DEP_UID; + if (dep_node) dep_node.unselect(); + viewport.getEl().mask(_('ID_PROCESSING')); + Ext.Ajax.request({ + url: 'departments_Ajax', + params: {action: 'canDeleteDepartment', dep_uid: DEP_UID }, + success: function(r,o){ + viewport.getEl().unmask(); + var response = Ext.util.JSON.decode(r.responseText); + if (response.success){ + + Ext.Msg.confirm(_('ID_DEPARTMENTS'), _('ID_CONFIRM_DELETE_DEPARTMENT'), + function(btn, text){ + if (btn=='yes'){ + viewport.getEl().mask(_('ID_PROCESSING')); + Ext.Ajax.request({ + url: 'departments_Ajax', + params: {action: 'deleteDepartment', DEP_UID: DEP_UID}, + success: function(r,o){ + viewport.getEl().unmask(); + treePanel.getRootNode().reload(); + newSubButton.disable(); + editButton.disable(); + deleteButton.disable(); + usersButton.disable(); + PMExt.notify(_('ID_DEPARTMENTS'), _('ID_DEPARTMENT_SUCCESS_DELETE')); + }, + failure: function(r,o){ + viewport.getEl().unmask(); + } + }); + } + }); + + }else{ + PMExt.error(_('ID_DEPARTMENTS'),_('ID_MSG_CANNOT_DELETE_DEPARTMENT')); + } + }, + failure: function(r,o){ + viewport.getEl().unmask(); + + } + }); }; //User Assined Action UsersButtonAction = function(){ - var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); - var DEP_UID = dep_node.attributes.DEP_UID; - location.href= 'departmentUsers?dUID=' + DEP_UID; + var dep_node = Ext.getCmp('treePanel').getSelectionModel().getSelectedNode(); + var DEP_UID = dep_node.attributes.DEP_UID; + location.href= 'departmentUsers?dUID=' + DEP_UID; }; \ No newline at end of file diff --git a/workflow/engine/templates/groups/groupsList.js b/workflow/engine/templates/groups/groupsList.js index fb578d200..a6b89def4 100755 --- a/workflow/engine/templates/groups/groupsList.js +++ b/workflow/engine/templates/groups/groupsList.js @@ -59,6 +59,7 @@ var searchButton; var searchText; var contextMenu; var pageSize; +var w; Ext.onReady(function(){ Ext.QuickTips.init(); @@ -200,7 +201,7 @@ Ext.onReady(function(){ {text: _('ID_CANCEL'), handler: CloseWindow} ] }); - + store = new Ext.data.GroupingStore( { proxy : new Ext.data.HttpProxy({ url: 'groups_Ajax?action=groupsList' @@ -337,6 +338,7 @@ NewGroupWindow = function(){ title: _('ID_CREATE_GROUP_TITLE'), closable: false, modal: true, + id: 'w', items: [newForm] }); w.show(); @@ -355,7 +357,7 @@ DoSearch = function(){ //Close Popup Window CloseWindow = function(){ - w.hide(); + Ext.getCmp('w').hide(); }; //Check Group Name Availability @@ -379,6 +381,7 @@ CheckGroupName = function(grp_name, function_success, function_failure){ //Save Group Button SaveNewGroupAction = function(){ var group = newForm.getForm().findField('name').getValue(); + group = group.trim(); if (group != '') CheckGroupName(group, SaveNewGroup, DuplicateGroupName); }; @@ -391,7 +394,7 @@ DuplicateGroupName = function(){ SaveNewGroup = function(){ newForm.getForm().submit({ success: function(f,a){ - w.hide(); //Hide popup widow + CloseWindow(); //Hide popup widow newForm.getForm().reset(); //Set empty form to next use searchText.reset(); infoGrid.store.load(); //Reload store grid @@ -421,6 +424,7 @@ EditGroupWindow = function(){ title: _('ID_EDIT_GROUP_TITLE'), closable: false, modal: true, + id: 'w', items: [editForm] }); w.show(); @@ -429,6 +433,7 @@ EditGroupWindow = function(){ //Save Edit Group Button SaveEditGroupAction = function(){ var group = editForm.getForm().findField('name').getValue(); + group = group.trim(); rowSelected = infoGrid.getSelectionModel().getSelected(); if (group != ''){ if (rowSelected.data.CON_VALUE.toUpperCase() == group.toUpperCase()){ @@ -443,7 +448,7 @@ SaveEditGroupAction = function(){ SaveEditGroup = function(){ editForm.getForm().submit({ success: function(f,a){ - w.hide(); //Hide popup widow + CloseWindow(); //Hide popup widow DoSearch(); //Reload store grid editButton.disable(); //Disable Edit Button deleteButton.disable(); //Disable Delete Button diff --git a/workflow/engine/templates/processCategory/processCategoryList.js b/workflow/engine/templates/processCategory/processCategoryList.js index 3339ec882..c38c6a5c5 100755 --- a/workflow/engine/templates/processCategory/processCategoryList.js +++ b/workflow/engine/templates/processCategory/processCategoryList.js @@ -5,43 +5,43 @@ //Keyboard Events new Ext.KeyMap(document, [ - { - key: Ext.EventObject.F5, - fn: function(keycode, e) { - if (! e.ctrlKey) { - if (Ext.isIE) { - // IE6 doesn't allow cancellation of the F5 key, so trick it into - // thinking some other key was pressed (backspace in this case) - e.browserEvent.keyCode = 8; - } - e.stopEvent(); - document.location = document.location; - }else{ - Ext.Msg.alert('Refresh', 'You clicked: CTRL-F5'); - } - } -}, -{ - key: Ext.EventObject.DELETE, - fn: function(k,e){ - iGrid = Ext.getCmp('infoGrid'); - rowSelected = iGrid.getSelectionModel().getSelected(); - if (rowSelected){ - DeleteCategory(); - } - } -}, -{ - key: Ext.EventObject.F2, - fn: function(k,e){ - iGrid = Ext.getCmp('infoGrid'); - rowSelected = iGrid.getSelectionModel().getSelected(); - if (rowSelected){ - EditCategory(); - } - } -} -]); + { + key: Ext.EventObject.F5, + fn: function(keycode, e) { + if (! e.ctrlKey) { + if (Ext.isIE) { + // IE6 doesn't allow cancellation of the F5 key, so trick it into + // thinking some other key was pressed (backspace in this case) + e.browserEvent.keyCode = 8; + } + e.stopEvent(); + document.location = document.location; + }else{ + Ext.Msg.alert('Refresh', 'You clicked: CTRL-F5'); + } + } + }, + { + key: Ext.EventObject.DELETE, + fn: function(k,e){ + iGrid = Ext.getCmp('infoGrid'); + rowSelected = iGrid.getSelectionModel().getSelected(); + if (rowSelected){ + DeleteCategory(); + } + } + }, + { + key: Ext.EventObject.F2, + fn: function(k,e){ + iGrid = Ext.getCmp('infoGrid'); + rowSelected = iGrid.getSelectionModel().getSelected(); + if (rowSelected){ + EditCategory(); + } + } + } + ]); var store; var cmodel; @@ -60,237 +60,237 @@ var comboStatusStore; var editForm; var contextMenu; var w; - + Ext.onReady(function(){ - Ext.QuickTips.init(); - - pageSize = parseInt(CONFIG.pageSize); - - newButton = new Ext.Action({ - text: _('ID_NEW'), - iconCls: 'button_menu_ext ss_sprite ss_add', - handler: NewCategoryWindow - }); - - editButton = new Ext.Action({ - text: _('ID_EDIT'), - iconCls: 'button_menu_ext ss_sprite ss_pencil', - handler: EditCategory, - disabled: true - }); - - deleteButton = new Ext.Action({ - text: _('ID_DELETE'), - iconCls: 'button_menu_ext ss_sprite ss_delete', - handler: DeleteCategory, - disabled: true - }); - - searchButton = new Ext.Action({ - text: _('ID_SEARCH'), - handler: DoSearch - }); - - contextMenu = new Ext.menu.Menu({ - items: [editButton, deleteButton] - }); - - searchText = new Ext.form.TextField ({ - id: 'searchText', - ctCls:'pm_search_text_field', - allowBlank: true, - width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', - listeners: { - specialkey: function(f,e){ - if (e.getKey() == e.ENTER) { - DoSearch(); - } - }, - focus: function(f,e) { - var row = infoGrid.getSelectionModel().getSelected(); - infoGrid.getSelectionModel().deselectRow(infoGrid.getStore().indexOf(row)); - } - } - }); - - clearTextButton = new Ext.Action({ - text: 'X', - ctCls:'pm_search_x_button', - handler: GridByDefault - }); - - newForm = new Ext.FormPanel({ - url: 'processCategory_Ajax?action=saveNewCategory', - frame: true, - items:[ - {xtype: 'textfield', fieldLabel: _('ID_CATEGORY_NAME'), name: 'category', width: 250, allowBlank: false} - ], - buttons: [ - {text: _('ID_SAVE'), handler: SaveNewCategory}, - {text: _('ID_CANCEL'), handler: CloseWindow} - - ] - }); - - editForm = new Ext.FormPanel({ - url: 'processCategory_Ajax?action=updateCategory', - frame: true, - items:[ - {xtype: 'textfield', name: 'cat_uid', hidden: true }, - {xtype: 'textfield', fieldLabel: _('ID_CATEGORY_NAME'), name: 'category', width: 250, allowBlank: false} - ], - buttons: [ - {text: _('ID_SAVE'), handler: UpdateCategory}, - {text: _('ID_CANCEL'), handler: CloseWindow} - ] - }); - - smodel = new Ext.grid.RowSelectionModel({ - singleSelect: true, - listeners:{ - rowselect: function(sm){ - editButton.enable(); - deleteButton.enable(); - }, - rowdeselect: function(sm){ - editButton.disable(); - deleteButton.disable(); - } - } - }); + Ext.QuickTips.init(); - store = new Ext.data.GroupingStore( { - proxy : new Ext.data.HttpProxy({ - url: 'processCategory_Ajax?action=processCategoryList' - }), - reader : new Ext.data.JsonReader( { - root: 'categories', - totalProperty: 'total_categories', - fields : [ - {name : 'CATEGORY_UID'}, - {name : 'CATEGORY_PARENT'}, - {name : 'CATEGORY_NAME'}, - {name : 'CATEGORY_ICON'}, - {name : 'TOTAL_PROCESSES', type:'int'} - ] - }) - }); - - cmodel = new Ext.grid.ColumnModel({ - defaults: { - width: 50, - sortable: true - }, - columns: [ - {id:'CATEGORY_UID', dataIndex: 'CATEGORY_UID', hidden:true, hideable:false}, - {header: _('ID_CATEGORY_NAME'), dataIndex: 'CATEGORY_NAME', width: 500, hidden:false, align:'left'}, - {header: _('ID_PROCESSES'), dataIndex: 'TOTAL_PROCESSES', width: 100, hidden: false, align: 'center'} - ] - }); - - storePageSize = new Ext.data.SimpleStore({ - fields: ['size'], - data: [['20'],['30'],['40'],['50'],['100']], - autoLoad: true - }); - - comboPageSize = new Ext.form.ComboBox({ - typeAhead : false, - mode : 'local', - triggerAction : 'all', - store: storePageSize, - valueField: 'size', - displayField: 'size', - width: 50, - editable: false, - listeners:{ - select: function(c,d,i){ - UpdatePageConfig(d.data['size']); - bbarpaging.pageSize = parseInt(d.data['size']); - bbarpaging.moveFirst(); + pageSize = parseInt(CONFIG.pageSize); + + newButton = new Ext.Action({ + text: _('ID_NEW'), + iconCls: 'button_menu_ext ss_sprite ss_add', + handler: NewCategoryWindow + }); + + editButton = new Ext.Action({ + text: _('ID_EDIT'), + iconCls: 'button_menu_ext ss_sprite ss_pencil', + handler: EditCategory, + disabled: true + }); + + deleteButton = new Ext.Action({ + text: _('ID_DELETE'), + iconCls: 'button_menu_ext ss_sprite ss_delete', + handler: DeleteCategory, + disabled: true + }); + + searchButton = new Ext.Action({ + text: _('ID_SEARCH'), + handler: DoSearch + }); + + contextMenu = new Ext.menu.Menu({ + items: [editButton, deleteButton] + }); + + searchText = new Ext.form.TextField ({ + id: 'searchText', + ctCls:'pm_search_text_field', + allowBlank: true, + width: 150, + emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', + listeners: { + specialkey: function(f,e){ + if (e.getKey() == e.ENTER) { + DoSearch(); } + }, + focus: function(f,e) { + var row = infoGrid.getSelectionModel().getSelected(); + infoGrid.getSelectionModel().deselectRow(infoGrid.getStore().indexOf(row)); } - }); - - comboPageSize.setValue(pageSize); - - bbarpaging = new Ext.PagingToolbar({ - pageSize: pageSize, - store: store, - displayInfo: true, - displayMsg: _('ID_GRID_PAGE_DISPLAYING_CATEGORY_MESSAGE') + '    ', - emptyMsg: _('ID_GRID_PAGE_NO_CATEGORY_MESSAGE'), - items: ['-',_('ID_PAGE_SIZE')+':',comboPageSize] - }); - - infoGrid = new Ext.grid.GridPanel({ - region: 'center', - layout: 'fit', - id: 'infoGrid', - height:100, - autoWidth : true, - stateful : true, - stateId : 'grid', - enableColumnResize: true, - enableHdMenu: true, - frame:false, - //iconCls:'icon-grid', - columnLines: false, - viewConfig: { - forceFit:true - }, - title : _('ID_PROCESS_CATEGORY'), - store: store, - cm: cmodel, - sm: smodel, - tbar: [newButton, '-', editButton, deleteButton, {xtype: 'tbfill'}, searchText,clearTextButton,searchButton], - bbar: bbarpaging, - listeners: { - rowdblclick: EditCategory, - render: function(){ - this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING_GRID')}); - } - }, - view: new Ext.grid.GroupingView({ - forceFit:true, - groupTextTpl: '{text}' - }) - }); - - infoGrid.on('rowcontextmenu', - function (grid, rowIndex, evt) { - var sm = grid.getSelectionModel(); - sm.selectRow(rowIndex, sm.isSelected(rowIndex)); - }, - this - ); - - infoGrid.on('contextmenu', - function (evt) { - evt.preventDefault(); - }, - this - ); - - infoGrid.addListener('rowcontextmenu',onMessageContextMenu,this); + } + }); - infoGrid.store.load(); + clearTextButton = new Ext.Action({ + text: 'X', + ctCls:'pm_search_x_button', + handler: GridByDefault + }); - viewport = new Ext.Viewport({ - layout: 'fit', - autoScroll: false, - items: [ - infoGrid - ] - }); + newForm = new Ext.FormPanel({ + url: 'processCategory_Ajax?action=saveNewCategory', + frame: true, + items:[ + {xtype: 'textfield', fieldLabel: _('ID_CATEGORY_NAME'), name: 'category', width: 250, allowBlank: false} + ], + buttons: [ + {text: _('ID_SAVE'), handler: SaveNewCategory}, + {text: _('ID_CANCEL'), handler: CloseWindow} + + ] + }); + + editForm = new Ext.FormPanel({ + url: 'processCategory_Ajax?action=updateCategory', + frame: true, + items:[ + {xtype: 'textfield', name: 'cat_uid', hidden: true }, + {xtype: 'textfield', fieldLabel: _('ID_CATEGORY_NAME'), name: 'category', width: 250, allowBlank: false} + ], + buttons: [ + {text: _('ID_SAVE'), handler: UpdateCategory}, + {text: _('ID_CANCEL'), handler: CloseWindow} + ] + }); + + smodel = new Ext.grid.RowSelectionModel({ + singleSelect: true, + listeners:{ + rowselect: function(sm){ + editButton.enable(); + deleteButton.enable(); + }, + rowdeselect: function(sm){ + editButton.disable(); + deleteButton.disable(); + } + } + }); + + store = new Ext.data.GroupingStore( { + proxy : new Ext.data.HttpProxy({ + url: 'processCategory_Ajax?action=processCategoryList' + }), + reader : new Ext.data.JsonReader( { + root: 'categories', + totalProperty: 'total_categories', + fields : [ + {name : 'CATEGORY_UID'}, + {name : 'CATEGORY_PARENT'}, + {name : 'CATEGORY_NAME'}, + {name : 'CATEGORY_ICON'}, + {name : 'TOTAL_PROCESSES', type:'int'} + ] + }) + }); + + cmodel = new Ext.grid.ColumnModel({ + defaults: { + width: 50, + sortable: true + }, + columns: [ + {id:'CATEGORY_UID', dataIndex: 'CATEGORY_UID', hidden:true, hideable:false}, + {header: _('ID_CATEGORY_NAME'), dataIndex: 'CATEGORY_NAME', width: 500, hidden:false, align:'left'}, + {header: _('ID_PROCESSES'), dataIndex: 'TOTAL_PROCESSES', width: 100, hidden: false, align: 'center'} + ] + }); + + storePageSize = new Ext.data.SimpleStore({ + fields: ['size'], + data: [['20'],['30'],['40'],['50'],['100']], + autoLoad: true + }); + + comboPageSize = new Ext.form.ComboBox({ + typeAhead : false, + mode : 'local', + triggerAction : 'all', + store: storePageSize, + valueField: 'size', + displayField: 'size', + width: 50, + editable: false, + listeners:{ + select: function(c,d,i){ + UpdatePageConfig(d.data['size']); + bbarpaging.pageSize = parseInt(d.data['size']); + bbarpaging.moveFirst(); + } + } + }); + + comboPageSize.setValue(pageSize); + + bbarpaging = new Ext.PagingToolbar({ + pageSize: pageSize, + store: store, + displayInfo: true, + displayMsg: _('ID_GRID_PAGE_DISPLAYING_CATEGORY_MESSAGE') + '    ', + emptyMsg: _('ID_GRID_PAGE_NO_CATEGORY_MESSAGE'), + items: ['-',_('ID_PAGE_SIZE')+':',comboPageSize] + }); + + infoGrid = new Ext.grid.GridPanel({ + region: 'center', + layout: 'fit', + id: 'infoGrid', + height:100, + autoWidth : true, + stateful : true, + stateId : 'grid', + enableColumnResize: true, + enableHdMenu: true, + frame:false, + //iconCls:'icon-grid', + columnLines: false, + viewConfig: { + forceFit:true + }, + title : _('ID_PROCESS_CATEGORY'), + store: store, + cm: cmodel, + sm: smodel, + tbar: [newButton, '-', editButton, deleteButton, {xtype: 'tbfill'}, searchText,clearTextButton,searchButton], + bbar: bbarpaging, + listeners: { + rowdblclick: EditCategory, + render: function(){ + this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING_GRID')}); + } + }, + view: new Ext.grid.GroupingView({ + forceFit:true, + groupTextTpl: '{text}' + }) + }); + + infoGrid.on('rowcontextmenu', + function (grid, rowIndex, evt) { + var sm = grid.getSelectionModel(); + sm.selectRow(rowIndex, sm.isSelected(rowIndex)); + }, + this + ); + + infoGrid.on('contextmenu', + function (evt) { + evt.preventDefault(); + }, + this + ); + + infoGrid.addListener('rowcontextmenu',onMessageContextMenu,this); + + infoGrid.store.load(); + + viewport = new Ext.Viewport({ + layout: 'fit', + autoScroll: false, + items: [ + infoGrid + ] + }); }); //Funtion Handles Context Menu Opening onMessageContextMenu = function (grid, rowIndex, e) { - e.stopEvent(); - var coords = e.getXY(); - contextMenu.showAt([coords[0], coords[1]]); + e.stopEvent(); + var coords = e.getXY(); + contextMenu.showAt([coords[0], coords[1]]); }; //Do Nothing Function @@ -298,184 +298,192 @@ DoNothing = function(){}; //Open New Category Form NewCategoryWindow = function(){ - w = new Ext.Window({ - title: _('ID_NEW_CATEGORY'), - autoHeight: true, - width: 420, - items: [newForm] - }); - w.show(); + w = new Ext.Window({ + title: _('ID_NEW_CATEGORY'), + autoHeight: true, + width: 420, + items: [newForm], + id: 'w', + model: true + }); + w.show(); }; //Close Popup Window CloseWindow = function(){ - w.hide(); + Ext.getCmp('w').hide(); }; //Save New Category SaveNewCategory = function(){ - catName = newForm.getForm().findField('category').getValue(); - viewport.getEl().mask(_('ID_PROCESSING')); - Ext.Ajax.request({ - url: 'processCategory_Ajax', - params : {action: 'checkCategoryName', cat_name: catName}, - success: function(r,o){ - viewport.getEl().unmask(); - resp = eval(r.responseText); - if (resp){ - viewport.getEl().mask(_('ID_PROCESSING')); - newForm.getForm().submit({ - success: function(f,a){ - viewport.getEl().unmask(); - w.hide(); //Hide popup widow - newForm.getForm().reset(); //Set empty form to next use - searchText.reset(); - infoGrid.store.load(); - response = Ext.decode(a.response.responseText); - if (response.success){ - PMExt.notify(_('ID_PROCESS_CATEGORY'),_('ID_CATEGORY_SUCCESS_NEW')); - }else{ - PMExt.error(_('ID_ERROR'),_('ID_MSG_AJAX_FAILURE')); - } - }, - failure: function(f,a){ - viewport.getEl().unmask(); - switch(a.failureType){ - case Ext.form.Action.CLIENT_INVALID: - //Ext.Msg.alert('New Role Form','Invalid Data'); - break; - } - } - }); - }else{ - PMExt.error(_('ID_PROCESS_CATEGORY'),_('ID_CATEGORY_EXISTS')); - } - }, - failure: function(r,o){ - viewport.getEl().unmask(); - } - }); - + catName = newForm.getForm().findField('category').getValue(); + catName = catName.trim(); + if (catName == '') return; + viewport.getEl().mask(_('ID_PROCESSING')); + Ext.Ajax.request({ + url: 'processCategory_Ajax', + params : {action: 'checkCategoryName', cat_name: catName}, + success: function(r,o){ + viewport.getEl().unmask(); + resp = eval(r.responseText); + if (resp){ + viewport.getEl().mask(_('ID_PROCESSING')); + newForm.getForm().submit({ + success: function(f,a){ + viewport.getEl().unmask(); + CloseWindow(); //Hide popup widow + newForm.getForm().reset(); //Set empty form to next use + searchText.reset(); + infoGrid.store.load(); + response = Ext.decode(a.response.responseText); + if (response.success){ + PMExt.notify(_('ID_PROCESS_CATEGORY'),_('ID_CATEGORY_SUCCESS_NEW')); + }else{ + PMExt.error(_('ID_ERROR'),_('ID_MSG_AJAX_FAILURE')); + } + }, + failure: function(f,a){ + viewport.getEl().unmask(); + switch(a.failureType){ + case Ext.form.Action.CLIENT_INVALID: + //Ext.Msg.alert('New Role Form','Invalid Data'); + break; + } + } + }); + }else{ + PMExt.error(_('ID_PROCESS_CATEGORY'),_('ID_CATEGORY_EXISTS')); + } + }, + failure: function(r,o){ + viewport.getEl().unmask(); + } + }); + }; //Update Selected Role UpdateCategory = function(){ - catUID = editForm.getForm().findField('cat_uid').getValue(); - catName = editForm.getForm().findField('category').getValue(); - viewport.getEl().mask(_('ID_PROCESSING')); - Ext.Ajax.request({ - url: 'processCategory_Ajax', - params : {action: 'checkEditCategoryName', cat_name: catName, cat_uid: catUID}, - success: function(r,o){ - viewport.getEl().unmask(); - resp = eval(r.responseText); - if (resp){ - viewport.getEl().mask(_('ID_PROCESSING')); - editForm.getForm().submit({ - success: function(f,a){ - viewport.getEl().unmask(); - w.hide(); //Hide popup widow - newForm.getForm().reset(); //Set empty form to next use - searchText.reset(); - infoGrid.store.load(); - response = Ext.decode(a.response.responseText); - if (response.success){ - PMExt.notify(_('ID_PROCESS_CATEGORY'),_('ID_CATEGORY_SUCCESS_UPDATE')); - }else{ - PMExt.error(_('ID_ERROR'),_('ID_MSG_AJAX_FAILURE')); - } - }, - failure: function(f,a){ - viewport.getEl().unmask(); - switch(a.failureType){ - case Ext.form.Action.CLIENT_INVALID: - //Ext.Msg.alert('New Role Form','Invalid Data'); - break; - } - } - }); - }else{ - PMExt.error(_('ID_PROCESS_CATEGORY'),_('ID_CATEGORY_EXISTS')); - } - }, - failure: function(r,o){ - viewport.getEl().unmask(); - } - }); + catUID = editForm.getForm().findField('cat_uid').getValue(); + catName = editForm.getForm().findField('category').getValue(); + catName = catName.trim(); + if (catName == '') return; + viewport.getEl().mask(_('ID_PROCESSING')); + Ext.Ajax.request({ + url: 'processCategory_Ajax', + params : {action: 'checkEditCategoryName', cat_name: catName, cat_uid: catUID}, + success: function(r,o){ + viewport.getEl().unmask(); + resp = eval(r.responseText); + if (resp){ + viewport.getEl().mask(_('ID_PROCESSING')); + editForm.getForm().submit({ + success: function(f,a){ + viewport.getEl().unmask(); + CloseWindow(); //Hide popup widow + newForm.getForm().reset(); //Set empty form to next use + searchText.reset(); + infoGrid.store.load(); + response = Ext.decode(a.response.responseText); + if (response.success){ + PMExt.notify(_('ID_PROCESS_CATEGORY'),_('ID_CATEGORY_SUCCESS_UPDATE')); + }else{ + PMExt.error(_('ID_ERROR'),_('ID_MSG_AJAX_FAILURE')); + } + }, + failure: function(f,a){ + viewport.getEl().unmask(); + switch(a.failureType){ + case Ext.form.Action.CLIENT_INVALID: + //Ext.Msg.alert('New Role Form','Invalid Data'); + break; + } + } + }); + }else{ + PMExt.error(_('ID_PROCESS_CATEGORY'),_('ID_CATEGORY_EXISTS')); + } + }, + failure: function(r,o){ + viewport.getEl().unmask(); + } + }); }; //Edit Selected Role EditCategory = function(){ - rowSelected = infoGrid.getSelectionModel().getSelected(); - if (rowSelected){ - editForm.getForm().findField('cat_uid').setValue(rowSelected.data.CATEGORY_UID); - editForm.getForm().findField('category').setValue(rowSelected.data.CATEGORY_NAME); - w = new Ext.Window({ - autoHeight: true, - width: 420, - title: _('ID_EDIT_CATEGORY'), - items: [editForm] - }); - w.show(); - } + rowSelected = infoGrid.getSelectionModel().getSelected(); + if (rowSelected){ + editForm.getForm().findField('cat_uid').setValue(rowSelected.data.CATEGORY_UID); + editForm.getForm().findField('category').setValue(rowSelected.data.CATEGORY_NAME); + w = new Ext.Window({ + autoHeight: true, + width: 420, + title: _('ID_EDIT_CATEGORY'), + items: [editForm], + id: 'w', + modal: true + }); + w.show(); + } }; //Check Can Delete Category DeleteCategory = function(){ - rowSelected = infoGrid.getSelectionModel().getSelected(); - if (rowSelected){ - var swDelete = false; - viewport.getEl().mask(_('ID_PROCESSING')); - Ext.Ajax.request({ - url: 'processCategory_Ajax', - params: {action: 'canDeleteCategory', CAT_UID: rowSelected.data.CATEGORY_UID}, - success: function(response, opts){ - viewport.getEl().unmask(); - swDelete = eval(response.responseText); - if (swDelete){ - Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_CONFIRM_DELETE_CATEGORY'), - function(btn, text){ - if (btn=="yes"){ - viewport.getEl().mask(_('ID_PROCESSING')); - Ext.Ajax.request({ - url: 'processCategory_Ajax', - params: {action: 'deleteCategory', cat_uid: rowSelected.data.CATEGORY_UID}, - success: function(r,o){ - viewport.getEl().unmask(); - infoGrid.store.load(); //Reload store grid - editButton.disable(); //Disable Edit Button - deleteButton.disable(); //Disable Delete Button - resp = Ext.decode(r.responseText); - if (resp.success){ - PMExt.notify(_('ID_PROCESS_CATEGORY'),_('ID_CATEGORY_SUCCESS_DELETE')); - }else{ - PMExt.error(_('ID_ERROR'),_('ID_MSG_AJAX_FAILURE')); - } - - }, - failure: function(){viewport.getEl().unmask();} - }); - } - }); - }else{ - PMExt.error(_('ID_PROCESS_CATEGORY'),_('ID_MSG_CANNOT_DELETE_CATEGORY')); - } - }, - failure: function(){viewport.getEl().unmask(); DoNothing();} - - }); - } + rowSelected = infoGrid.getSelectionModel().getSelected(); + if (rowSelected){ + var swDelete = false; + viewport.getEl().mask(_('ID_PROCESSING')); + Ext.Ajax.request({ + url: 'processCategory_Ajax', + params: {action: 'canDeleteCategory', CAT_UID: rowSelected.data.CATEGORY_UID}, + success: function(response, opts){ + viewport.getEl().unmask(); + swDelete = eval(response.responseText); + if (swDelete){ + Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_CONFIRM_DELETE_CATEGORY'), + function(btn, text){ + if (btn=="yes"){ + viewport.getEl().mask(_('ID_PROCESSING')); + Ext.Ajax.request({ + url: 'processCategory_Ajax', + params: {action: 'deleteCategory', cat_uid: rowSelected.data.CATEGORY_UID}, + success: function(r,o){ + viewport.getEl().unmask(); + infoGrid.store.load(); //Reload store grid + editButton.disable(); //Disable Edit Button + deleteButton.disable(); //Disable Delete Button + resp = Ext.decode(r.responseText); + if (resp.success){ + PMExt.notify(_('ID_PROCESS_CATEGORY'),_('ID_CATEGORY_SUCCESS_DELETE')); + }else{ + PMExt.error(_('ID_ERROR'),_('ID_MSG_AJAX_FAILURE')); + } + + }, + failure: function(){viewport.getEl().unmask();} + }); + } + }); + }else{ + PMExt.error(_('ID_PROCESS_CATEGORY'),_('ID_MSG_CANNOT_DELETE_CATEGORY')); + } + }, + failure: function(){viewport.getEl().unmask(); DoNothing();} + + }); + } }; //Load Grid By Default GridByDefault = function(){ - searchText.reset(); - infoGrid.store.load(); + searchText.reset(); + infoGrid.store.load(); }; //Do Search Function DoSearch = function(){ - infoGrid.store.load({params: {textFilter: searchText.getValue()}}); + infoGrid.store.load({params: {textFilter: searchText.getValue()}}); }; //Update Page Size Configuration diff --git a/workflow/engine/templates/roles/rolesList.js b/workflow/engine/templates/roles/rolesList.js index 4a0f7efa6..b2e120a53 100755 --- a/workflow/engine/templates/roles/rolesList.js +++ b/workflow/engine/templates/roles/rolesList.js @@ -356,6 +356,8 @@ NewRoleWindow = function(){ w = new Ext.Window({ title: _('ID_CREATE_ROLE_TITLE'), autoHeight: true, + id: 'w', + modal: true, width: 420, items: [newForm] }); @@ -364,48 +366,93 @@ NewRoleWindow = function(){ //Close Popup Window CloseWindow = function(){ - w.hide(); + Ext.getCmp('w').hide(); }; //Save New Role SaveNewRole = function(){ - newForm.getForm().submit({ - success: function(f,a){ - w.hide(); //Hide popup widow - newForm.getForm().reset(); //Set empty form to next use - searchText.reset(); - infoGrid.store.load(); //Reload store grid - PMExt.notify(_('ID_ROLES'),_('ID_ROLES_SUCCESS_NEW')); - }, - failure: function(f,a){ - switch(a.failureType){ - case Ext.form.Action.CLIENT_INVALID: - //Ext.Msg.alert('New Role Form','Invalid Data'); - break; - } - } - }); + rol_code = newForm.getForm().findField('code').getValue(); + rol_code.trim(); + if (rol_code == '') return; + viewport.getEl().mask(_('ID_PROCESSING')); + Ext.Ajax.request({ + url: 'roles_Ajax', + params: {request: 'checkRoleCode', ROL_CODE: rol_code}, + success: function(r,o){ + viewport.getEl().unmask(); + resp = Ext.util.JSON.decode(r.responseText); + if (resp.success){ + viewport.getEl().mask(_('ID_PROCESSING')); + newForm.getForm().submit({ + success: function(f,a){ + viewport.getEl().unmask(); + CloseWindow(); //Hide popup widow + newForm.getForm().reset(); //Set empty form to next use + searchText.reset(); + infoGrid.store.load(); //Reload store grid + PMExt.notify(_('ID_ROLES'),_('ID_ROLES_SUCCESS_NEW')); + }, + failure: function(f,a){ + viewport.getEl().unmask(); + switch(a.failureType){ + case Ext.form.Action.CLIENT_INVALID: + //Ext.Msg.alert('New Role Form','Invalid Data'); + break; + } + } + }); + }else{ + PMExt.error(_('ID_ROLES'),_('ID_ROLE_EXISTS')); + } + }, + failure: function(r,o){ + viewport.getEl().unmask(); + } + }); + }; //Update Selected Role UpdateRole = function(){ - editForm.getForm().submit({ - success: function(f,a){ - w.hide(); //Hide popup widow - DoSearch(); //Reload store grid - editButton.disable(); //Disable Edit Button - deleteButton.disable(); //Disable Delete Button - PMExt.notify(_('ID_ROLES'),_('ID_ROLES_SUCCESS_UPDATE')); - }, - failure: function(f,a){ - switch(a.failureType){ - case Ext.form.Action.CLIENT_INVALID: - //Ext.Msg.alert('New Role Form','Invalid Data'); - break; - } - - } - }); + rol_code = editForm.getForm().findField('code').getValue(); + rol_code.trim(); + if (rol_code == '') return; + viewport.getEl().mask(_('ID_PROCESSING')); + Ext.Ajax.request({ + url: 'roles_Ajax', + params: {request: 'checkRoleCode', ROL_CODE: rol_code}, + success: function(r,o){ + viewport.getEl().unmask(); + resp = Ext.util.JSON.decode(r.responseText); + if (resp.success){ + viewport.getEl().mask(_('ID_PROCESSING')); + editForm.getForm().submit({ + success: function(f,a){ + viewport.getEl().unmask(); + CloseWindow(); //Hide popup widow + DoSearch(); //Reload store grid + editButton.disable(); //Disable Edit Button + deleteButton.disable(); //Disable Delete Button + PMExt.notify(_('ID_ROLES'),_('ID_ROLES_SUCCESS_UPDATE')); + }, + failure: function(f,a){ + viewport.getEl().unmask(); + switch(a.failureType){ + case Ext.form.Action.CLIENT_INVALID: + //Ext.Msg.alert('New Role Form','Invalid Data'); + break; + } + + } + }); + }else{ + PMExt.error(_('ID_ROLES'),_('ID_ROLE_EXISTS')); + } + }, + failure: function(r,o) { + viewport.getEl().unmask(); + } + }); }; //Edit Selected Role @@ -421,6 +468,8 @@ EditRole = function(){ editForm.getForm().findField('status').setValue(rowSelected.data.ROL_STATUS); w = new Ext.Window({ autoHeight: true, + id: 'w', + modal: true, width: 420, title: _('ID_EDIT_ROLE_TITLE'), items: [editForm]