X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FActivity%2FPage%2FAJAX.php;h=659259e516adaf1c350f25c0817d61315acdbfb9;hb=2f5acbc8af4025ffcf27a4af59848531b1dd7bf6;hp=f20cc038f091287d9207658000909c3610475b43;hpb=12ec93d76da79447cdf101ee5f978cb588c5f36d;p=civicrm-core.git diff --git a/CRM/Activity/Page/AJAX.php b/CRM/Activity/Page/AJAX.php index f20cc038f0..659259e516 100644 --- a/CRM/Activity/Page/AJAX.php +++ b/CRM/Activity/Page/AJAX.php @@ -1,7 +1,7 @@ $row) { $sortArray[$key] = $row[$sort]; } - $sort_type = "SORT_".strtoupper($sortOrder); - $sort_function = "array_multisort(\$sortArray, ".$sort_type.", \$clientRelationships);"; - eval($sort_function); + $sort_type = "SORT_" . strtoupper($sortOrder); + array_multisort($sortArray, constant($sort_type), $clientRelationships); //limit the rows $allClientRelationships = $clientRelationships; @@ -239,10 +238,8 @@ class CRM_Activity_Page_AJAX { $sortArray[$key] = $row[$sort]; } - $sort_type = "SORT_".strtoupper($sortOrder); - - $sort_function = "array_multisort(\$sortArray, ".$sort_type.", \$caseRelationships);"; - eval($sort_function); + $sort_type = "SORT_" . strtoupper($sortOrder); + array_multisort($sortArray, constant($sort_type), $caseRelationships); //limit rows display $allCaseRelationships = $caseRelationships; @@ -335,8 +332,8 @@ class CRM_Activity_Page_AJAX { $mainActivity->free(); /* Mark previous activity as deleted. If it was a non-case activity - * then just change the subject. - */ + * then just change the subject. + */ if (in_array($params['mode'], array( 'move', 'file'))) { @@ -348,7 +345,8 @@ class CRM_Activity_Page_AJAX { } else { $otherActivity->subject = ts('(Filed on case %1)', array( - 1 => $params['caseID'])) . ' ' . $otherActivity->subject; + 1 => $params['caseID'] + )) . ' ' . $otherActivity->subject; } $otherActivity->activity_date_time = $actDateTime; $otherActivity->save(); @@ -361,12 +359,20 @@ class CRM_Activity_Page_AJAX { if (!empty($params['targetContactIds'])) { $targetContacts = array_unique(explode(',', $params['targetContactIds'])); } - - $activityContacts = CRM_Core_PseudoConstant::activityContacts('name'); + + $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name'); $sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts); $assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts); $targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts); + $sourceContactID = CRM_Activity_BAO_Activity::getSourceContactID($params['activityID']); + $src_params = array( + 'activity_id' => $mainActivityId, + 'contact_id' => $sourceContactID, + 'record_type_id' => $sourceID + ); + CRM_Activity_BAO_ActivityContact::create($src_params); + foreach ($targetContacts as $key => $value) { $targ_params = array( 'activity_id' => $mainActivityId, @@ -409,14 +415,18 @@ class CRM_Activity_Page_AJAX { $context = CRM_Utils_Type::escape(CRM_Utils_Array::value('context', $_GET), 'String'); $sortMapper = array( - 0 => 'activity_type', 1 => 'subject', 2 => 'source_contact_name', - 3 => '', 4 => 'activity_date_time', 5 => 'status_id', + 0 => 'activity_type', + 1 => 'subject', + 2 => 'source_contact_name', + 3 => '', + 4 => 'activity_date_time', + 5 => 'status_id', ); - $sEcho = CRM_Utils_Type::escape($_REQUEST['sEcho'], 'Integer'); - $offset = isset($_REQUEST['iDisplayStart']) ? CRM_Utils_Type::escape($_REQUEST['iDisplayStart'], 'Integer') : 0; - $rowCount = isset($_REQUEST['iDisplayLength']) ? CRM_Utils_Type::escape($_REQUEST['iDisplayLength'], 'Integer') : 25; - $sort = isset($_REQUEST['iSortCol_0']) ? CRM_Utils_Array::value(CRM_Utils_Type::escape($_REQUEST['iSortCol_0'], 'Integer'), $sortMapper) : NULL; + $sEcho = CRM_Utils_Type::escape($_REQUEST['sEcho'], 'Integer'); + $offset = isset($_REQUEST['iDisplayStart']) ? CRM_Utils_Type::escape($_REQUEST['iDisplayStart'], 'Integer') : 0; + $rowCount = isset($_REQUEST['iDisplayLength']) ? CRM_Utils_Type::escape($_REQUEST['iDisplayLength'], 'Integer') : 25; + $sort = isset($_REQUEST['iSortCol_0']) ? CRM_Utils_Array::value(CRM_Utils_Type::escape($_REQUEST['iSortCol_0'], 'Integer'), $sortMapper) : NULL; $sortOrder = isset($_REQUEST['sSortDir_0']) ? CRM_Utils_Type::escape($_REQUEST['sSortDir_0'], 'String') : 'asc'; $params = $_POST; @@ -437,16 +447,38 @@ class CRM_Activity_Page_AJAX { $session = CRM_Core_Session::singleton(); $userID = $session->get('userID'); if ($userID) { - $activityFilter = - array('activity_type_filter_id' => CRM_Utils_Array::value('activity_type_id', $params), - 'activity_type_exclude_filter_id' => CRM_Utils_Array::value('activity_type_exclude_id', $params)); - CRM_Core_BAO_Setting::setItem($activityFilter, - CRM_Core_BAO_Setting::PERSONAL_PREFERENCES_NAME, - 'activity_tab_filter', - NULL, - $userID, - $userID - ); + //flush cache before setting filter to account for global cache (memcache) + $domainID = CRM_Core_Config::domainID(); + $cacheKey = CRM_Core_BAO_Setting::inCache( + CRM_Core_BAO_Setting::PERSONAL_PREFERENCES_NAME, + 'activity_tab_filter', + NULL, + $userID, + TRUE, + $domainID, + TRUE + ); + if ( $cacheKey ) { + CRM_Core_BAO_Setting::flushCache($cacheKey); + } + + $activityFilter = array( + 'activity_type_filter_id' => + ( CRM_Utils_Array::value('activity_type_id', $params) ) ? + CRM_Utils_Type::escape(CRM_Utils_Array::value('activity_type_id', $params), 'Integer') : '', + 'activity_type_exclude_filter_id' => + ( CRM_Utils_Array::value('activity_type_exclude_id', $params) ) ? + CRM_Utils_Type::escape(CRM_Utils_Array::value('activity_type_exclude_id', $params), 'Integer') : '', + ); + + CRM_Core_BAO_Setting::setItem( + $activityFilter, + CRM_Core_BAO_Setting::PERSONAL_PREFERENCES_NAME, + 'activity_tab_filter', + NULL, + $userID, + $userID + ); } $iFilteredTotal = $iTotal = $params['total'];