diff --git a/workflow/engine/methods/cases/casesList_Ajax.php b/workflow/engine/methods/cases/casesList_Ajax.php index 8ebbeb84c..4ef28570d 100755 --- a/workflow/engine/methods/cases/casesList_Ajax.php +++ b/workflow/engine/methods/cases/casesList_Ajax.php @@ -1,9 +1,9 @@ message = G::LoadTranslation('ID_LOGIN_AGAIN'); $response->lostSession = true; - print G::json_encode( $response ); + print G::json_encode($response); die(); } /** @@ -46,13 +46,13 @@ $_POST = $filter->xssFilterHard($_POST); $_REQUEST = $filter->xssFilterHard($_REQUEST); $_SESSION = $filter->xssFilterHard($_SESSION); -$actionAjax = isset( $_REQUEST['actionAjax'] ) ? $_REQUEST['actionAjax'] : null; +$actionAjax = isset($_REQUEST['actionAjax']) ? $_REQUEST['actionAjax'] : null; function filterUserListArray($users = array(), $filter = '') { $filteredUsers = array(); foreach ($users as $user) { - if(stripos($user['USR_FULLNAME'], $filter) || empty($filter)) { + if (stripos($user['USR_FULLNAME'], $filter) || empty($filter)) { $filteredUsers[] = $user; } } @@ -62,15 +62,16 @@ function filterUserListArray($users = array(), $filter = '') if ($actionAjax == "userValues") { //global $oAppCache; $oAppCache = new AppCacheView(); - $action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : null; - $query = isset( $_REQUEST['query'] ) ? $_REQUEST['query'] : null; + $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null; + $query = isset($_REQUEST['query']) ? $_REQUEST['query'] : null; $users = array(); - $users[] = array ("USR_UID" => "", "USR_FULLNAME" => G::LoadTranslation( "ID_ALL_USERS" )); - $users[] = array ("USR_UID" => "CURRENT_USER", "USR_FULLNAME" => G::LoadTranslation( "ID_CURRENT_USER" )); + $users[] = array("USR_UID" => "", "USR_FULLNAME" => G::LoadTranslation("ID_ALL_USERS")); + $users[] = array("USR_UID" => "CURRENT_USER", "USR_FULLNAME" => G::LoadTranslation("ID_CURRENT_USER")); $users = filterUserListArray($users, $query); //now get users, just for the Search action switch ($action) { case 'search_simple': + case 'to_reassign': case 'search': G::LoadClass("configuration"); @@ -78,24 +79,24 @@ if ($actionAjax == "userValues") { $confEnvSetting = $conf->getFormats(); - $cUsers = new Criteria( 'workflow' ); + $cUsers = new Criteria('workflow'); $cUsers->clearSelectColumns(); $cUsers->addSelectColumn(UsersPeer::USR_UID); $cUsers->addSelectColumn(UsersPeer::USR_USERNAME); $cUsers->addSelectColumn(UsersPeer::USR_FIRSTNAME); $cUsers->addSelectColumn(UsersPeer::USR_LASTNAME); - $cUsers->add( UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL ); + $cUsers->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL); if (!is_null($query)) { - $filters = $cUsers->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%'.$query.'%', Criteria::LIKE )->addOr( - $cUsers->getNewCriterion( UsersPeer::USR_LASTNAME, '%'.$query.'%', Criteria::LIKE )->addOr( - $cUsers->getNewCriterion( UsersPeer::USR_USERNAME, '%'.$query.'%', Criteria::LIKE ))); - $cUsers->addOr( $filters ); + $filters = $cUsers->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%' . $query . '%', Criteria::LIKE) + ->addOr($cUsers->getNewCriterion(UsersPeer::USR_LASTNAME, '%' . $query . '%', Criteria::LIKE) + ->addOr($cUsers->getNewCriterion(UsersPeer::USR_USERNAME, '%' . $query . '%', Criteria::LIKE))); + $cUsers->addAnd($filters); } $cUsers->setLimit(20); $cUsers->addAscendingOrderByColumn(UsersPeer::TABLE_NAME . "." . $conf->userNameFormatGetFirstFieldByUsersTable()); - $oDataset = UsersPeer::doSelectRS( $cUsers ); - $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $oDataset = UsersPeer::doSelectRS($cUsers); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($oDataset->next()) { $row = $oDataset->getRow(); @@ -110,139 +111,65 @@ if ($actionAjax == "userValues") { break; } //return $users; - return print G::json_encode( $users ); + return print G::json_encode($users); } if ($actionAjax == "processListExtJs") { - $action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : null; - $categoryUid = isset( $_REQUEST['CATEGORY_UID'] ) ? $_REQUEST['CATEGORY_UID'] : null; - $userUid = (isset( $_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '') ? $_SESSION['USER_LOGGED'] : null; + $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null; + $query = isset($_REQUEST['query']) ? $_REQUEST['query'] : null; + $categoryUid = isset($_REQUEST['CATEGORY_UID']) ? $_REQUEST['CATEGORY_UID'] : null; + $userUid = (isset($_SESSION['USER_LOGGED']) && $_SESSION['USER_LOGGED'] != '') ? $_SESSION['USER_LOGGED'] : null; - global $oAppCache; - $oAppCache = new AppCacheView(); - $processes = Array (); - $processes[] = array ('',G::LoadTranslation( 'ID_ALL_PROCESS' ) - ); + $processes = array(); + //in search action, the query to obtain all process is too slow, so we need to query directly to + //process and content tables, and for that reason we need the current language in AppCacheView. + $oConf = new Configurations(); + $oConf->loadConfig($x, 'APP_CACHE_VIEW_ENGINE', '', '', '', ''); + $appCacheViewEngine = $oConf->aConfig; + $lang = isset($appCacheViewEngine['LANG']) ? $appCacheViewEngine['LANG'] : 'en'; - //get the list based in the action provided - switch ($action) { - case 'draft': - $cProcess = $oAppCache->getDraftListCriteria( $userUid ); //fast enough - break; - case 'sent': - $cProcess = $oAppCache->getSentListProcessCriteria( $userUid ); // fast enough - break; - case 'simple_search': - case 'search': - //in search action, the query to obtain all process is too slow, so we need to query directly to - //process and content tables, and for that reason we need the current language in AppCacheView. - G::loadClass( 'configuration' ); - $oConf = new Configurations(); - $oConf->loadConfig( $x, 'APP_CACHE_VIEW_ENGINE', '', '', '', '' ); - $appCacheViewEngine = $oConf->aConfig; - $lang = isset( $appCacheViewEngine['LANG'] ) ? $appCacheViewEngine['LANG'] : 'en'; - - $cProcess = new Criteria( 'workflow' ); - $cProcess->clearSelectColumns(); - $cProcess->addSelectColumn( ProcessPeer::PRO_UID ); - $cProcess->addSelectColumn( ContentPeer::CON_VALUE ); - if ($categoryUid) { - $cProcess->add( ProcessPeer::PRO_CATEGORY, $categoryUid ); - } - $del = DBAdapter::getStringDelimiter(); - $conds = array (); - $conds[] = array (ProcessPeer::PRO_UID,ContentPeer::CON_ID); - $conds[] = array (ContentPeer::CON_CATEGORY,$del . 'PRO_TITLE' . $del); - $conds[] = array (ContentPeer::CON_LANG,$del . $lang . $del); - $cProcess->addJoinMC( $conds, Criteria::LEFT_JOIN ); - $cProcess->add( ProcessPeer::PRO_STATUS, 'ACTIVE' ); - $cProcess->addAscendingOrderByColumn(ContentPeer::CON_VALUE); - - $oDataset = ProcessPeer::doSelectRS( $cProcess ); - $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $oDataset->next(); - - while ($aRow = $oDataset->getRow()) { - $processes[] = array ($aRow['PRO_UID'],$aRow['CON_VALUE'] - ); - $oDataset->next(); - } - return print G::json_encode( $processes ); - break; - case 'unassigned': - $cProcess = $oAppCache->getUnassignedListCriteria( $userUid ); - break; - case 'paused': - $cProcess = $oAppCache->getPausedListCriteria( $userUid ); - break; - case 'to_revise': - $cProcess = $oAppCache->getToReviseListCriteria( $userUid ); - break; - case 'to_reassign': - $cProcess = $oAppCache->getToReassignListCriteria($userUid); - break; - case 'gral': - $cProcess = $oAppCache->getGeneralListCriteria(); - break; - case 'todo': - default: - $cProcess = $oAppCache->getToDoListCriteria( $userUid ); //fast enough - break; - } + $cProcess = new Criteria('workflow'); //get the processes for this user in this action $cProcess->clearSelectColumns(); - $cProcess->addSelectColumn( AppCacheViewPeer::PRO_UID ); - $cProcess->addSelectColumn( AppCacheViewPeer::APP_PRO_TITLE ); - $cProcess->setDistinct( AppCacheViewPeer::PRO_UID ); + $cProcess->addSelectColumn(ProcessPeer::PRO_UID); + $cProcess->addAsColumn('PRO_TITLE', ContentPeer::CON_VALUE); if ($categoryUid) { - require_once 'classes/model/Process.php'; - $cProcess->addAlias( 'CP', 'PROCESS' ); - $cProcess->add( 'CP.PRO_CATEGORY', $categoryUid, Criteria::EQUAL ); - $cProcess->addJoin( AppCacheViewPeer::PRO_UID, 'CP.PRO_UID', Criteria::LEFT_JOIN ); - $cProcess->addAsColumn( 'CATEGORY_UID', 'CP.PRO_CATEGORY' ); + $cProcess->add(ProcessPeer::PRO_CATEGORY, $categoryUid); } - $cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE); + $del = \DBAdapter::getStringDelimiter(); + $conds = array(); + $conds[] = array(ProcessPeer::PRO_UID, ContentPeer::CON_ID); + $conds[] = array(ContentPeer::CON_CATEGORY, $del . 'PRO_TITLE' . $del); + $conds[] = array(ContentPeer::CON_LANG, $del . $lang . $del); + $cProcess->addJoinMC($conds, Criteria::LEFT_JOIN); + $cProcess->add(ProcessPeer::PRO_STATUS, 'ACTIVE'); - $oDataset = AppCacheViewPeer::doSelectRS( $cProcess, Propel::getDbConnection('workflow_ro') ); - $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $oDataset->next(); - - while ($aRow = $oDataset->getRow()) { - $processes[] = array ($aRow['PRO_UID'],$aRow['APP_PRO_TITLE'] - ); - $oDataset->next(); + if (!is_null($query)) { + $filters = $cProcess->getNewCriterion(ContentPeer::CON_VALUE, '%' . $query . '%', Criteria::LIKE); + $cProcess->addAnd($filters); } - return print G::json_encode( $processes ); + + $cProcess->addAscendingOrderByColumn(ContentPeer::CON_VALUE); + + $oDataset = ProcessPeer::doSelectRS($cProcess); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + while ($oDataset->next()) { + $aRow = $oDataset->getRow(); + $processes[] = $aRow; + } + return print G::json_encode($processes); } if ($actionAjax == "getUsersToReassign") { - $taskUid = $_POST['taskUid']; - $search = $_POST['search']; - $pageSize = $_POST['pageSize']; - - $sortField = (isset($_POST['sort']))? $_POST['sort'] : ''; - $sortDir = (isset($_POST['dir']))? $_POST['dir'] : ''; - $start = (isset($_POST['start']))? $_POST['start'] : 0; - $limit = (isset($_POST['limit']))? $_POST['limit'] : $pageSize; - - $response = []; - - try { - $case = new \ProcessMaker\BusinessModel\Cases(); - - $result = $case->getUsersToReassign($_SESSION['USER_LOGGED'], $taskUid, ['filter' => $search], $sortField, $sortDir, $start, $limit); - - $response['status'] = 'OK'; - $response['success'] = true; - $response['resultTotal'] = $result['total']; - $response['resultRoot'] = $result['data']; - } catch (Exception $e) { - $response['status'] = 'ERROR'; - $response['message'] = $e->getMessage(); - } - - echo G::json_encode($response); + $_SESSION['TASK'] = $_REQUEST['TAS_UID']; + $case = new Cases(); + $task = new Task(); + $tasks = $task->load($_SESSION['TASK']); + $result = new stdClass(); + $result->data = $case->getUsersToReassign($_SESSION['TASK'], $_SESSION['USER_LOGGED'], $_SESSION['PRO_UID']); + print G::json_encode($result); } if ($actionAjax == 'reassignCase') { @@ -259,47 +186,48 @@ if ($actionAjax == 'reassignCase') { $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 ); + $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 = new stdclass(); + $result = new stdClass(); $result->status = 0; - $result->msg = G::LoadTranslation( 'ID_REASSIGNMENT_SUCCESS', SYS_LANG, $data ); + $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 ); + print G::json_encode($result); } if ($actionAjax == 'showHistoryMessage') { ?> - + @@ -314,19 +242,22 @@ if ($actionAjax == 'showHistoryMessage') { $G_PUBLISH = new Publisher(); $oCase = new Cases(); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_MessagesView', '', $oCase->getHistoryMessagesTrackerView( $_POST['APP_UID'], $_POST['APP_MSG_UID'] ) ); + $G_PUBLISH->AddContent('xmlform', 'xmlform', 'cases/cases_MessagesView', '', $oCase->getHistoryMessagesTrackerView($_POST['APP_UID'], $_POST['APP_MSG_UID'])); + + ?> + ?> - + AddContent( 'view', 'cases/cases_DynaformHistory' ); + $G_PUBLISH->AddContent('view', 'cases/cases_DynaformHistory'); - G::RenderPage( 'publish', 'raw' ); + G::RenderPage('publish', 'raw'); } if ($actionAjax == 'dynaformChangeLogViewHistory') { ?> - + + AddContent( 'dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view' ); + $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', + $Fields['APP_DATA'], '', '', 'view'); ?> - + @@ -618,28 +588,28 @@ if ($actionAjax == 'historyDynaformGridPreview') { //!dataIndex $_POST["DYN_UID"] = $_REQUEST["DYN_UID"]; - G::LoadClass( 'case' ); $G_PUBLISH = new Publisher(); $oCase = new Cases(); - $Fields = $oCase->loadCase( $_SESSION['APPLICATION'] ); + $Fields = $oCase->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' ); + $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', + $Fields['APP_DATA'], + '', '', 'view'); ?>