From effbcf8507b70128d3bc0b4a33428180f5a6682a Mon Sep 17 00:00:00 2001 From: Sunil Pawar <sunil@skvare.com> Date: Mon, 24 Aug 2020 16:44:23 +0530 Subject: [PATCH] report#45 Ability Search Smart or Normal Group using additional filter on Manage Group page --- CRM/Contact/BAO/Group.php | 8 ++++++++ CRM/Group/Form/Search.php | 8 ++++++++ CRM/Group/Page/AJAX.php | 1 + templates/CRM/Group/Form/Search.tpl | 8 ++++++++ 4 files changed, 25 insertions(+) diff --git a/CRM/Contact/BAO/Group.php b/CRM/Contact/BAO/Group.php index fae22f03b84..cff22581828 100644 --- a/CRM/Contact/BAO/Group.php +++ b/CRM/Contact/BAO/Group.php @@ -1223,6 +1223,14 @@ WHERE {$whereClause}"; $clauses[] = '`groups`.parents IS NULL'; } + $savedSearch = CRM_Utils_Array::value('savedSearch', $params); + if ($savedSearch == 1) { + $clauses[] = 'groups.saved_search_id IS NOT NULL'; + } + else if ($savedSearch == 2) { + $clauses[] = 'groups.saved_search_id IS NULL'; + } + // only show child groups of a specific parent group $parent_id = $params['parent_id'] ?? NULL; if ($parent_id) { diff --git a/CRM/Group/Form/Search.php b/CRM/Group/Form/Search.php index 819b061f21d..a56623fefc0 100644 --- a/CRM/Group/Form/Search.php +++ b/CRM/Group/Form/Search.php @@ -40,6 +40,14 @@ class CRM_Group_Form_Search extends CRM_Core_Form { CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Group', 'title') ); + $optionTypes = [ + '1' => ts('Smart Group'), + '2' => ts('Normal Group'), + ]; + $this->add('select', 'saved_search', ts('Group Type'), + ['' => ts('- any -')] + $optionTypes + ); + $groupTypes = CRM_Core_OptionGroup::values('group_type', TRUE); $config = CRM_Core_Config::singleton(); if ($config->userFramework == 'Joomla') { diff --git a/CRM/Group/Page/AJAX.php b/CRM/Group/Page/AJAX.php index b314d5cb616..9e6d809f373 100644 --- a/CRM/Group/Page/AJAX.php +++ b/CRM/Group/Page/AJAX.php @@ -42,6 +42,7 @@ class CRM_Group_Page_AJAX { 'status' => 'Integer', 'parentsOnly' => 'Integer', 'showOrgInfo' => 'Boolean', + 'savedSearch' => 'Integer', // Ignore 'parent_id' as that case is handled above ]; $params = CRM_Core_Page_AJAX::defaultSortAndPagerParams(); diff --git a/templates/CRM/Group/Form/Search.tpl b/templates/CRM/Group/Form/Search.tpl index a2019f4d1c2..e01ece5d192 100644 --- a/templates/CRM/Group/Form/Search.tpl +++ b/templates/CRM/Group/Form/Search.tpl @@ -55,6 +55,13 @@ {$form.component_mode.html} </td> </tr> + <tr> + <td> + {$form.saved_search.label} <br/>{$form.saved_search.html} + </td> + <td colspan="2"> + </td> + </tr> </table> </div> </div> @@ -116,6 +123,7 @@ d.group_type = groupTypes, d.visibility = $(".crm-group-search-form-block select#visibility").val(), d.status = groupStatus, + d.savedSearch = $('.crm-group-search-form-block select#saved_search').val(), d.component_mode = $(".crm-group-search-form-block select#component_mode").val(), d.showOrgInfo = {/literal}"{$showOrgInfo}"{literal}, d.parentsOnly = parentsOnly -- GitLab