X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContact%2FSelector.php;h=8a6ac5b19760c77a46de6aee1a7d43be150dbdd2;hb=6db3b5ecc99b3e66e7c94b03c1b46f90be4d87a1;hp=7c9b3b6beca0955939143bffc2b8ba1670e94c49;hpb=6a74571fd3f5a9140d1de6533f9cb91e26e9c826;p=civicrm-core.git diff --git a/CRM/Contact/Selector.php b/CRM/Contact/Selector.php index 7c9b3b6bec..8a6ac5b197 100644 --- a/CRM/Contact/Selector.php +++ b/CRM/Contact/Selector.php @@ -358,7 +358,7 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se } if ($output == CRM_Core_Selector_Controller::EXPORT) { - $csvHeaders = array(ts('Contact Id'), ts('Contact Type')); + $csvHeaders = array(ts('Contact ID'), ts('Contact Type')); foreach ($this->getColHeads($action, $output) as $column) { if (array_key_exists('name', $column)) { $csvHeaders[] = $column['name']; @@ -832,12 +832,34 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se function buildPrevNextCache($sort) { $cacheKey = 'civicrm search ' . $this->_key; - // Get current page requested + // We should clear the cache in following conditions: + // 1. when starting from scratch, i.e new search + // 2. if records are sorted + + // get current page requested $pageNum = CRM_Utils_Request::retrieve('crmPID', 'Integer', CRM_Core_DAO::$_nullObject); - // When starting from scratch, clear any old cache - if (!$pageNum) { + + // get the current sort order + $currentSortID = CRM_Utils_Request::retrieve('crmSID', 'String', CRM_Core_DAO::$_nullObject); + + $session = CRM_Core_Session::singleton(); + + // get previous sort id + $previousSortID = $session->get('previousSortID'); + + // check for current != previous to ensure cache is not reset if paging is done without changing + // sort criteria + if (!$pageNum || (!empty($currentSortID) && $currentSortID != $previousSortID) ) { CRM_Core_BAO_PrevNextCache::deleteItem(NULL, $cacheKey, 'civicrm_contact'); - $pageNum = 1; + // this means it's fresh search, so set pageNum=1 + if (!$pageNum) { + $pageNum = 1; + } + } + + // set the current sort as previous sort + if (!empty($currentSortID)) { + $session->set('previousSortID', $currentSortID); } $pageSize = CRM_Utils_Request::retrieve('crmRowCount', 'Integer', CRM_Core_DAO::$_nullObject, FALSE, 50); @@ -888,6 +910,7 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se 'name' => ts('View'), 'url' => 'civicrm/contact/view', 'qs' => 'reset=1&cid=%%id%%', + 'class' => 'no-popup', 'title' => ts('View Contact Details'), ), array(