From d8a2237530c235eac0fbf0e5cb6a2cc018e38f73 Mon Sep 17 00:00:00 2001 From: Brian Shaughnessy Date: Tue, 3 Dec 2013 14:59:15 -0500 Subject: [PATCH] CRM-13812 retain trashed contacts in activity selector and apply visual indicator --- CRM/Activity/BAO/Activity.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/CRM/Activity/BAO/Activity.php b/CRM/Activity/BAO/Activity.php index f7b9a9c8a0..8a0aa88f36 100644 --- a/CRM/Activity/BAO/Activity.php +++ b/CRM/Activity/BAO/Activity.php @@ -760,23 +760,22 @@ LEFT JOIN civicrm_case_activity ON ( civicrm_case_activity.activity_id = tbl.ac // create temp table for target contacts $activityContactTempTable = "civicrm_temp_activity_contact_{$randomNum}"; $query = "CREATE TEMPORARY TABLE {$activityContactTempTable} ( - activity_id int unsigned, contact_id int unsigned, record_type_id varchar(16), contact_name varchar(255) ) + activity_id int unsigned, contact_id int unsigned, record_type_id varchar(16), contact_name varchar(255), is_deleted int unsigned ) ENGINE=MYISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci"; CRM_Core_DAO::executeQuery($query); // note that we ignore bulk email for targets, since we don't show it in selector $query = " -INSERT INTO {$activityContactTempTable} ( activity_id, contact_id, record_type_id, contact_name ) +INSERT INTO {$activityContactTempTable} ( activity_id, contact_id, record_type_id, contact_name, is_deleted ) SELECT ac.activity_id, ac.contact_id, ac.record_type_id, - c.sort_name + c.sort_name, + c.is_deleted FROM civicrm_activity_contact ac INNER JOIN {$activityTempTable} ON ( ac.activity_id = {$activityTempTable}.activity_id ) INNER JOIN civicrm_contact c ON c.id = ac.contact_id -WHERE c.is_deleted = 0 - "; CRM_Core_DAO::executeQuery($query); @@ -786,7 +785,8 @@ WHERE c.is_deleted = 0 SELECT {$activityTempTable}.*, {$activityContactTempTable}.contact_id, {$activityContactTempTable}.record_type_id, - {$activityContactTempTable}.contact_name + {$activityContactTempTable}.contact_name, + {$activityContactTempTable}.is_deleted FROM {$activityTempTable} INNER JOIN {$activityContactTempTable} on {$activityTempTable}.activity_id = {$activityContactTempTable}.activity_id ORDER BY fixed_sort_order @@ -836,6 +836,11 @@ ORDER BY fixed_sort_order $values[$activityID]['target_contact_name'] = array(); } + // if deleted, wrap in + if ( $dao->is_deleted ) { + $dao->contact_name = "{$dao->contact_name}"; + } + if ($dao->record_type_id == $sourceID && $dao->contact_id) { $values[$activityID]['source_contact_id'] = $dao->contact_id; $values[$activityID]['source_contact_name'] = $dao->contact_name; -- 2.25.1