X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FActivity%2FBAO%2FActivity.php;h=243fcd0ac6ba034785b4a072fc3a7cd48fe2b926;hb=e3a363809875b227257e2247d43ed96115817c65;hp=6187167cde2607e6fae3d5f56e889b464d944cb7;hpb=b4be480a90da537cf7df77530e653afde19f3f9d;p=civicrm-core.git diff --git a/CRM/Activity/BAO/Activity.php b/CRM/Activity/BAO/Activity.php index 6187167cde..243fcd0ac6 100644 --- a/CRM/Activity/BAO/Activity.php +++ b/CRM/Activity/BAO/Activity.php @@ -794,12 +794,13 @@ SELECT ac.activity_id, c.sort_name, c.is_deleted FROM {$activityTempTable} -INNER JOIN civicrm_activity a ON ( a.id = {$activityTempTable}.activity_id AND a.activity_type_id != {$bulkActivityTypeID} ) +INNER JOIN civicrm_activity a ON ( a.id = {$activityTempTable}.activity_id ) INNER JOIN civicrm_activity_contact ac ON ( ac.activity_id = {$activityTempTable}.activity_id ) INNER JOIN civicrm_contact c ON c.id = ac.contact_id - +WHERE ac.record_type_id != %1 "; - CRM_Core_DAO::executeQuery($query); + $params = array(1 => array($targetID, 'Integer')); + CRM_Core_DAO::executeQuery($query, $params); // for each activity insert one target contact // if we load all target contacts the performance will suffer a lot for mass-activities; @@ -812,13 +813,13 @@ SELECT ac.activity_id, c.is_deleted, count(ac.contact_id) FROM {$activityTempTable} -INNER JOIN civicrm_activity a ON ( a.id = {$activityTempTable}.activity_id AND a.activity_type_id = {$bulkActivityTypeID} ) +INNER JOIN civicrm_activity a ON ( a.id = {$activityTempTable}.activity_id ) INNER JOIN civicrm_activity_contact ac ON ( ac.activity_id = {$activityTempTable}.activity_id ) INNER JOIN civicrm_contact c ON c.id = ac.contact_id WHERE ac.record_type_id = %1 GROUP BY ac.activity_id "; - $params = array(1 => array($targetID, 'Integer')); + CRM_Core_DAO::executeQuery($query, $params); // step 3: Combine all temp tables to get final query for activity selector @@ -869,6 +870,7 @@ ORDER BY fixed_sort_order if (empty($values[$activityID]['target_contact_name'])) { $values[$activityID]['target_contact_name'] = array(); + $values[$activityID]['target_contact_counter'] = $dao->counter; } // if deleted, wrap in @@ -1885,7 +1887,6 @@ SELECT display_name ), 'subject' => $subject, 'activity_date_time' => $date, - 'details' => $activity->details, 'is_test' => $activity->is_test, 'status_id' => CRM_Core_OptionGroup::getValue('activity_status', 'Completed', @@ -1903,6 +1904,10 @@ SELECT display_name $activityParams['target_contact_id'][] = $activity->contact_id; } + // CRM-14945 + if (property_exists($activity, 'details')) { + $activityParams['details'] = $activity->details; + } //CRM-4027 if ($targetContactID) { $activityParams['target_contact_id'][] = $targetContactID; @@ -2513,28 +2518,19 @@ INNER JOIN civicrm_option_group grp ON ( grp.id = val.option_group_id AND grp.n elseif (!empty($values['recipients'])) { $contactActivities[$activityId]['target_contact'] = $values['recipients']; } - elseif (!$values['target_contact_name']) { - $contactActivities[$activityId]['target_contact'] = 'n/a'; - } - elseif (!empty($values['target_contact_name'])) { - $count = 0; - $contactActivities[$activityId]['target_contact'] = ''; + elseif (isset($values['target_contact_counter']) && $values['target_contact_counter']) { foreach ($values['target_contact_name'] as $tcID => $tcName) { - if ($tcID && $count < 5) { - $contactActivities[$activityId]['target_contact'] .= CRM_Utils_System::href($tcName, - 'civicrm/contact/view', "reset=1&cid={$tcID}"); - $count++; - if ($count) { - $contactActivities[$activityId]['target_contact'] .= "; "; - } + $contactActivities[$activityId]['target_contact'] .= CRM_Utils_System::href($tcName, + 'civicrm/contact/view', "reset=1&cid={$tcID}"); + } - if ($count == 4) { - $contactActivities[$activityId]['target_contact'] .= "(" . ts('more') . ")"; - break; - } - } + if ($extraCount = $values['target_contact_counter'] - 1) { + $contactActivities[$activityId]['target_contact'] .= ";
" . "(" . ts('%1 more', array(1 => $extraCount)) . ")"; } } + elseif (!$values['target_contact_name']) { + $contactActivities[$activityId]['target_contact'] = 'n/a'; + } if (empty($values['assignee_contact_name'])) { $contactActivities[$activityId]['assignee_contact'] = 'n/a';