Merge pull request #2125 from Jennydmz/BUG-13421

BUG-13421 Ordenamiento en el listado de procesos 'Designer'.
This commit is contained in:
julceslauhub
2013-11-08 05:50:43 -08:00
3 changed files with 68 additions and 26 deletions

View File

@@ -48,6 +48,8 @@ class Process extends BaseProcess
* @var string
*/
protected $pro_title = '';
public $dir = 'ASC';
public $sort = '';
/**
* Get the [Pro_title] column value.
@@ -387,7 +389,12 @@ class Process extends BaseProcess
}
}
usort( $processes, 'ordProcessByProTitle' );
if ($this->dir=='ASC') {
usort( $processes, array($this, "ordProcessAsc") );
} else {
usort( $processes, array($this, "ordProcessDesc") );
}
return $processes;
}
@@ -589,7 +596,7 @@ class Process extends BaseProcess
public function getAllProcesses ($start, $limit, $category = null, $processName = null, $counters = true, $reviewSubProcess = false)
{
require_once PATH_RBAC . "model/RbacUsers.php";
require_once PATH_RBAC . "model/RbacUsers.php";
require_once "classes/model/ProcessCategory.php";
require_once "classes/model/Users.php";
@@ -629,14 +636,7 @@ class Process extends BaseProcess
$this->tmpCriteria = clone $oCriteria;
if ($start != '') {
$oCriteria->setOffset( $start );
}
if ($limit != '' && ! isset( $category ) && ! isset( $processName )) {
$oCriteria->setLimit( $limit );
}
//execute a query to obtain numbers, how many cases there are by process
//execute a query to obtain numbers, how many cases there are by process
if ($counters) {
$casesCnt = $this->getCasesCountInAllProcesses();
}
@@ -741,8 +741,22 @@ class Process extends BaseProcess
$aProcesses[] = $process;
}
$memcache = & PMmemcached::getSingleton( SYS_SYS );
if (isset($memcache) && $memcache->enabled == 1 ) {
return $aProcesses;
}
if ($limit == '') {
$limit = count($aProcesses);
}
if ($this->dir=='ASC') {
usort( $aProcesses, array($this, "ordProcessAsc") );
} else {
usort( $aProcesses, array($this, "ordProcessDesc") );
}
$aProcesses = array_splice($aProcesses, $start, $limit);
usort( $aProcesses, 'ordProcessByProTitle' );
return $aProcesses;
}
@@ -848,16 +862,38 @@ class Process extends BaseProcess
$r = $memcache->delete( $memkeyTotal );
}
}
}
public function orderMemcache($dataMemcache, $start, $limit)
{
if ($this->dir=='ASC') {
usort( $dataMemcache, array($this, "ordProcessAsc") );
} else {
usort( $dataMemcache, array($this, "ordProcessDesc") );
}
$dataMemcache = array_splice($dataMemcache, $start, $limit);
return $dataMemcache;
}
function ordProcessByProTitle ($a, $b)
{
if ($a['PRO_TITLE'] > $b['PRO_TITLE']) {
return 1;
} elseif ($a['PRO_TITLE'] < $b['PRO_TITLE']) {
return - 1;
} else {
return 0;
public function ordProcessAsc ($a, $b)
{
if ($a[$this->sort] > $b[$this->sort]) {
return 1;
} elseif ($a[$this->sort] < $b[$this->sort]) {
return - 1;
} else {
return 0;
}
}
public function ordProcessDesc ($a, $b)
{
if ($a[$this->sort] > $b[$this->sort]) {
return - 1;
} elseif ($a[$this->sort] < $b[$this->sort]) {
return 1;
} else {
return 0;
}
}
}

View File

@@ -26,26 +26,29 @@ 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;
//$memcache = & PMmemcached::getSingleton( SYS_SYS );
$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'] );
$proData = $oProcess->getAllProcesses( $start, $limit, $_POST['category'], $_POST['processName']);
else
$proData = $oProcess->getAllProcesses( $start, $limit, $_POST['category'] );
$proData = $oProcess->getAllProcesses( $start, $limit, $_POST['category']);
} else {
if (isset( $_POST['processName'] )) {
$memkey = 'processList-' . $start . '-' . $limit . '-' . $_POST['processName'];
$memcacheUsed = 'yes';
if (($proData = $memcache->get( $memkey )) === false) {
$proData = $oProcess->getAllProcesses( $start, $limit, null, $_POST['processName'] );
$proData = $oProcess->getAllProcesses( $start, $limit, null, $_POST['processName']);
$memcache->set( $memkey, $proData, PMmemcached::ONE_HOUR );
$memcacheUsed = 'no';
}
@@ -54,12 +57,14 @@ if (isset( $_POST['category'] ) && $_POST['category'] !== '<reset>') {
$memkeyTotal = $memkey . '-total';
$memcacheUsed = 'yes';
if (($proData = $memcache->get( $memkey )) === false || ($totalCount = $memcache->get( $memkeyTotal )) === false) {
$proData = $oProcess->getAllProcesses( $start, $limit );
$proData = $oProcess->getAllProcesses( $start, $limit);
$totalCount = $oProcess->getAllProcessesCount();
$memcache->set( $memkey, $proData, PMmemcached::ONE_HOUR );
$memcache->set( $memkeyTotal, $totalCount, PMmemcached::ONE_HOUR );
$memcacheUsed = 'no';
}
} else {
$proData = $oProcess->orderMemcache($proData, $start, $limit);
}
}
}
$r = new stdclass();

View File

@@ -37,6 +37,7 @@ Ext.onReady(function(){
store = new Ext.data.GroupingStore( {
//var store = new Ext.data.Store( {
remoteSort: true,
proxy : new Ext.data.HttpProxy({
url: 'processesList'
}),