From 4cb27797ea99ca5e8b6318d3a45f56048d0d7bdf Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Fri, 11 Sep 2020 13:58:43 -0400 Subject: [PATCH] Update links to APIv4 smart groups to point to the new search ext --- CRM/Contact/BAO/SavedSearch.php | 33 +++++++++++++++++-- CRM/Contact/Form/Search.php | 5 ++- CRM/Group/Form/Edit.php | 9 +---- templates/CRM/Contact/Form/Search/Basic.hlp | 13 -------- templates/CRM/Contact/Form/Search/Intro.tpl | 11 +------ .../CRM/Contact/Form/Search/ResultTasks.tpl | 2 +- templates/CRM/Group/Form/Edit.tpl | 11 ++----- 7 files changed, 38 insertions(+), 46 deletions(-) diff --git a/CRM/Contact/BAO/SavedSearch.php b/CRM/Contact/BAO/SavedSearch.php index c5cd15e6e4..d2ed700e7d 100644 --- a/CRM/Contact/BAO/SavedSearch.php +++ b/CRM/Contact/BAO/SavedSearch.php @@ -54,9 +54,9 @@ class CRM_Contact_BAO_SavedSearch extends CRM_Contact_DAO_SavedSearch { * @param array $defaults * (reference ) an assoc array to hold the flattened values. * - * @return CRM_Contact_BAO_SavedSearch + * @return CRM_Contact_DAO_SavedSearch */ - public static function retrieve(&$params, &$defaults) { + public static function retrieve($params, &$defaults = []) { $savedSearch = new CRM_Contact_DAO_SavedSearch(); $savedSearch->copyValues($params); if ($savedSearch->find(TRUE)) { @@ -422,4 +422,33 @@ LEFT JOIN civicrm_email ON (contact_a.id = civicrm_email.contact_id AND civicrm_ } } + /** + * Generate a url to the appropriate search form for a given savedSearch + * + * @param int $id + * Saved search id + * @return string + */ + public static function getEditSearchUrl($id) { + $savedSearch = self::retrieve(['id' => $id]); + // APIv4 search + if (!empty($savedSearch->api_entity)) { + $groupName = self::getName($id); + return CRM_Utils_System::url('civicrm/search', NULL, FALSE, "/load/Group/$groupName"); + } + // Classic search builder + if (!empty($savedSearch->mapping_id)) { + $path = 'civicrm/contact/search/builder'; + } + // Classic custom search + elseif (!empty($savedSearch->search_custom_id)) { + $path = 'civicrm/contact/search/custom'; + } + // Classic advanced search + else { + $path = 'civicrm/contact/search/advanced'; + } + return CRM_Utils_System::url($path, ['reset' => 1, 'ssID' => $id]); + } + } diff --git a/CRM/Contact/Form/Search.php b/CRM/Contact/Form/Search.php index af5e9f8213..d41d16bb6c 100644 --- a/CRM/Contact/Form/Search.php +++ b/CRM/Contact/Form/Search.php @@ -429,11 +429,10 @@ class CRM_Contact_Form_Search extends CRM_Core_Form_Search { $ssID = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $this->_groupID, 'saved_search_id'); $this->assign('ssID', $ssID); - //get the saved search mapping id + //get the saved search edit link if ($ssID) { $this->_ssID = $ssID; - $ssMappingId = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_SavedSearch', $ssID, 'mapping_id'); - $this->assign('ssMappingID', $ssMappingId); + $this->assign('editSmartGroupURL', CRM_Contact_BAO_SavedSearch::getEditSearchUrl($ssID)); } // Set dynamic page title for 'Show Members of Group' diff --git a/CRM/Group/Form/Edit.php b/CRM/Group/Form/Edit.php index e384dc36cc..2fb7d2199d 100644 --- a/CRM/Group/Form/Edit.php +++ b/CRM/Group/Form/Edit.php @@ -137,14 +137,7 @@ class CRM_Group_Form_Edit extends CRM_Core_Form { 'saved_search_id' => $this->_groupValues['saved_search_id'] ?? '', ); if (isset($this->_groupValues['saved_search_id'])) { - $groupValues['mapping_id'] = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_SavedSearch', - $this->_groupValues['saved_search_id'], - 'mapping_id' - ); - $groupValues['search_custom_id'] = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_SavedSearch', - $this->_groupValues['saved_search_id'], - 'search_custom_id' - ); + $this->assign('editSmartGroupURL', CRM_Contact_BAO_SavedSearch::getEditSearchUrl($this->_groupValues['saved_search_id'])); } if (!empty($this->_groupValues['created_id'])) { $groupValues['created_by'] = CRM_Core_DAO::getFieldValue("CRM_Contact_DAO_Contact", $this->_groupValues['created_id'], 'sort_name', 'id'); diff --git a/templates/CRM/Contact/Form/Search/Basic.hlp b/templates/CRM/Contact/Form/Search/Basic.hlp index 4fceec8fc9..5d84d1f7f7 100644 --- a/templates/CRM/Contact/Form/Search/Basic.hlp +++ b/templates/CRM/Contact/Form/Search/Basic.hlp @@ -26,19 +26,6 @@
  • {ts}Use the 'Group Status...' checkboxes to view contacts with 'Pending' status and/or contacts who have been 'Removed' from this group.{/ts}
  • - {if $params.permissionedForGroup} - {capture assign=addMembersURL}{crmURL q="context=amtg&amtgID=`$params.group_id`&reset=1"}{/capture} -

    {ts 1=$addMembersURL 2=$params.group_title}Click Add Contacts to %2 if you want to add contacts to this group.{/ts} - {if !empty($params.ssID)} - {if $params.ssMappingID} - {capture assign=editSmartGroupURL}{crmURL p="civicrm/contact/search/builder" q="reset=1&force=1&ssID=`$params.ssID`"}{/capture} - {else} - {capture assign=editSmartGroupURL}{crmURL p="civicrm/contact/search/advanced" q="reset=1&force=1&ssID=`$params.ssID`"}{/capture} - {/if} - {ts 1=$editSmartGroupURL}Click Edit Smart Group Search Criteria... to change the search query used for this 'smart' group.{/ts} - {/if} -

    - {/if} {/htxt} {htxt id="id-amtg-criteria-title"} diff --git a/templates/CRM/Contact/Form/Search/Intro.tpl b/templates/CRM/Contact/Form/Search/Intro.tpl index adc70018d0..8cbfb012cf 100644 --- a/templates/CRM/Contact/Form/Search/Intro.tpl +++ b/templates/CRM/Contact/Form/Search/Intro.tpl @@ -11,20 +11,11 @@ {* smog = 'show members of group'; amtg = 'add members to group' *} {if $context EQ 'smog'} {* Provide link to modify smart group search criteria if we are viewing a smart group (ssID = saved search ID) *} - {if $permissionEditSmartGroup} - {if !empty($ssID)} - {if $ssMappingID} - {capture assign=editSmartGroupURL}{crmURL p="civicrm/contact/search/builder" q="reset=1&ssID=`$ssID`"}{/capture} - {elseif $savedSearch.search_custom_id} - {capture assign=editSmartGroupURL}{crmURL p="civicrm/contact/search/custom" q="reset=1&ssID=`$ssID`"}{/capture} - {else} - {capture assign=editSmartGroupURL}{crmURL p="civicrm/contact/search/advanced" q="reset=1&ssID=`$ssID`"}{/capture} - {/if} + {if $permissionEditSmartGroup && !empty($editSmartGroupURL)}
    {ts 1=$group.title}Edit Smart Group Search Criteria for %1{/ts} {help id="id-edit-smartGroup"}
    - {/if} {/if} {if $permissionedForGroup} diff --git a/templates/CRM/Contact/Form/Search/ResultTasks.tpl b/templates/CRM/Contact/Form/Search/ResultTasks.tpl index 1e3e0df3cc..28ca892fa1 100644 --- a/templates/CRM/Contact/Form/Search/ResultTasks.tpl +++ b/templates/CRM/Contact/Form/Search/ResultTasks.tpl @@ -23,7 +23,7 @@ {ts}Search Builder{/ts}
    {/if} {if $context eq 'smog'} - {help id="id-smog-criteria" group_id=$group.id group_title=$group.title ssID=$ssID ssMappingID=$ssMappingID permissionedForGroup=$permissionedForGroup} + {help id="id-smog-criteria" group_title=$group.title} {elseif $context eq 'amtg'} {help id="id-amtg-criteria" group_title=$group.title} {else} diff --git a/templates/CRM/Group/Form/Edit.tpl b/templates/CRM/Group/Form/Edit.tpl index 42b82ac93e..fb46c69e9b 100644 --- a/templates/CRM/Group/Form/Edit.tpl +++ b/templates/CRM/Group/Form/Edit.tpl @@ -83,16 +83,9 @@ {if $action neq 1} {/if} -- 2.25.1