From c1d2651943f1f71c9b0cef55e40ca47a9890f5df Mon Sep 17 00:00:00 2001 From: monishdeb Date: Thu, 19 Sep 2013 21:06:07 +0530 Subject: [PATCH] CRM-13378 fix ---------------------------------------- * CRM-13378: "CC" not displaying when viewing sent email http://issues.civicrm.org/jira/browse/CRM-13378 --- CRM/Activity/BAO/Activity.php | 9 ++++++--- CRM/Contact/Form/Task/EmailCommon.php | 22 ++++++++++++++++++++-- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/CRM/Activity/BAO/Activity.php b/CRM/Activity/BAO/Activity.php index 3529566f80..80ef94a95e 100644 --- a/CRM/Activity/BAO/Activity.php +++ b/CRM/Activity/BAO/Activity.php @@ -701,7 +701,7 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity { // this cannot be primary key because we need that for the auto_increment // fixed_sort_order field $sql .= " - UNIQUE KEY ( activity_id ) + UNIQUE KEY ( activity_id ) ) ENGINE=HEAP DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci "; @@ -1149,6 +1149,7 @@ INNER JOIN civicrm_contact contact ON ac.contact_id = contact.id * @param string $cc cc recipient * @param string $bcc bcc recipient * @param array $contactIds contact ids + * @param string $additionalDetails the additional information of CC and BCC appended to the activity Details * * @return array ( sent, activityId) if any email is sent and activityId * @access public @@ -1165,7 +1166,8 @@ INNER JOIN civicrm_contact contact ON ac.contact_id = contact.id $attachments = NULL, $cc = NULL, $bcc = NULL, - $contactIds // FIXME a param with no default shouldn't be last + $contactIds, // FIXME a param with no default shouldn't be last + $additionalDetails = NULL ) { // get the contact details of logged in contact, which we set as from email if ($userID == NULL) { @@ -1200,10 +1202,11 @@ INNER JOIN civicrm_contact contact ON ac.contact_id = contact.id // CRM-6265: save both text and HTML parts in details (if present) if ($html and $text) { - $details = "-ALTERNATIVE ITEM 0-\n$html\n-ALTERNATIVE ITEM 1-\n$text\n-ALTERNATIVE END-\n"; + $details = "-ALTERNATIVE ITEM 0-\n$html$additionalDetails\n-ALTERNATIVE ITEM 1-\n$text$additionalDetails\n-ALTERNATIVE END-\n"; } else { $details = $html ? $html : $text; + $details .= $additionalDetails; } $activityParams = array( diff --git a/CRM/Contact/Form/Task/EmailCommon.php b/CRM/Contact/Form/Task/EmailCommon.php index 3d8a4cf143..ca503ddb90 100644 --- a/CRM/Contact/Form/Task/EmailCommon.php +++ b/CRM/Contact/Form/Task/EmailCommon.php @@ -42,6 +42,7 @@ class CRM_Contact_Form_Task_EmailCommon { CONST MAX_EMAILS_KILL_SWITCH = 50; public $_contactDetails = array(); + public $_additionalContactDetails = array(); public $_allContactDetails = array(); public $_toContactEmails = array(); @@ -146,8 +147,9 @@ class CRM_Contact_Form_Task_EmailCommon { 'name' => $name, 'id' => $matches[0][$i], ); + $id = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Email', $matches[2][$i] , 'contact_id', 'email'); + $form->_additionalContactDetails[$element][$id] = CRM_Contact_BAO_Contact::displayName($id); } - $var = "{$element}Contact"; $form->assign($var, json_encode($elementValues)); } @@ -323,6 +325,21 @@ class CRM_Contact_Form_Task_EmailCommon { $bcc = CRM_Utils_Array::value('bcc_id', $formValues); $subject = $formValues['subject']; + + // CRM-13378: Append CC and BCC information at the end of Activity Details + $elements = array('cc', 'bcc'); + $additionalDetails = NULL; + foreach ($elements as $element) { + if (isset($form->_additionalContactDetails[$element])) { + foreach ($form->_additionalContactDetails[$element] as $id => $display_name) { + $url = CRM_Utils_System::url('civicrm/contact/view', "reset=1&force=1&cid={$id}"); + $form->_additionalContactDetails[$element][$id] = "$display_name"; + } + $additionalDetails .= "\n$element : " . implode(", ", $form->_additionalContactDetails[$element]); + unset($form->_additionalContactDetails[$element]); + } + } + // CRM-5916: prepend case id hash to CiviCase-originating emails’ subjects if (isset($form->_caseId) && is_numeric($form->_caseId)) { $hash = substr(sha1(CIVICRM_SITE_KEY . $form->_caseId), 0, 7); @@ -395,7 +412,8 @@ class CRM_Contact_Form_Task_EmailCommon { $attachments, $cc, $bcc, - array_keys($form->_contactDetails) + array_keys($form->_contactDetails), + $additionalDetails ); if ($sent) { -- 2.25.1