From be509c1109ce8865bf71bfe79e91809f02c63d78 Mon Sep 17 00:00:00 2001 From: Matthew Wire Date: Tue, 2 Jan 2018 16:02:30 +0700 Subject: [PATCH] Convert Activity to use core Task class --- CRM/Activity/Form/Search.php | 4 +- CRM/Activity/Task.php | 76 +++++++++++------------------------- 2 files changed, 23 insertions(+), 57 deletions(-) diff --git a/CRM/Activity/Form/Search.php b/CRM/Activity/Form/Search.php index 8f275c62aa..6bbd12db9b 100644 --- a/CRM/Activity/Form/Search.php +++ b/CRM/Activity/Form/Search.php @@ -170,9 +170,7 @@ class CRM_Activity_Form_Search extends CRM_Core_Form_Search { $this->addRowSelectors($rows); } - $permission = CRM_Core_Permission::getPermission(); - - $this->addTaskMenu(CRM_Activity_Task::permissionedTaskTitles($permission)); + $this->addTaskMenu(CRM_Activity_Task::permissionedTaskTitles(CRM_Core_Permission::getPermission())); } } diff --git a/CRM/Activity/Task.php b/CRM/Activity/Task.php index f291090898..95a70fe36d 100644 --- a/CRM/Activity/Task.php +++ b/CRM/Activity/Task.php @@ -33,28 +33,9 @@ /** * Class to represent the actions that can be performed on a group of contacts used by the search forms. */ -class CRM_Activity_Task { - const - DELETE_ACTIVITIES = 1, - PRINT_ACTIVITIES = 2, - EXPORT_ACTIVITIES = 3, - BATCH_ACTIVITIES = 4, - EMAIL_CONTACTS = 5, - EMAIL_SMS = 6; +class CRM_Activity_Task extends CRM_Core_Task { - /** - * The task array. - * - * @var array - */ - static $_tasks = NULL; - - /** - * The optional task array. - * - * @var array - */ - static $_optionalTasks = NULL; + static $objectType = 'activity'; /** * These tasks are the core set of tasks that the user can perform @@ -63,20 +44,20 @@ class CRM_Activity_Task { * @return array * the set of tasks for a group of contacts */ - public static function &tasks() { + public static function tasks() { if (!(self::$_tasks)) { self::$_tasks = array( - 1 => array( + self::TASK_DELETE => array( 'title' => ts('Delete activities'), 'class' => 'CRM_Activity_Form_Task_Delete', 'result' => FALSE, ), - 2 => array( + self::TASK_PRINT => array( 'title' => ts('Print selected rows'), 'class' => 'CRM_Activity_Form_Task_Print', 'result' => FALSE, ), - 3 => array( + self::TASK_EXPORT => array( 'title' => ts('Export activities'), 'class' => array( 'CRM_Export_Form_Select', @@ -84,7 +65,7 @@ class CRM_Activity_Task { ), 'result' => FALSE, ), - 4 => array( + self::BATCH_UPDATE => array( 'title' => ts('Update multiple activities'), 'class' => array( 'CRM_Activity_Form_Task_PickProfile', @@ -92,7 +73,7 @@ class CRM_Activity_Task { ), 'result' => FALSE, ), - 5 => array( + self::TASK_EMAIL => array( 'title' => ts('Email - send now (to %1 or less)', array( 1 => Civi::settings() ->get('simple_mail_limit'), @@ -103,17 +84,17 @@ class CRM_Activity_Task { ), 'result' => FALSE, ), - 6 => array( + self::TASK_SMS => array( 'title' => ts('SMS - send reply'), 'class' => 'CRM_Activity_Form_Task_SMS', 'result' => FALSE, ), - 7 => array( + self::TAG_ADD => array( 'title' => ts('Tag - add to activities'), 'class' => 'CRM_Activity_Form_Task_AddToTag', 'result' => FALSE, ), - 8 => array( + self::TAG_REMOVE => array( 'title' => ts('Tag - remove from activities'), 'class' => 'CRM_Activity_Form_Task_RemoveFromTag', 'result' => FALSE, @@ -125,7 +106,7 @@ class CRM_Activity_Task { if (CRM_Core_Permission::check('access all cases and activities') || CRM_Core_Permission::check('access my cases and activities') ) { - self::$_tasks[6] = array( + self::$_tasks[self::TASK_SMS] = array( 'title' => ts('File on case'), 'class' => 'CRM_Activity_Form_Task_FileOnCase', 'result' => FALSE, @@ -135,54 +116,40 @@ class CRM_Activity_Task { // CRM-4418, check for delete if (!CRM_Core_Permission::check('delete activities')) { - unset(self::$_tasks[1]); + unset(self::$_tasks[self::TASK_DELETE]); } - CRM_Utils_Hook::searchTasks('activity', self::$_tasks); - asort(self::$_tasks); + parent::tasks(); } return self::$_tasks; } - /** - * These tasks are the core set of task titles on activity. - * - * @return array - * the set of task titles - */ - public static function &taskTitles() { - self::tasks(); - $titles = array(); - foreach (self::$_tasks as $id => $value) { - $titles[$id] = $value['title']; - } - return $titles; - } - /** * Show tasks selectively based on the permission level of the user. * * @param int $permission + * @param array $params * * @return array * set of tasks that are valid for the user */ - public static function &permissionedTaskTitles($permission) { - $tasks = array(); + public static function permissionedTaskTitles($permission, $params = array()) { if ($permission == CRM_Core_Permission::EDIT) { $tasks = self::taskTitles(); } else { $tasks = array( - 3 => self::$_tasks[3]['title'], + self::TASK_EXPORT => self::$_tasks[self::TASK_EXPORT]['title'], ); //CRM-4418, if (CRM_Core_Permission::check('delete activities')) { - $tasks[1] = self::$_tasks[1]['title']; + $tasks[self::TASK_DELETE] = self::$_tasks[self::TASK_DELETE]['title']; } } + + $tasks = parent::corePermissionedTaskTitles($tasks, $permission, $params); return $tasks; } @@ -198,8 +165,9 @@ class CRM_Activity_Task { self::tasks(); if (!$value || !CRM_Utils_Array::value($value, self::$_tasks)) { // make the print task by default - $value = 2; + $value = self::TASK_PRINT; } + return array( self::$_tasks[$value]['class'], self::$_tasks[$value]['result'], -- 2.25.1