From 482963527ecedff442325a70afcf95ef8882d4a9 Mon Sep 17 00:00:00 2001 From: Jaap Jansma <jaap.jansma@civicoop.org> Date: Fri, 5 May 2023 16:49:58 +0200 Subject: [PATCH] Regression fix dashlets not working anymore #122 --- CHANGELOG.md | 2 ++ CRM/Contact/Selector/DataProcessorContactSearch.php | 2 +- CRM/Dataprocessor/Form/Output/AbstractUIOutputForm.php | 8 +++++--- CRM/DataprocessorDashlet/Form/Dashlet.php | 7 ++++--- CRM/DataprocessorSearch/Form/AbstractSearch.php | 4 ++-- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4a8cfed..a368a9fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Version 1.70 (not yet released) +* Regression fix dashlets not working anymore #122 + # Version 1.69 * Fixed issue with expanded search form when hard limit is enabled. diff --git a/CRM/Contact/Selector/DataProcessorContactSearch.php b/CRM/Contact/Selector/DataProcessorContactSearch.php index 86240431..f7af8c95 100644 --- a/CRM/Contact/Selector/DataProcessorContactSearch.php +++ b/CRM/Contact/Selector/DataProcessorContactSearch.php @@ -44,7 +44,7 @@ class CRM_Contact_Selector_DataProcessorContactSearch { } $this->dataProcessorClass->getDataFlow()->addSort($sortField['name'], $sortDirection); } - CRM_Dataprocessor_Form_Output_AbstractUIOutputForm::applyLimit($this->dataProcessorClass, $formValues); + CRM_Dataprocessor_Form_Output_AbstractUIOutputForm::applyLimit($this->dataProcessorClass, $formValues, $this->dataProcessorOutput); } /** diff --git a/CRM/Dataprocessor/Form/Output/AbstractUIOutputForm.php b/CRM/Dataprocessor/Form/Output/AbstractUIOutputForm.php index 88ab305d..bf39efce 100644 --- a/CRM/Dataprocessor/Form/Output/AbstractUIOutputForm.php +++ b/CRM/Dataprocessor/Form/Output/AbstractUIOutputForm.php @@ -227,9 +227,10 @@ abstract class CRM_Dataprocessor_Form_Output_AbstractUIOutputForm extends CRM_Co /** * Returns the default row limit. * + * @param array|null $output * @return int */ - protected static function getDefaultLimit(): int { + protected static function getDefaultLimit(array $output = null): int { return CRM_Utils_Pager::ROWCOUNT; } @@ -260,12 +261,13 @@ abstract class CRM_Dataprocessor_Form_Output_AbstractUIOutputForm extends CRM_Co * * @param \Civi\DataProcessor\ProcessorType\AbstractProcessorType $dataProcessor * @param array|null $submittedValues + * @param array|null $output * * @return void */ - public static function applyLimit(AbstractProcessorType $dataProcessor, array $submittedValues = null) { + public static function applyLimit(AbstractProcessorType $dataProcessor, array $submittedValues = null, array $output = null) { $hardLimit = static::getHardLimit($submittedValues); - $limit = static::getDefaultLimit(); + $limit = static::getDefaultLimit($output); if (isset($submittedValues['crmRowCount']) && $submittedValues['crmRowCount']) { $limit = $submittedValues['crmRowCount']; } diff --git a/CRM/DataprocessorDashlet/Form/Dashlet.php b/CRM/DataprocessorDashlet/Form/Dashlet.php index f8e6c708..728d4f94 100644 --- a/CRM/DataprocessorDashlet/Form/Dashlet.php +++ b/CRM/DataprocessorDashlet/Form/Dashlet.php @@ -15,12 +15,13 @@ class CRM_DataprocessorDashlet_Form_Dashlet extends CRM_DataprocessorSearch_Form /** * Returns the default row limit. * + * @param array|null $output * @return int */ - protected function getDefaultLimit(): int { + protected static function getDefaultLimit(array $output = null): int { $defaultLimit = 10; - if (!empty($this->dataProcessorOutput['configuration']['default_limit'])) { - $defaultLimit = $this->dataProcessorOutput['configuration']['default_limit']; + if (!empty($output['configuration']['default_limit'])) { + $defaultLimit = $output['configuration']['default_limit']; } return $defaultLimit; } diff --git a/CRM/DataprocessorSearch/Form/AbstractSearch.php b/CRM/DataprocessorSearch/Form/AbstractSearch.php index 20c6e875..37486224 100644 --- a/CRM/DataprocessorSearch/Form/AbstractSearch.php +++ b/CRM/DataprocessorSearch/Form/AbstractSearch.php @@ -310,7 +310,7 @@ abstract class CRM_DataprocessorSearch_Form_AbstractSearch extends CRM_Dataproce } elseif ($id_field) { $this->dataProcessorClass->getDataFlow()->addSort($id_field, 'ASC'); } - static::applyLimit($this->dataProcessorClass, $this->_formValues); + static::applyLimit($this->dataProcessorClass, $this->_formValues, $this->dataProcessorOutput); $this->alterDataProcessor($this->dataProcessorClass); $this->dataProcessorClass->postInitialize(); @@ -437,7 +437,7 @@ abstract class CRM_DataprocessorSearch_Form_AbstractSearch extends CRM_Dataproce $params['total'] = 0; $params['status'] =E::ts('%%StatusMessage%%'); $params['csvString'] = NULL; - $params['rowCount'] = static::getDefaultLimit(); + $params['rowCount'] = static::getDefaultLimit($this->dataProcessorOutput); $params['buttonTop'] = 'PagerTopButton'; $params['buttonBottom'] = 'PagerBottomButton'; return $params; -- GitLab