message = G::LoadTranslation('ID_LOGIN_AGAIN'); $response->lostSession = true; print G::json_encode( $response ); die(); } /** * casesList_Ajax.php * * ProcessMaker Open Source Edition * Copyright (C) 2004 - 2008 Colosa Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * * 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'; require_once ("classes/model/AppCacheView.php"); require_once ("classes/model/AppDelegation.php"); require_once ("classes/model/AdditionalTables.php"); require_once ("classes/model/AppDelay.php");*/ G::LoadClass( 'case' ); G::LoadSystem('inputfilter'); $filter = new InputFilter(); $_POST = $filter->xssFilterHard($_POST); $_REQUEST = $filter->xssFilterHard($_REQUEST); $_SESSION = $filter->xssFilterHard($_SESSION); $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)) { $filteredUsers[] = $user; } } return $filteredUsers; } if ($actionAjax == "userValues") { //global $oAppCache; $oAppCache = new AppCacheView(); $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 = filterUserListArray($users, $query); //now get users, just for the Search action switch ($action) { case 'search_simple': case 'search': G::LoadClass("configuration"); $conf = new Configurations(); $confEnvSetting = $conf->getFormats(); $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 ); 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 ); } $cUsers->setLimit(20); $cUsers->addAscendingOrderByColumn(UsersPeer::TABLE_NAME . "." . $conf->userNameFormatGetFirstFieldByUsersTable()); $oDataset = UsersPeer::doSelectRS( $cUsers ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); while ($oDataset->next()) { $row = $oDataset->getRow(); $usrFullName = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $row["USR_USERNAME"], $row["USR_FIRSTNAME"], $row["USR_LASTNAME"]); $users[] = array("USR_UID" => $row["USR_UID"], "USR_FULLNAME" => $usrFullName); } break; default: return $users; break; } //return $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; global $oAppCache; $oAppCache = new AppCacheView(); $processes = Array (); $processes[] = array ('',G::LoadTranslation( 'ID_ALL_PROCESS' ) ); //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; } //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 ); 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->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE); $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(); } return print G::json_encode( $processes ); } if ($actionAjax == "getUsersToReassign") { $_SESSION['TASK'] = $_REQUEST['TAS_UID']; $case = new Cases(); G::LoadClass( 'tasks' ); $task = new Task(); $tasks = $task->load($_SESSION['TASK']); $result = new stdclass(); $result->data = $case->getUsersToReassign( $_SESSION['TASK'], $_SESSION['USER_LOGGED'], $tasks['PRO_UID'] ); 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 = new stdclass(); $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' ); ?>