From 2c3ccaa9e28c603d93690c9054941a2953073001 Mon Sep 17 00:00:00 2001 From: eileen Date: Mon, 28 Oct 2019 11:17:13 +1300 Subject: [PATCH] Add call to getSearchFieldMetadata --- CRM/Mailing/BAO/Query.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/CRM/Mailing/BAO/Query.php b/CRM/Mailing/BAO/Query.php index aadb018caf..348415c180 100644 --- a/CRM/Mailing/BAO/Query.php +++ b/CRM/Mailing/BAO/Query.php @@ -127,6 +127,21 @@ class CRM_Mailing_BAO_Query { } } + /** + * Get the metadata for fields to be included on the mailing search form. + * + * @throws \CiviCRM_API3_Exception + * + * @todo ideally this would be a trait included on the mailing search & advanced search + * rather than a static function. + */ + public static function getSearchFieldMetadata() { + $fields = []; + $metadata = civicrm_api3('Mailing', 'getfields', [])['values']; + $metadata = array_merge($metadata, civicrm_api3('MailingJob', 'getfields', [])['values']); + return array_intersect_key($metadata, array_flip($fields)); + } + /** * @param $query */ @@ -395,10 +410,14 @@ class CRM_Mailing_BAO_Query { /** * Add all the elements shared between Mailing search and advnaced search. * + * @param \CRM_Mailing_Form_Search $form * - * @param CRM_Core_Form $form + * @throws \CiviCRM_API3_Exception */ public static function buildSearchForm(&$form) { + $form->addSearchFieldMetadata(['Mailing' => self::getSearchFieldMetadata()]); + $form->addFormFieldsFromMetadata(); + // mailing selectors $mailings = CRM_Mailing_BAO_Mailing::getMailingsList(); -- 2.25.1