From 42f293c655e926698a1e95f30557d189f671980d Mon Sep 17 00:00:00 2001 From: Douglas Medrano Chura Date: Fri, 24 Jun 2011 09:18:16 -0400 Subject: [PATCH] BUG 6690 Cancelling a case in the inbox and produces error The problem was solved by removing the cancel feature of the case list (inbox), we found errors in logic that allowed cancel tasks in parallel, also corrected reassign functionality --- .../engine/methods/cases/casesListExtJs.php | 1 - .../engine/methods/cases/casesList_Ajax.php | 341 ++++++++++++++++++ workflow/engine/templates/cases/casesList.js | 139 ++++++- 3 files changed, 475 insertions(+), 6 deletions(-) create mode 100644 workflow/engine/methods/cases/casesList_Ajax.php diff --git a/workflow/engine/methods/cases/casesListExtJs.php b/workflow/engine/methods/cases/casesListExtJs.php index f1d746d84..a9ff6f985 100755 --- a/workflow/engine/methods/cases/casesListExtJs.php +++ b/workflow/engine/methods/cases/casesListExtJs.php @@ -107,7 +107,6 @@ $cnt = ''; $menuPerms = ''; $menuPerms = $menuPerms . ($RBAC->userCanAccess('PM_REASSIGNCASE') == 1) ? 'R': ''; //can reassign case - $menuPerms = $menuPerms . ($cnt == 1) ? 'C': ''; //can cancel case $oHeadPublisher->assign( '___p34315105', $menuPerms); // user menu permissions diff --git a/workflow/engine/methods/cases/casesList_Ajax.php b/workflow/engine/methods/cases/casesList_Ajax.php new file mode 100644 index 000000000..a9b235674 --- /dev/null +++ b/workflow/engine/methods/cases/casesList_Ajax.php @@ -0,0 +1,341 @@ +. + * + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * Coral Gables, FL, 33134, USA, or email info@colosa.com. + * + */ + require_once 'classes/model/Application.php'; + require_once 'classes/model/Users.php'; + require_once 'classes/model/AppThread.php'; + require_once 'classes/model/AppDelay.php'; + require_once 'classes/model/Process.php'; + require_once 'classes/model/Task.php'; + G::LoadClass('case'); + + $actionAjax = isset($_REQUEST['actionAjax'])?$_REQUEST['actionAjax']: null; + + + if($actionAjax=="getUsersToReassign"){ + + $_SESSION['TASK'] = $_REQUEST['TAS_UID']; + $case = new Cases(); + $result->data = $case->getUsersToReassign($_SESSION['TASK'], $_SESSION['USER_LOGGED']); + + print G::json_encode($result); + } + if($actionAjax=='reassignCase'){ + + $APP_UID = $_REQUEST["APP_UID"]; + $DEL_INDEX = $_REQUEST["DEL_INDEX"]; + + $_SESSION['APPLICATION'] = $APP_UID; + $_SESSION['INDEX'] = $DEL_INDEX; + + + $cases = new Cases(); + $user = new Users(); + $app = new Application(); + + $TO_USR_UID = $_POST['USR_UID']; + + try{ + $cases->reassignCase($_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['USER_LOGGED'], $TO_USR_UID); + $caseData = $app->load($_SESSION['APPLICATION']); + $userData = $user->load($TO_USR_UID); + //print_r($caseData); + $data['APP_NUMBER'] = $caseData['APP_NUMBER']; + $data['USER'] = $userData['USR_LASTNAME'].' '. $userData['USR_FIRSTNAME']; //TODO change with the farmated username from environment conf + $result->status = 0; + $result->msg = G::LoadTranslation('ID_REASSIGNMENT_SUCCESS', SYS_LANG, $data); + } catch(Exception $e){ + $result->status = 1; + $result->msg = $e->getMessage(); + } + + print G::json_encode($result); + + + } + + + if($actionAjax=='showHistoryMessage'){ +?> + + + +AddContent('xmlform', 'xmlform', 'cases/cases_MessagesView', '', $oCase->getHistoryMessagesTrackerView($_POST['APP_UID'], $_POST['APP_MSG_UID'])); + + +?> + + + + + +AddContent('view', 'cases/cases_DynaformHistory'); + + G::RenderPage('publish', 'raw'); + } + + if($actionAjax=='dynaformChangeLogViewHistory'){ + +?> + + + +AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view'); + + +?> + + + + + +loadCase($_SESSION['APPLICATION']); + $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = ''; + $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP_LABEL'] = ''; + $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP'] = '#'; + $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_ACTION'] = 'return false;'; + $_SESSION['DYN_UID_PRINT'] = $_POST['DYN_UID']; + $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view'); + +?> + + 0 ) + if( ___p34315105.search('R') != -1 ) menuItems.push(optionMenuReassign); - if( ___p34315105.search('C') > 0 ) - menuItems.push(optionMenuCancel); + break; case 'draft': menuItems = [optionMenuOpen, optionMenuPause]; - if( ___p34315105.search('R') > 0 ) + if( ___p34315105.search('R') != -1 ) menuItems.push(optionMenuReassign); menuItems.push(optionMenuDelete);