diff --git a/workflow/engine/classes/model/Process.php b/workflow/engine/classes/model/Process.php index 00ccec8c4..c5e2d7c02 100755 --- a/workflow/engine/classes/model/Process.php +++ b/workflow/engine/classes/model/Process.php @@ -81,7 +81,7 @@ class Process extends BaseProcess { if ($this->pro_title !== $v || $v === '') { $this->pro_title = $v; $lang = defined ( 'SYS_LANG') ? SYS_LANG : 'en'; - + $res = Content::addContent( 'PRO_TITLE', '', $this->getProUid(), $lang, $this->pro_title ); } @@ -191,6 +191,9 @@ class Process extends BaseProcess { $this->setProDescription ( 'Default Process Description' ); $con->commit(); + + $this->memcachedDelete(); + return $this->getProUid(); } else { @@ -393,7 +396,7 @@ class Process extends BaseProcess { if (isset($aData['PRO_DYNAFORMS']) && is_array($aData['PRO_DYNAFORMS'])) { $aData['PRO_DYNAFORMS'] = @serialize($aData['PRO_DYNAFORMS']); } - + $con = Propel::getConnection( ProcessPeer::DATABASE_NAME ); try { $con->begin(); @@ -513,8 +516,11 @@ class Process extends BaseProcess { $oPro = ProcessPeer::retrieveByPK( $ProUid ); if (!is_null($oPro)) { - Content::removeContent('PRO_TITLE', '', $oPro->getProUid()); + Content::removeContent('PRO_TITLE', '', $oPro->getProUid()); Content::removeContent('PRO_DESCRIPTION', '', $oPro->getProUid()); + + $this->memcachedDelete(); + return $oPro->delete(); } else { @@ -715,7 +721,7 @@ class Process extends BaseProcess { $memcache = & PMmemcached::getSingleton(SYS_SYS); $memkey = 'getCasesCountInAllProcesses'; - if ( ($aProcesses = $memcache->get( $memkey )) === false ) { + if ( ($aProcesses = $memcache->get( $memkey )) === false ) { $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(ApplicationPeer::PRO_UID); $oCriteria->addSelectColumn(ApplicationPeer::APP_STATUS); @@ -732,7 +738,7 @@ class Process extends BaseProcess { $aProcesses[$row['PRO_UID']][$row['APP_STATUS']] = $row['CNT']; } $memcache->set( $memkey , $aProcesses, PMmemcached::ONE_HOUR ); - } + } return $aProcesses; } @@ -751,7 +757,23 @@ class Process extends BaseProcess { return $aProc; } -} // Process + public function memcachedDelete() + { + //Limit defined in processmaker/workflow/engine/templates/processes/main.js + $limit = 25; + $start = 0; + + $memcache = &PMmemcached::getSingleton(SYS_SYS); + + for ($start = 0; $start <= 50 - 1; $start++) { + $memkey = "processList-allProcesses-" . ($start * $limit) . "-" . $limit; + $memkeyTotal = $memkey . "-total"; + + $r = $memcache->delete($memkey); + $r = $memcache->delete($memkeyTotal); + } + } +} //Process function ordProcessByProTitle($a, $b){