Case ui enhancements & code cleanup
[civicrm-core.git] / CRM / Activity / Page / AJAX.php
index b4c077026cc2aa3e751da9c1829bb87002ea4cf8..6210224d38410242869e885b47744dff027d4826 100644 (file)
@@ -196,7 +196,7 @@ class CRM_Activity_Page_AJAX {
 
     foreach ($caseRelationships as $key => $value) {
       //calculate roles that don't have relationships
-      if (CRM_Utils_Array::value($value['relation_type'], $caseRoles)) {
+      if (!empty($caseRoles[$value['relation_type']])) {
         //keep naming from careRoles array
         $caseRelationships[$key]['relation'] = $caseRoles[$value['relation_type']];
         unset($caseRoles[$value['relation_type']]);
@@ -256,7 +256,7 @@ class CRM_Activity_Page_AJAX {
       }
       // email column links/icon
       if ($caseRelationships[$key]['email']) {
-        $caseRelationships[$key]['email'] = '<a href="'.CRM_Utils_System::url('civicrm/contact/view/activity', 'action=reset=1&action=add&atype=3&cid='.$caseRelationships[$key]['cid']).'" title="compose and send an email"><div class="icon email-icon" title="compose and send an email"></div>
+        $caseRelationships[$key]['email'] = '<a class="crm-hover-button crm-popup" href="'.CRM_Utils_System::url('civicrm/activity/email/add', 'reset=1&action=add&atype=3&cid='.$caseRelationships[$key]['cid']).'" title="'. ts('Send an Email') . '"><span class="icon email-icon"></span>
              </a>';
       }
       // edit links
@@ -264,12 +264,13 @@ class CRM_Activity_Page_AJAX {
         switch($caseRelationships[$key]['source']){
         case 'caseRel':
           $caseRelationships[$key]['actions'] =
-            '<a href="#" title="edit case role" onclick="createRelationship( '.$caseRelationships[$key]['relation_type'].', '.$caseRelationships[$key]['cid'].', '.$caseRelationships[$key]['rel_id'].', '.$idx.', \''.$caseRelationships[$key]['relation'].'\' );return false;"><div class="icon edit-icon" ></div></a>&nbsp;&nbsp;<a href="#" class="case-role-delete" case_id="'.$caseID.'" rel_type="'.$caseRelationships[$key]['relation_type'].'"><div class="icon delete-icon" title="remove contact from case role"></div></a>';
+            '<a href="#" title="edit case role" class="crm-hover-button" onclick="createRelationship( '.$caseRelationships[$key]['relation_type'].', '.$caseRelationships[$key]['cid'].', '.$caseRelationships[$key]['rel_id'].', '.$idx.', \''.$caseRelationships[$key]['relation'].'\' );return false;"><span class="icon edit-icon" ></span></a>
+            <a href="#deleteCaseRole" title="'. ts('Remove Case Role') .'" class="case-miniform crm-hover-button" data-case_id="'.$caseID.'" data-rel_type="'.$caseRelationships[$key]['relation_type'].'" data-key="'. CRM_Core_Key::get('civicrm/ajax/delcaserole') .'"><span class="icon delete-icon"></span></a>';
           break;
 
         case 'caseRoles':
           $caseRelationships[$key]['actions'] =
-            '<a href="#" title="edit case role" onclick="createRelationship('.$caseRelationships[$key]['relation_type'].', null, null, '.$idx.',  \''.$caseRelationships[$key]['relation'].'\');return false;"><div class="icon edit-icon"></div></a>';
+            '<a href="#" title="edit case role" class="crm-hover-button" onclick="createRelationship('.$caseRelationships[$key]['relation_type'].', null, null, '.$idx.',  \''.$caseRelationships[$key]['relation'].'\');return false;"><span class="icon edit-icon"></span></a>';
           break;
         }
       } else {
@@ -415,14 +416,19 @@ 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 => '',
+      5 => 'activity_date_time',
+      6 => '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;
@@ -443,16 +449,36 @@ 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' => empty($params['activity_type_id']) ? '' :
+          CRM_Utils_Type::escape($params['activity_type_id'], 'Integer'),
+        'activity_type_exclude_filter_id' => empty($params['activity_type_exclude_id']) ? '' :
+          CRM_Utils_Type::escape($params['activity_type_exclude_id'], 'Integer'),
+      );
+
+      CRM_Core_BAO_Setting::setItem(
+        $activityFilter,
+        CRM_Core_BAO_Setting::PERSONAL_PREFERENCES_NAME,
+        'activity_tab_filter',
+        NULL,
+        $userID,
+        $userID
+      );
     }
 
     $iFilteredTotal = $iTotal = $params['total'];