From 698698370497a64957a9a85121fc5cd2f2c0a47d Mon Sep 17 00:00:00 2001 From: Brian Shaughnessy Date: Mon, 20 Apr 2020 17:09:59 -0400 Subject: [PATCH] dev/core#1722 adv search by first/last name --- CRM/Contact/Form/Search/Criteria.php | 6 ++- js/crm.menubar.js | 4 -- .../Form/Search/Criteria/Fields/sort_name.tpl | 39 +++++++++++++++++++ templates/CRM/common/navigation.js.tpl | 4 -- 4 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 templates/CRM/Contact/Form/Search/Criteria/Fields/sort_name.tpl diff --git a/CRM/Contact/Form/Search/Criteria.php b/CRM/Contact/Form/Search/Criteria.php index d4d711296c..cccdd84193 100644 --- a/CRM/Contact/Form/Search/Criteria.php +++ b/CRM/Contact/Form/Search/Criteria.php @@ -245,6 +245,8 @@ class CRM_Contact_Form_Search_Criteria { public static function getSearchFieldMetadata() { $fields = [ 'sort_name' => ['title' => ts('Complete OR Partial Name'), 'template_grouping' => 'basic'], + 'first_name' => ['template_grouping' => 'basic'], + 'last_name' => ['template_grouping' => 'basic'], 'email' => ['title' => ts('Complete OR Partial Email'), 'entity' => 'Email', 'template_grouping' => 'basic'], 'contact_tags' => ['name' => 'contact_tags', 'type' => CRM_Utils_Type::T_INT, 'is_pseudofield' => TRUE, 'template_grouping' => 'basic'], 'created_date' => ['name' => 'created_date', 'template_grouping' => 'changeLog'], @@ -316,7 +318,9 @@ class CRM_Contact_Form_Search_Criteria { $userFramework = CRM_Core_Config::singleton()->userFramework; return [ // For now an empty array is still left in place for ordering. - 'sort_name' => [], + 'sort_name' => [ + 'template' => 'CRM/Contact/Form/Search/Criteria/Fields/sort_name.tpl', + ], 'email' => ['name' => 'email'], 'contact_type' => ['name' => 'contact_type'], 'group' => [ diff --git a/js/crm.menubar.js b/js/crm.menubar.js index eba37ed3c4..bef8be523c 100644 --- a/js/crm.menubar.js +++ b/js/crm.menubar.js @@ -357,10 +357,6 @@ var $selection = $('.crm-quickSearchField input:checked'), label = $selection.parent().text(), value = $selection.val(); - // These fields are not supported by advanced search - if (!value || value === 'first_name' || value === 'last_name') { - value = 'sort_name'; - } $('#crm-qsearch-input').attr({name: value, placeholder: '\uf002 ' + label}); } $('.crm-quickSearchField').click(function() { diff --git a/templates/CRM/Contact/Form/Search/Criteria/Fields/sort_name.tpl b/templates/CRM/Contact/Form/Search/Criteria/Fields/sort_name.tpl new file mode 100644 index 0000000000..cdda1797a9 --- /dev/null +++ b/templates/CRM/Contact/Form/Search/Criteria/Fields/sort_name.tpl @@ -0,0 +1,39 @@ +
+
+ {$form.sort_name.html} +
+
+
+ {$form.first_name.html} {$form.last_name.html} +
+ +{literal} + +{/literal} diff --git a/templates/CRM/common/navigation.js.tpl b/templates/CRM/common/navigation.js.tpl index 25d5b910bd..866769185c 100644 --- a/templates/CRM/common/navigation.js.tpl +++ b/templates/CRM/common/navigation.js.tpl @@ -144,10 +144,6 @@ $('#civicrm-menu').ready(function() { var $selection = $('.crm-quickSearchField input:checked'), label = $selection.parent().text(), value = $selection.val(); - // These fields are not supported by advanced search - if (!value || value === 'first_name' || value === 'last_name') { - value = 'sort_name'; - } $('#sort_name_navigation').attr({name: value, placeholder: label}); } $('.crm-quickSearchField').click(function() { -- 2.25.1