From 81fc730cdb24f1720b398f98ed4dc4fa1b8f74d5 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Mon, 23 Oct 2017 14:23:31 -0400 Subject: [PATCH] HOR-3521 --- workflow/engine/classes/model/ListInbox.php | 16 ++++++++-- .../classes/model/ListParticipatedLast.php | 16 ++++++++-- workflow/engine/classes/model/ListPaused.php | 16 ++++++++-- .../src/ProcessMaker/BusinessModel/Cases.php | 32 +++++++++++++------ 4 files changed, 61 insertions(+), 19 deletions(-) diff --git a/workflow/engine/classes/model/ListInbox.php b/workflow/engine/classes/model/ListInbox.php index b831c6973..47362ea9f 100644 --- a/workflow/engine/classes/model/ListInbox.php +++ b/workflow/engine/classes/model/ListInbox.php @@ -623,10 +623,20 @@ class ListInbox extends BaseListInbox $limit = isset($filters['limit']) ? $filters['limit'] : "25"; $paged = isset($filters['paged']) ? $filters['paged'] : 1; - if ($dir == "DESC") { - $criteria->addDescendingOrderByColumn($sort); + if (is_array($sort) && count($sort) > 0) { + foreach ($sort as $key) { + if ($dir == 'DESC') { + $criteria->addDescendingOrderByColumn($key); + } else { + $criteria->addAscendingOrderByColumn($key); + } + } } else { - $criteria->addAscendingOrderByColumn($sort); + if ($dir == 'DESC') { + $criteria->addDescendingOrderByColumn($sort); + } else { + $criteria->addAscendingOrderByColumn($sort); + } } if ($paged == 1) { diff --git a/workflow/engine/classes/model/ListParticipatedLast.php b/workflow/engine/classes/model/ListParticipatedLast.php index 230c48f3d..81d3ed331 100644 --- a/workflow/engine/classes/model/ListParticipatedLast.php +++ b/workflow/engine/classes/model/ListParticipatedLast.php @@ -466,10 +466,20 @@ class ListParticipatedLast extends BaseListParticipatedLast $limit = isset($filters['limit']) ? $filters['limit'] : '25'; $paged = isset($filters['paged']) ? $filters['paged'] : 1; - if ($dir == 'DESC') { - $criteria->addDescendingOrderByColumn($sort); + if (is_array($sort) && count($sort) > 0) { + foreach ($sort as $key) { + if ($dir == 'DESC') { + $criteria->addDescendingOrderByColumn($key); + } else { + $criteria->addAscendingOrderByColumn($key); + } + } } else { - $criteria->addAscendingOrderByColumn($sort); + if ($dir == 'DESC') { + $criteria->addDescendingOrderByColumn($sort); + } else { + $criteria->addAscendingOrderByColumn($sort); + } } if ($paged == 1) { diff --git a/workflow/engine/classes/model/ListPaused.php b/workflow/engine/classes/model/ListPaused.php index 804bde419..edaf5336c 100644 --- a/workflow/engine/classes/model/ListPaused.php +++ b/workflow/engine/classes/model/ListPaused.php @@ -376,10 +376,20 @@ class ListPaused extends BaseListPaused $limit = isset($filters['limit']) ? $filters['limit'] : "25"; $paged = isset($filters['paged']) ? $filters['paged'] : 1; - if ($dir == "DESC") { - $criteria->addDescendingOrderByColumn($sort); + if (is_array($sort) && count($sort) > 0) { + foreach ($sort as $key) { + if ($dir == 'DESC') { + $criteria->addDescendingOrderByColumn($key); + } else { + $criteria->addAscendingOrderByColumn($key); + } + } } else { - $criteria->addAscendingOrderByColumn($sort); + if ($dir == 'DESC') { + $criteria->addDescendingOrderByColumn($sort); + } else { + $criteria->addAscendingOrderByColumn($sort); + } } if ($paged == 1) { diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 84c4be55e..3beb9067b 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -3547,7 +3547,7 @@ class Cases * @param array $additionalColumns, columns related to the custom cases list with the format TABLE_NAME.COLUMN_NAME * @param string $userDisplayFormat, user information display format * - * @return string $tableName + * @return string|array could be an string $tableName, could be an array $columnSort */ public function getSortColumn( $listPeer, @@ -3598,11 +3598,11 @@ class Cases * @param string $format, the user display format * @param string $prefix, the initial name of the columns related to the USR_FIRSTNAME USR_LASTNAME USR_USERNAME * - * @return string $columnSort, columns by apply the sql command ORDER BY + * @return array $columnSort, columns by apply the sql command ORDER BY */ public function buildOrderFieldFormatted($columnsList, $format, $prefix = 'DEL_PREVIOUS_') { - $columnSort = ''; + $columnSort = []; if (in_array($prefix . 'USR_FIRSTNAME', $columnsList) && in_array($prefix . 'USR_LASTNAME', $columnsList) && @@ -3610,25 +3610,37 @@ class Cases ) { switch ($format) { case '@firstName @lastName': - $columnSort = $prefix . 'USR_FIRSTNAME' . ',' . $prefix . 'USR_LASTNAME'; + array_push($columnSort, $prefix . 'USR_FIRSTNAME'); + array_push($columnSort, $prefix . 'USR_LASTNAME'); break; case '@firstName @lastName (@userName)': - $columnSort = $prefix . 'USR_FIRSTNAME' . ',' . $prefix . 'USR_LASTNAME' . ',' . $prefix . 'USR_USERNAME'; + array_push($columnSort, $prefix . 'USR_FIRSTNAME'); + array_push($columnSort, $prefix . 'USR_LASTNAME'); + array_push($columnSort, $prefix . 'USR_USERNAME'); break; case '@userName': - $columnSort = $prefix . 'USR_USERNAME'; + array_push($columnSort, $prefix . 'USR_USERNAME'); break; case '@userName (@firstName @lastName)': - $columnSort = $prefix . 'USR_USERNAME' . ',' . $prefix . 'USR_FIRSTNAME' . ',' . $prefix . 'USR_LASTNAME'; + array_push($columnSort, $prefix . 'USR_USERNAME'); + array_push($columnSort, $prefix . 'USR_FIRSTNAME'); + array_push($columnSort, $prefix . 'USR_LASTNAME'); break; case '@lastName, @firstName': - $columnSort = $prefix . 'USR_LASTNAME' . ',' . $prefix . 'USR_FIRSTNAME'; + array_push($columnSort, $prefix . 'USR_LASTNAME'); + array_push($columnSort, $prefix . 'USR_FIRSTNAME'); + break; + case '@lastName @firstName': + array_push($columnSort, $prefix . 'USR_LASTNAME'); + array_push($columnSort, $prefix . 'USR_FIRSTNAME'); break; case '@lastName, @firstName (@userName)': - $columnSort = $prefix . 'USR_LASTNAME' . ',' . $prefix . 'USR_FIRSTNAME' . ',' . $prefix . 'USR_USERNAME'; + array_push($columnSort, $prefix . 'USR_LASTNAME'); + array_push($columnSort, $prefix . 'USR_FIRSTNAME'); + array_push($columnSort, $prefix . 'USR_USERNAME'); break; default: - $columnSort = $prefix . 'USR_USERNAME'; + array_push($columnSort, $prefix . 'USR_USERNAME'); break; } }