From c997dfa813ef05db5b7f0c13f05a314cfef432a0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20Sch=C3=BCttler?= Date: Tue, 25 Oct 2016 16:35:14 +0200 Subject: [PATCH] CRM-19563: Add mapping_type_id, name and description to mappings from search builder --- CRM/Contact/BAO/Group.php | 24 +++++++++++++++++++++--- CRM/Contact/Form/Task/SaveSearch.php | 24 +++++++++++++++++++++--- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/CRM/Contact/BAO/Group.php b/CRM/Contact/BAO/Group.php index ee0f3f19c2..b92eaae67b 100644 --- a/CRM/Contact/BAO/Group.php +++ b/CRM/Contact/BAO/Group.php @@ -657,9 +657,13 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group { //save the mapping for search builder if (!$ssId) { //save record in mapping table - $temp = array(); - $mappingParams = array('mapping_type' => 'Search Builder'); - $mapping = CRM_Core_BAO_Mapping::add($mappingParams, $temp); + $mappingParams = array( + 'mapping_type_id' => CRM_Core_OptionGroup::getValue('mapping_type', + 'Search Builder', + 'name' + ), + ); + $mapping = CRM_Core_BAO_Mapping::add($mappingParams); $mappingId = $mapping->id; } else { @@ -706,6 +710,20 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group { $smartGroupId = $smartGroup->id; } + // Update mapping with the name and description of the hidden smart group. + if ($mappingId) { + $mappingParams = array( + 'id' => $mappingId, + 'name' => CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $smartGroupId, 'name', 'id'), + 'description' => CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $smartGroupId, 'description', 'id'), + 'mapping_type_id' => CRM_Core_OptionGroup::getValue('mapping_type', + 'Search Builder', + 'name' + ), + ); + CRM_Core_BAO_Mapping::add($mappingParams); + } + return array($smartGroupId, $ssId); } diff --git a/CRM/Contact/Form/Task/SaveSearch.php b/CRM/Contact/Form/Task/SaveSearch.php index e8632ccdae..9fe9f0de11 100644 --- a/CRM/Contact/Form/Task/SaveSearch.php +++ b/CRM/Contact/Form/Task/SaveSearch.php @@ -157,9 +157,13 @@ class CRM_Contact_Form_Task_SaveSearch extends CRM_Contact_Form_Task { if (!$this->_id) { //save record in mapping table - $mappingParams = array('mapping_type' => 'Search Builder'); - $temp = array(); - $mapping = CRM_Core_BAO_Mapping::add($mappingParams, $temp); + $mappingParams = array( + 'mapping_type_id' => CRM_Core_OptionGroup::getValue('mapping_type', + 'Search Builder', + 'name' + ), + ); + $mapping = CRM_Core_BAO_Mapping::add($mappingParams); $mappingId = $mapping->id; } else { @@ -232,6 +236,20 @@ class CRM_Contact_Form_Task_SaveSearch extends CRM_Contact_Form_Task { CRM_Contact_BAO_Group::create($params); + // Update mapping with the name and description of the group. + if ($mappingId) { + $mappingParams = array( + 'id' => $mappingId, + 'name' => CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $group->id, 'name', 'id'), + 'description' => CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $group->id, 'description', 'id'), + 'mapping_type_id' => CRM_Core_OptionGroup::getValue('mapping_type', + 'Search Builder', + 'name' + ), + ); + CRM_Core_BAO_Mapping::add($mappingParams); + } + // CRM-9464 $this->_id = $savedSearch->id; -- 2.25.1