BUG-13421 Ordenamiento en el listado de procesos 'Designer'.

Se agregaron validaciones en los files: workflow/engine/classes/model/Process.php y workflow/engine/methods/processes/processesList.php para que se realize el ordenamiento ASC y DESC tomando en cuenta si se encuentra o no habilitado el uso de 'memcache' para listar de una forma mas veloz todos los procesos.
This commit is contained in:
jennylee
2013-11-07 10:09:37 -04:00
parent 756a126a1c
commit ab5b270ff2
2 changed files with 40 additions and 31 deletions

View File

@@ -587,7 +587,7 @@ class Process extends BaseProcess
}
}
public function getAllProcesses ($start, $limit, $category = null, $processName = null, $counters = true, $reviewSubProcess = false)
public function getAllProcesses ($start, $limit, $category = null, $processName = null, $counters = true, $reviewSubProcess = false, $dir = 'ASC')
{
require_once PATH_RBAC . "model/RbacUsers.php";
require_once "classes/model/ProcessCategory.php";
@@ -737,7 +737,11 @@ class Process extends BaseProcess
$memcache = & PMmemcached::getSingleton( SYS_SYS );
if ($memcache->enabled == 0) {
usort( $aProcesses, 'ordProcess' );
if ($dir=='ASC') {
usort( $aProcesses, 'ordProcessAsc' );
} else {
usort( $aProcesses, 'ordProcessDesc' );
}
$aProcesses = array_splice($aProcesses, $start, $limit);
}
@@ -847,34 +851,38 @@ class Process extends BaseProcess
}
}
public function orderMemcache($dataMemcache, $start, $limit)
public function orderMemcache($dataMemcache, $start, $limit, $dir)
{
usort( $dataMemcache, 'ordProcess' );
$dataMemcache = array_splice($dataMemcache, $start, $limit);
if ($dir=='ASC') {
usort( $dataMemcache, 'ordProcessAsc' );
} else {
usort( $dataMemcache, 'ordProcessDesc' );
}
$dataMemcache = array_splice($dataMemcache, $start, $limit);
return $dataMemcache;
}
}
function ordProcess ($a, $b)
{
if (isset($_POST['sort'])) {
if ($_POST['dir']=='ASC') {
if ($a[$_POST['sort']] > $b[$_POST['sort']]) {
return 1;
} elseif ($a[$_POST['sort']] < $b[$_POST['sort']]) {
return - 1;
} else {
return 0;
}
} else {
if ($a[$_POST['sort']] > $b[$_POST['sort']]) {
return - 1;
} elseif ($a[$_POST['sort']] < $b[$_POST['sort']]) {
return 1;
} else {
return 0;
}
}
}
function ordProcessAsc ($a, $b)
{
if ($a[$_POST['sort']] > $b[$_POST['sort']]) {
return 1;
} elseif ($a[$_POST['sort']] < $b[$_POST['sort']]) {
return - 1;
} else {
return 0;
}
}
function ordProcessDesc ($a, $b)
{
if ($a[$_POST['sort']] > $b[$_POST['sort']]) {
return - 1;
} elseif ($a[$_POST['sort']] < $b[$_POST['sort']]) {
return 1;
} else {
return 0;
}
}