Spaces:
Sleeping
Sleeping
processmaker-community / processmaker-files /workflow /engine /methods /processes /processesList.php
| /** | |
| * processes_List.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 <http://www.gnu.org/licenses/>. | |
| * | |
| * For more information, contact Colosa Inc, 2566 Le Jeune Rd., | |
| * Coral Gables, FL, 33134, USA, or email info@colosa.com. | |
| */ | |
| require_once 'classes/model/Process.php'; | |
| $start = isset( $_POST['start'] ) ? $_POST['start'] : 0; | |
| $limit = isset( $_POST['limit'] ) ? $_POST['limit'] : ''; | |
| $dir = isset( $_POST['dir'] ) ? $_POST['dir'] : 'ASC'; | |
| $sort = isset( $_POST['sort'] ) ? $_POST['sort'] : ''; | |
| $oProcess = new Process(); | |
| $oProcess->dir = $dir; | |
| $oProcess->sort = $sort; | |
| $memkey = 'no memcache'; | |
| $memcacheUsed = 'not used'; | |
| $totalCount = 0; | |
| if (isset( $_POST['category'] ) && $_POST['category'] !== '<reset>') { | |
| if (isset( $_POST['processName'] )) | |
| $proData = $oProcess->getAllProcesses( $start, $limit, $_POST['category'], $_POST['processName'], true, false, $_SESSION["USER_LOGGED"]); | |
| else | |
| $proData = $oProcess->getAllProcesses( $start, $limit, $_POST['category'], null, true, false, $_SESSION["USER_LOGGED"]); | |
| } else { | |
| if (isset( $_POST['processName'] )) { | |
| $memkey = 'processList-' . $start . '-' . $limit . '-' . $_POST['processName']; | |
| $memcacheUsed = 'yes'; | |
| $proData = $memcache->get( $memkey ); | |
| if ($proData === false) { | |
| $proData = $oProcess->getAllProcesses( $start, $limit, null, $_POST['processName'], true, false, $_SESSION["USER_LOGGED"]); | |
| $memcache->set( $memkey, $proData, PMmemcached::ONE_HOUR ); | |
| $totalCount = count($proData); | |
| $proData = array_splice($proData, $start, $limit); | |
| $memcacheUsed = 'no'; | |
| } else { | |
| $proData = $oProcess->orderMemcache($proData, $start, $limit); | |
| $totalCount = $proData->totalCount; | |
| $proData = $proData->dataMemcache; | |
| } | |
| } else { | |
| $memkey = 'processList-allProcesses-' . $start . '-' . $limit; | |
| $memkeyTotal = $memkey . '-total'; | |
| $memcacheUsed = 'yes'; | |
| if (($proData = $memcache->get( $memkey )) === false || ($totalCount = $memcache->get( $memkeyTotal )) === false) { | |
| $proData = $oProcess->getAllProcesses( $start, $limit, null, null, true, false, $_SESSION["USER_LOGGED"]); | |
| $totalCount = count($proData); | |
| $proData = array_splice($proData, $start, $limit); | |
| $memcache->set( $memkey, $proData, PMmemcached::ONE_HOUR ); | |
| $memcache->set( $memkeyTotal, $totalCount, PMmemcached::ONE_HOUR ); | |
| $memcacheUsed = 'no'; | |
| } else { | |
| $proData = $oProcess->orderMemcache($proData, $start, $limit); | |
| $totalCount = $proData->totalCount; | |
| $proData = $proData->dataMemcache; | |
| } | |
| } | |
| } | |
| $r = new stdclass(); | |
| $r->memkey = htmlspecialchars($memkey); | |
| $r->memcache = $memcacheUsed; | |
| $r->data = \ProcessMaker\Util\DateTime::convertUtcToTimeZone($proData); | |
| $r->totalCount = $totalCount; | |
| echo G::json_encode( $r ); | |