diff --git a/CRM/DataprocessorDashlet/Dashlet.php b/CRM/DataprocessorDashlet/Dashlet.php index 3b6d4c79521206b8dd782cbfd78238df6bf3e528..3fc2cfc4f98052f6c0691ba16eab4769d2fa1935 100644 --- a/CRM/DataprocessorDashlet/Dashlet.php +++ b/CRM/DataprocessorDashlet/Dashlet.php @@ -31,6 +31,8 @@ class CRM_DataprocessorDashlet_Dashlet implements Civi\DataProcessor\Output\Outp 'class' => 'crm-select2 huge', 'placeholder' => E::ts('- select -'), )); + $form->add('text', 'default_limit', E::ts('Default Limit')); + $form->add('wysiwyg', 'help_text', E::ts('Help text for this search'), array('rows' => 6, 'cols' => 80)); $defaults = array(); if ($output) { @@ -41,6 +43,12 @@ class CRM_DataprocessorDashlet_Dashlet implements Civi\DataProcessor\Output\Outp if (isset($output['configuration']['title'])) { $defaults['title'] = $output['configuration']['title']; } + if (isset($output['configuration']['default_limit'])) { + $defaults['default_limit'] = $output['configuration']['default_limit']; + } + if (isset($output['configuration']['help_text'])) { + $defaults['help_text'] = $output['configuration']['help_text']; + } } } if (!isset($defaults['permission'])) { @@ -49,6 +57,9 @@ class CRM_DataprocessorDashlet_Dashlet implements Civi\DataProcessor\Output\Outp if (empty($defaults['title'])) { $defaults['title'] = civicrm_api3('DataProcessor', 'getvalue', array('id' => $output['data_processor_id'], 'return' => 'title')); } + if (empty($defaults['default_limit'])) { + $defaults['default_limit'] = 10; + } $form->setDefaults($defaults); } @@ -97,6 +108,8 @@ class CRM_DataprocessorDashlet_Dashlet implements Civi\DataProcessor\Output\Outp $output['permission'] = $submittedValues['permission']; $configuration['title'] = $submittedValues['title']; + $configuration['default_limit'] = $submittedValues['default_limit']; + $configuration['help_text'] = $submittedValues['help_text']; return $configuration; } diff --git a/CRM/DataprocessorDashlet/Form/Dashlet.php b/CRM/DataprocessorDashlet/Form/Dashlet.php index 59cff853ef0087fabb788ed11548b8ac3ec58873..01e0fb672b6143f48aff3df5511a97230cb64b61 100644 --- a/CRM/DataprocessorDashlet/Form/Dashlet.php +++ b/CRM/DataprocessorDashlet/Form/Dashlet.php @@ -12,6 +12,19 @@ class CRM_DataprocessorDashlet_Form_Dashlet extends CRM_DataprocessorSearch_Form $this->setDefaults(array('data_processor' => $this->getDataProcessorName())); } + /** + * Returns the default row limit. + * + * @return int + */ + protected function getDefaultLimit() { + $defaultLimit = 10; + if (!empty($this->dataProcessorOutput['configuration']['default_limit'])) { + $defaultLimit = $this->dataProcessorOutput['configuration']['default_limit']; + } + return $defaultLimit; + } + /** * Returns the name of the ID field in the dataset. diff --git a/CRM/DataprocessorSearch/Form/AbstractSearch.php b/CRM/DataprocessorSearch/Form/AbstractSearch.php index 1a772bc92629abeec2afff5b69b34d048c4ff6b0..aef3e30004ef5a82d80473495312d8ff1fe71f54 100644 --- a/CRM/DataprocessorSearch/Form/AbstractSearch.php +++ b/CRM/DataprocessorSearch/Form/AbstractSearch.php @@ -175,7 +175,7 @@ abstract class CRM_DataprocessorSearch_Form_AbstractSearch extends CRM_Dataproce $this->runExport($export_id); } - $limit = CRM_Utils_Request::retrieve('crmRowCount', 'Positive', $this, FALSE, CRM_Utils_Pager::ROWCOUNT); + $limit = CRM_Utils_Request::retrieve('crmRowCount', 'Positive', $this, FALSE, $this->getDefaultLimit()); $pageId = CRM_Utils_Request::retrieve('crmPID', 'Positive', $this, FALSE, 1); $this->buildRows($pageId, $limit); $this->addExportOutputs(); @@ -183,6 +183,15 @@ abstract class CRM_DataprocessorSearch_Form_AbstractSearch extends CRM_Dataproce } + /** + * Returns the default row limit. + * + * @return int + */ + protected function getDefaultLimit() { + return CRM_Utils_Pager::ROWCOUNT; + } + protected function runExport($export_id) { $factory = dataprocessor_get_factory(); self::applyFilters($this->dataProcessorClass, $this->_formValues); @@ -340,7 +349,7 @@ abstract class CRM_DataprocessorSearch_Form_AbstractSearch extends CRM_Dataproce $params['total'] = 0; $params['status'] =E::ts('%%StatusMessage%%'); $params['csvString'] = NULL; - $params['rowCount'] = CRM_Utils_Pager::ROWCOUNT; + $params['rowCount'] = $this->getDefaultLimit(); $params['buttonTop'] = 'PagerTopButton'; $params['buttonBottom'] = 'PagerBottomButton'; return $params; diff --git a/templates/CRM/DataprocessorDashlet/Form/OutputConfiguration/Dashlet.tpl b/templates/CRM/DataprocessorDashlet/Form/OutputConfiguration/Dashlet.tpl index 56a1a996b4d7cd065568052416b79d578ff26989..175797053f20a18eee7c425d3878e7144224f36f 100644 --- a/templates/CRM/DataprocessorDashlet/Form/OutputConfiguration/Dashlet.tpl +++ b/templates/CRM/DataprocessorDashlet/Form/OutputConfiguration/Dashlet.tpl @@ -6,9 +6,21 @@ <div class="clear"></div> </div> + <div class="crm-section"> + <div class="label">{$form.permission.label}</div> + <div class="content">{$form.permission.html}</div> + <div class="clear"></div> + </div> + + <div class="crm-section"> + <div class="label">{$form.help_text.label}</div> + <div class="content">{$form.help_text.html}</div> + <div class="clear"></div> + </div> + <div class="crm-section"> - <div class="label">{$form.permission.label}</div> - <div class="content">{$form.permission.html}</div> + <div class="label">{$form.default_limit.label}</div> + <div class="content">{$form.default_limit.html}</div> <div class="clear"></div> </div>