From 8c99c0bb77b160c05ec7949f6781fe92e2261443 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Fri, 16 Dec 2016 15:32:55 -0500 Subject: [PATCH] CRM-19723 - Display activity type icons in datatables --- CRM/Activity/BAO/Activity.php | 12 +++++++++++- CRM/Case/BAO/Case.php | 3 ++- CRM/Case/PseudoConstant.php | 3 ++- tests/phpunit/CRM/Activity/BAO/ActivityTest.php | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CRM/Activity/BAO/Activity.php b/CRM/Activity/BAO/Activity.php index 6d892bf809..247fff5301 100644 --- a/CRM/Activity/BAO/Activity.php +++ b/CRM/Activity/BAO/Activity.php @@ -2461,6 +2461,16 @@ INNER JOIN civicrm_option_group grp ON ( grp.id = val.option_group_id AND grp.n $params['caseId'] = NULL; $context = CRM_Utils_Array::value('context', $params); $showContactOverlay = !CRM_Utils_String::startsWith($context, "dashlet"); + $activityTypeInfo = civicrm_api3('OptionValue', 'get', array( + 'option_group_id' => "activity_type", + 'options' => array('limit' => 0), + )); + $activityIcons = array(); + foreach ($activityTypeInfo['values'] as $type) { + if (!empty($type['icon'])) { + $activityIcons[$type['value']] = $type['icon']; + } + } // Get contact activities. $activities = CRM_Activity_BAO_Activity::getActivities($params); @@ -2502,7 +2512,7 @@ INNER JOIN civicrm_option_group grp ON ( grp.id = val.option_group_id AND grp.n $activity['DT_RowAttr']['data-entity'] = 'activity'; $activity['DT_RowAttr']['data-id'] = $activityId; - $activity['activity_type'] = $values['activity_type']; + $activity['activity_type'] = (!empty($activityIcons[$values['activity_type_id']]) ? ' ' : '') . $values['activity_type']; $activity['subject'] = $values['subject']; $activity['source_contact_name'] = ''; diff --git a/CRM/Case/BAO/Case.php b/CRM/Case/BAO/Case.php index 5fb8c31487..02db237d8b 100644 --- a/CRM/Case/BAO/Case.php +++ b/CRM/Case/BAO/Case.php @@ -1126,7 +1126,8 @@ SELECT case_status.label AS case_status, status_id, civicrm_case_type.title AS c $caseActivity['subject'] = $dao->subject; //Activity Type - $caseActivity['type'] = $activityTypes[$dao->type]['label']; + $caseActivity['type'] = (!empty($activityTypes[$dao->type]['icon']) ? ' ' : '') + . $activityTypes[$dao->type]['label']; //Activity Target (With) $targetContact = ''; diff --git a/CRM/Case/PseudoConstant.php b/CRM/Case/PseudoConstant.php index c80425acfa..41f813b33d 100644 --- a/CRM/Case/PseudoConstant.php +++ b/CRM/Case/PseudoConstant.php @@ -199,7 +199,7 @@ class CRM_Case_PseudoConstant extends CRM_Core_PseudoConstant { self::$activityTypeList[$cache] = array(); $query = " - SELECT v.label as label ,v.value as value, v.name as name, v.description as description + SELECT v.label as label ,v.value as value, v.name as name, v.description as description, v.icon FROM civicrm_option_value v, civicrm_option_group g WHERE v.option_group_id = g.id @@ -231,6 +231,7 @@ class CRM_Case_PseudoConstant extends CRM_Core_PseudoConstant { $activityTypes[$index]['id'] = $dao->value; $activityTypes[$index]['label'] = $dao->label; $activityTypes[$index]['name'] = $dao->name; + $activityTypes[$index]['icon'] = $dao->icon; $activityTypes[$index]['description'] = $dao->description; } self::$activityTypeList[$cache] = $activityTypes; diff --git a/tests/phpunit/CRM/Activity/BAO/ActivityTest.php b/tests/phpunit/CRM/Activity/BAO/ActivityTest.php index 09abc8b66b..006307aa80 100644 --- a/tests/phpunit/CRM/Activity/BAO/ActivityTest.php +++ b/tests/phpunit/CRM/Activity/BAO/ActivityTest.php @@ -381,7 +381,7 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase { $activities = $obj->getContactActivity(); // This should include activities of type Meeting only. foreach ($activities['data'] as $key => $value) { - $this->assertEquals('Meeting', $value['activity_type']); + $this->assertContains('Meeting', $value['activity_type']); } unset($_GET['activity_type_id']); -- 2.25.1