From 7632a8cecda9f15c8e514972ceef9f14e1944a6f Mon Sep 17 00:00:00 2001 From: Matthew Wire Date: Tue, 2 Jan 2018 16:06:14 +0700 Subject: [PATCH] Convert Pledge to use core Task class --- CRM/Pledge/Form/Search.php | 4 +- CRM/Pledge/Task.php | 75 +++++++++----------------------------- 2 files changed, 18 insertions(+), 61 deletions(-) diff --git a/CRM/Pledge/Form/Search.php b/CRM/Pledge/Form/Search.php index e0e23cfa0618..c5a4c8608b7a 100644 --- a/CRM/Pledge/Form/Search.php +++ b/CRM/Pledge/Form/Search.php @@ -155,9 +155,7 @@ public function buildQuickForm() { $this->addRowSelectors($rows); } - $permission = CRM_Core_Permission::getPermission(); - - $this->addTaskMenu(CRM_Pledge_Task::permissionedTaskTitles($permission)); + $this->addTaskMenu(CRM_Pledge_Task::permissionedTaskTitles(CRM_Core_Permission::getPermission())); } } diff --git a/CRM/Pledge/Task.php b/CRM/Pledge/Task.php index feeaf1073449..b85341b5c863 100644 --- a/CRM/Pledge/Task.php +++ b/CRM/Pledge/Task.php @@ -34,22 +34,7 @@ * class to represent the actions that can be performed on a group of contacts * used by the search forms. */ -class CRM_Pledge_Task { - const DELETE_PLEDGES = 1, PRINT_PLEDGES = 2, EXPORT_PLEDGES = 3; - - /** - * The task array - * - * @var array - */ - static $_tasks = NULL; - - /** - * The optional task array - * - * @var array - */ - static $_optionalTasks = NULL; +class CRM_Pledge_Task extends CRM_Core_Task { /** * These tasks are the core set of tasks that the user can perform @@ -58,20 +43,20 @@ class CRM_Pledge_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::DELETE => array( 'title' => ts('Delete pledges'), 'class' => 'CRM_Pledge_Form_Task_Delete', 'result' => FALSE, ), - 2 => array( + self::PRINT => array( 'title' => ts('Print selected rows'), 'class' => 'CRM_Pledge_Form_Task_Print', 'result' => FALSE, ), - 3 => array( + self::EXPORT => array( 'title' => ts('Export pledges'), 'class' => array( 'CRM_Export_Form_Select', @@ -83,7 +68,7 @@ public static function &tasks() { // CRM-4418, check for delete if (!CRM_Core_Permission::check('delete in CiviPledge')) { - unset(self::$_tasks[1]); + unset(self::$_tasks[self::DELETE]); } CRM_Utils_Hook::searchTasks('pledge', self::$_tasks); @@ -93,43 +78,17 @@ public static function &tasks() { return self::$_tasks; } - /** - * These tasks are the core set of task titles. - * - * @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; - } - - /** - * These tasks get added based on the context the user is in. - * - * @return array - * the set of optional tasks for a group of contacts - */ - public static function &optionalTaskTitle() { - $tasks = array(); - return $tasks; - } - /** * 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) || CRM_Core_Permission::check('edit pledges') ) { @@ -137,13 +96,15 @@ public static function &permissionedTaskTitles($permission) { } else { $tasks = array( - 3 => self::$_tasks[3]['title'], + self::EXPORT => self::$_tasks[self::EXPORT]['title'], ); //CRM-4418, if (CRM_Core_Permission::check('delete in CiviPledge')) { - $tasks[1] = self::$_tasks[1]['title']; + $tasks[self::DELETE] = self::$_tasks[self::DELETE]['title']; } } + + $tasks = parent::corePermissionedTaskTitles($tasks, $permission, $params); return $tasks; } @@ -158,14 +119,12 @@ public static function &permissionedTaskTitles($permission) { */ public static function getTask($value) { self::tasks(); - if (!$value || !CRM_Utils_Array::value($value, self::$_tasks)) { - // make the print task by default - $value = 2; + + if (!CRM_Utils_Array::value($value, self::$_tasks)) { + // make it the print task by default + $value = self::PRINT; } - return array( - self::$_tasks[$value]['class'], - self::$_tasks[$value]['result'], - ); + return parent::getTask($value); } }