From 56752ec0fe7782e03961c5256ff51875a0be8a5e Mon Sep 17 00:00:00 2001 From: eileen Date: Thu, 15 Oct 2020 08:44:31 +1300 Subject: [PATCH] dev/core#2066 Extract getSelectedIDs This is an extension of https://github.com/civicrm/civicrm-core/pull/18768 I decided moving the IF into the function & making FALSE a return option was cleaner --- CRM/Activity/Form/Task.php | 8 +++----- CRM/Campaign/Form/Task.php | 12 +++--------- CRM/Contribute/Form/Task.php | 7 ++----- CRM/Core/Form/Task.php | 19 +++++++++++-------- CRM/Event/Form/Task.php | 12 +++--------- CRM/Grant/Form/Task.php | 12 +++--------- CRM/Mailing/Form/Task.php | 12 +++--------- CRM/Member/Form/Task.php | 12 +++--------- CRM/Pledge/Form/Task.php | 12 +++--------- .../phpunit/CRM/Contribute/Form/TaskTest.php | 2 +- 10 files changed, 35 insertions(+), 73 deletions(-) diff --git a/CRM/Activity/Form/Task.php b/CRM/Activity/Form/Task.php index bee1f03e48..23afcfab94 100644 --- a/CRM/Activity/Form/Task.php +++ b/CRM/Activity/Form/Task.php @@ -49,11 +49,9 @@ class CRM_Activity_Form_Task extends CRM_Core_Form_Task { $form->_task = $values['task']; - $ids = []; - if ($values['radio_ts'] === 'ts_sel') { - $ids = $form->getSelectedIDs($values); - } - else { + $ids = $form->getSelectedIDs($values); + + if (!$ids) { $queryParams = $form->get('queryParams'); $query = new CRM_Contact_BAO_Query($queryParams, NULL, NULL, FALSE, FALSE, CRM_Contact_BAO_Query::MODE_ACTIVITY diff --git a/CRM/Campaign/Form/Task.php b/CRM/Campaign/Form/Task.php index 61411931d0..3b9844e271 100644 --- a/CRM/Campaign/Form/Task.php +++ b/CRM/Campaign/Form/Task.php @@ -35,15 +35,9 @@ class CRM_Campaign_Form_Task extends CRM_Core_Form_Task { $this->_task = $values['task']; - $ids = []; - if ($values['radio_ts'] == 'ts_sel') { - foreach ($values as $name => $value) { - if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) { - $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN); - } - } - } - else { + $ids = $form->getSelectedIDs($values); + + if (!$ids) { $qfKey = CRM_Utils_Request::retrieve('qfKey', 'String', $this); $cacheKey = "civicrm search {$qfKey}"; $allCids = Civi::service('prevnext')->getSelection($cacheKey, "getall"); diff --git a/CRM/Contribute/Form/Task.php b/CRM/Contribute/Form/Task.php index e8756cc484..60cc441184 100644 --- a/CRM/Contribute/Form/Task.php +++ b/CRM/Contribute/Form/Task.php @@ -61,11 +61,8 @@ class CRM_Contribute_Form_Task extends CRM_Core_Form_Task { $form->_task = $values['task'] ?? NULL; - $ids = []; - if (isset($values['radio_ts']) && $values['radio_ts'] === 'ts_sel') { - $ids = $form->getSelectedIDs($values); - } - else { + $ids = $form->getSelectedIDs($values); + if (!$ids) { $queryParams = $form->get('queryParams'); $isTest = FALSE; if (is_array($queryParams)) { diff --git a/CRM/Core/Form/Task.php b/CRM/Core/Form/Task.php index 4dd9e128b8..eba5beea2c 100644 --- a/CRM/Core/Form/Task.php +++ b/CRM/Core/Form/Task.php @@ -101,20 +101,23 @@ abstract class CRM_Core_Form_Task extends CRM_Core_Form { } /** - * Get the ids the user has selected. + * Get the ids the user has selected or FALSE if selection has not been used. * * @param array $values * - * @return array + * @return array|bool */ - public function getSelectedIDs(array $values): array { - $ids = []; - foreach ($values as $name => $value) { - if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) { - $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN); + public function getSelectedIDs(array $values) { + if ($values['radio_ts'] === 'ts_sel') { + $ids = []; + foreach ($values as $name => $value) { + if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) { + $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN); + } } + return $ids; } - return $ids; + return FALSE; } /** diff --git a/CRM/Event/Form/Task.php b/CRM/Event/Form/Task.php index 4da684f513..1701743fff 100644 --- a/CRM/Event/Form/Task.php +++ b/CRM/Event/Form/Task.php @@ -53,15 +53,9 @@ class CRM_Event_Form_Task extends CRM_Core_Form_Task { CRM_Core_Error::statusBounce(ts('You do not have permission to access this page.')); } - $ids = []; - if ($values['radio_ts'] == 'ts_sel') { - foreach ($values as $name => $value) { - if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) { - $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN); - } - } - } - else { + $ids = $form->getSelectedIDs($values); + + if (!$ids) { $queryParams = $form->get('queryParams'); $sortOrder = NULL; if ($form->get(CRM_Utils_Sort::SORT_ORDER)) { diff --git a/CRM/Grant/Form/Task.php b/CRM/Grant/Form/Task.php index 893077cfb7..ae507f1dc2 100644 --- a/CRM/Grant/Form/Task.php +++ b/CRM/Grant/Form/Task.php @@ -49,15 +49,9 @@ class CRM_Grant_Form_Task extends CRM_Core_Form_Task { CRM_Core_Error::statusBounce(ts('You do not have permission to access this page.')); } - $ids = []; - if ($values['radio_ts'] == 'ts_sel') { - foreach ($values as $name => $value) { - if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) { - $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN); - } - } - } - else { + $ids = $form->getSelectedIDs($values); + + if (!$ids) { $queryParams = $form->get('queryParams'); $sortOrder = NULL; if ($form->get(CRM_Utils_Sort::SORT_ORDER)) { diff --git a/CRM/Mailing/Form/Task.php b/CRM/Mailing/Form/Task.php index 0b0402be93..48a0e48264 100644 --- a/CRM/Mailing/Form/Task.php +++ b/CRM/Mailing/Form/Task.php @@ -39,15 +39,9 @@ class CRM_Mailing_Form_Task extends CRM_Core_Form_Task { $form->_task = $values['task'] ?? NULL; // ids are mailing event queue ids - $ids = []; - if ($values['radio_ts'] == 'ts_sel') { - foreach ($values as $name => $value) { - if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) { - $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN); - } - } - } - else { + $ids = $form->getSelectedIDs($values); + + if (!$ids) { $queryParams = $form->get('queryParams'); $sortOrder = NULL; if ($form->get(CRM_Utils_Sort::SORT_ORDER)) { diff --git a/CRM/Member/Form/Task.php b/CRM/Member/Form/Task.php index 6718d6eaeb..a7a4724968 100644 --- a/CRM/Member/Form/Task.php +++ b/CRM/Member/Form/Task.php @@ -56,15 +56,9 @@ class CRM_Member_Form_Task extends CRM_Core_Form_Task { CRM_Core_Error::statusBounce(ts('You do not have permission to access this page.')); } - $ids = []; - if ($values['radio_ts'] === 'ts_sel') { - foreach ($values as $name => $value) { - if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) { - $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN); - } - } - } - else { + $ids = $form->getSelectedIDs($values); + + if (!$ids) { $queryParams = $form->get('queryParams'); $sortOrder = NULL; if ($form->get(CRM_Utils_Sort::SORT_ORDER)) { diff --git a/CRM/Pledge/Form/Task.php b/CRM/Pledge/Form/Task.php index 12df902a91..e83bd77d24 100644 --- a/CRM/Pledge/Form/Task.php +++ b/CRM/Pledge/Form/Task.php @@ -47,15 +47,9 @@ class CRM_Pledge_Form_Task extends CRM_Core_Form_Task { $form->_task = $values['task']; - $ids = []; - if ($values['radio_ts'] == 'ts_sel') { - foreach ($values as $name => $value) { - if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) { - $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN); - } - } - } - else { + $ids = $form->getSelectedIDs($values); + + if (!$ids) { $queryParams = $form->get('queryParams'); $sortOrder = NULL; if ($form->get(CRM_Utils_Sort::SORT_ORDER)) { diff --git a/tests/phpunit/CRM/Contribute/Form/TaskTest.php b/tests/phpunit/CRM/Contribute/Form/TaskTest.php index 51605fe923..b222d8151f 100644 --- a/tests/phpunit/CRM/Contribute/Form/TaskTest.php +++ b/tests/phpunit/CRM/Contribute/Form/TaskTest.php @@ -66,7 +66,7 @@ class CRM_Contribute_Form_TaskTest extends CiviUnitTestCase { } // Assert contribIds are returned in a sorted order. - $form = $this->getFormObject('CRM_Contribute_Form_Task', [], 'Search'); + $form = $this->getFormObject('CRM_Contribute_Form_Task', ['radio_ts' => 'ts_all'], 'Search'); foreach ($fields as $val) { $form->set(CRM_Utils_Sort::SORT_ORDER, "`{$val}` asc"); CRM_Contribute_Form_Task::preProcessCommon($form); -- 2.25.1