This commit is contained in:
Paula Quispe
2017-07-13 14:58:43 -04:00
parent 8d74232727
commit cda8fab073
6 changed files with 97 additions and 20 deletions

View File

@@ -549,9 +549,16 @@ class ListInbox extends BaseListInbox
$criteria->addJoin(ListInboxPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
self::loadFilters($criteria, $filters, $additionalColumns);
$sort = (!empty($filters['sort'])) ?
ListInboxPeer::TABLE_NAME.'.'.$filters['sort'] :
"LIST_INBOX.APP_UPDATE_DATE";
//We will be defined the sort
$casesList = new \ProcessMaker\BusinessModel\Cases();
$sort = $casesList->getSortColumn(
__CLASS__ . 'Peer',
BasePeer::TYPE_FIELDNAME,
empty($filters['sort']) ? "APP_UPDATE_DATE" : $filters['sort'],
$this->additionalClassName,
$additionalColumns
);
$dir = isset($filters['dir']) ? $filters['dir'] : "ASC";
$start = isset($filters['start']) ? $filters['start'] : "0";
$limit = isset($filters['limit']) ? $filters['limit'] : "25";
@@ -624,7 +631,6 @@ class ListInbox extends BaseListInbox
* Returns the number of cases of a user
* @param string $usrUid
* @param array $filters
* @param string $status
* @return int
*/
public function getCountList($usrUid, $filters = array())

View File

@@ -364,9 +364,16 @@ class ListParticipatedLast extends BaseListParticipatedLast
self::loadFilters($criteria, $filters, $additionalColumns);
$sort = (!empty($filters['sort'])) ?
ListParticipatedLastPeer::TABLE_NAME.'.'.$filters['sort'] :
'DEL_DELEGATE_DATE';
//We will be defined the sort
$casesList = new \ProcessMaker\BusinessModel\Cases();
$sort = $casesList->getSortColumn(
__CLASS__ . 'Peer',
BasePeer::TYPE_FIELDNAME,
empty($filters['sort']) ? "DEL_DELEGATE_DATE" : $filters['sort'],
$this->additionalClassName,
$additionalColumns
);
$dir = isset($filters['dir']) ? $filters['dir'] : 'ASC';
$start = isset($filters['start']) ? $filters['start'] : '0';
$limit = isset($filters['limit']) ? $filters['limit'] : '25';

View File

@@ -307,7 +307,16 @@ class ListPaused extends BaseListPaused
$criteria->add(ListPausedPeer::USR_UID, $usr_uid, Criteria::EQUAL);
self::loadFilters($criteria, $filters, $additionalColumns);
$sort = (!empty($filters['sort'])) ? ListPausedPeer::TABLE_NAME.'.'.$filters['sort'] : "APP_PAUSED_DATE";
//We will be defined the sort
$casesList = new \ProcessMaker\BusinessModel\Cases();
$sort = $casesList->getSortColumn(
__CLASS__ . 'Peer',
BasePeer::TYPE_FIELDNAME,
empty($filters['sort']) ? "APP_PAUSED_DATE" : $filters['sort'],
$this->additionalClassName,
$additionalColumns
);
$dir = isset($filters['dir']) ? $filters['dir'] : "ASC";
$start = isset($filters['start']) ? $filters['start'] : "0";
$limit = isset($filters['limit']) ? $filters['limit'] : "25";

View File

@@ -301,9 +301,17 @@ class ListUnassigned extends BaseListUnassigned
//Apply some filters
self::loadFilters($criteria, $filters, $additionalColumns);
$sort = (!empty($filters['sort'])) ?
ListUnassignedPeer::TABLE_NAME.'.'.$filters['sort'] :
"LIST_UNASSIGNED.DEL_DELEGATE_DATE";
//We will be defined the sort
$casesList = new \ProcessMaker\BusinessModel\Cases();
$sort = $casesList->getSortColumn(
__CLASS__ . 'Peer',
BasePeer::TYPE_FIELDNAME,
empty($filters['sort']) ? "DEL_DELEGATE_DATE" : $filters['sort'],
$this->additionalClassName,
$additionalColumns
);
$dir = isset($filters['dir']) ? $filters['dir'] : "ASC";
$start = isset($filters['start']) ? $filters['start'] : "0";
$limit = isset($filters['limit']) ? $filters['limit'] : "25";

View File

@@ -24,6 +24,7 @@ try {
$filters['start'] = isset($_REQUEST["start"]) ? $filter->sanitizeInputValue($_REQUEST["start"], 'nosql') : "0";
$filters['limit'] = isset($_REQUEST["limit"]) ? $filter->sanitizeInputValue($_REQUEST["limit"], 'nosql') : "25";
$filters['sort'] = (isset($_REQUEST['sort']))? (($_REQUEST['sort'] == 'APP_STATUS_LABEL')? 'APP_STATUS' : $filter->sanitizeInputValue($_REQUEST["sort"], 'nosql')) : '';
$filters['sort'] = G::toUpper($filters['sort']);
$filters['dir'] = isset($_REQUEST["dir"]) ? $filter->sanitizeInputValue($_REQUEST["dir"], 'nosql') : "DESC";
$filters['action'] = isset($_REQUEST["action"]) ? $filter->sanitizeInputValue($_REQUEST["action"], 'nosql') : "";
$filters['user'] = isset($_REQUEST["user"]) ? $filter->sanitizeInputValue($_REQUEST["user"], 'nosql') : "";
@@ -102,16 +103,26 @@ try {
} else {
$filters['limit'] = (int)$filters['limit'];
}
$filters['sort'] = G::toUpper($filters['sort']);
$columnsList = $listpeer::getFieldNames(BasePeer::TYPE_FIELDNAME);
if (!(in_array($filters['sort'], $columnsList))) {
if ($filters['sort'] == 'APP_CURRENT_USER' && ($listName == 'participated' || $listName == 'participated_last')) {
switch ($filters['sort']) {
case 'APP_CURRENT_USER':
$filters['sort'] = 'DEL_CURRENT_USR_LASTNAME';
} else {
$filters['sort'] = '';
}
break;
case 'DEL_TASK_DUE_DATE':
$filters['sort'] = 'DEL_DUE_DATE';
break;
case 'APP_UPDATE_DATE':
$filters['sort'] = 'DEL_DELEGATE_DATE';
break;
case 'APP_DEL_PREVIOUS_USER':
$filters['sort'] = 'DEL_DUE_DATE';
break;
case 'DEL_CURRENT_TAS_TITLE':
$filters['sort'] = 'APP_TAS_TITLE';
break;
case 'APP_STATUS_LABEL':
$filters['sort'] = 'APP_STATUS';
break;
}
$filters['dir'] = G::toUpper($filters['dir']);

View File

@@ -3329,4 +3329,40 @@ class Cases
);
}
}
/**
* This function get the table.column by order by the result
* We can include the additional table related to the custom cases list
*
* @param string $listPeer, name of the list class
* @param string $field, name of the fieldName
* @param string $sort, name of column by sort
* @param string $additionalClassName, name of the className of pmTable
* @param array $additionalColumns, columns related to the custom cases list
* @return string $tableName
*/
public function getSortColumn($listPeer, $field, $sort, $additionalClassName = '', $additionalColumns = array())
{
$columnSort = $sort;
//We will check if the column by sort is a LIST table
$columnsList = $listPeer::getFieldNames($field);
if (in_array($sort, $columnsList)) {
$columnSort = $listPeer::TABLE_NAME . '.' . $sort;
} else {
//We will sort by CUSTOM CASE LIST table
if (count($additionalColumns) > 0) {
require_once(PATH_DATA_SITE . 'classes' . PATH_SEP . $additionalClassName . '.php');
$aTable = explode('.', current($additionalColumns));
if (count($aTable) > 0) {
$tableName = $aTable[0];
}
}
if (!empty($tableName)) {
$columnSort = $tableName . '.' . $sort;
}
}
return $columnSort;
}
}