From 4d73a5a7443ad33f5e60c741d94770cc31c16498 Mon Sep 17 00:00:00 2001 From: omar abu hussein Date: Wed, 4 Jan 2017 14:57:00 +0000 Subject: [PATCH] CRM-19832: Ensure that searchTasks hook get invoked once This ensure that searchTasks hook for diffrent civicrm entites will only get called once and prevent action items added by this hook from appearing twice in the search actions menu. --- CRM/Activity/Task.php | 6 ++++-- CRM/Campaign/Task.php | 7 +++---- CRM/Case/Task.php | 6 ++++-- CRM/Contribute/Task.php | 1 + CRM/Event/Task.php | 4 ++-- CRM/Grant/Task.php | 13 ++++++++----- CRM/Member/Task.php | 6 ++++-- CRM/Pledge/Task.php | 6 ++++-- 8 files changed, 30 insertions(+), 19 deletions(-) diff --git a/CRM/Activity/Task.php b/CRM/Activity/Task.php index 5269448836..95603aeb0e 100644 --- a/CRM/Activity/Task.php +++ b/CRM/Activity/Task.php @@ -134,9 +134,11 @@ class CRM_Activity_Task { if (!CRM_Core_Permission::check('delete activities')) { unset(self::$_tasks[1]); } + + CRM_Utils_Hook::searchTasks('activity', self::$_tasks); + asort(self::$_tasks); } - CRM_Utils_Hook::searchTasks('activity', self::$_tasks); - asort(self::$_tasks); + return self::$_tasks; } diff --git a/CRM/Campaign/Task.php b/CRM/Campaign/Task.php index a6c1c64eb3..85110f48fe 100644 --- a/CRM/Campaign/Task.php +++ b/CRM/Campaign/Task.php @@ -91,11 +91,10 @@ class CRM_Campaign_Task { 'result' => FALSE, ), ); - } - - CRM_Utils_Hook::searchTasks('campaign', self::$_tasks); - asort(self::$_tasks); + CRM_Utils_Hook::searchTasks('campaign', self::$_tasks); + asort(self::$_tasks); + } return self::$_tasks; } diff --git a/CRM/Case/Task.php b/CRM/Case/Task.php index 4f9dcdea0a..9a9f744d99 100644 --- a/CRM/Case/Task.php +++ b/CRM/Case/Task.php @@ -92,14 +92,16 @@ class CRM_Case_Task { 'result' => FALSE, ), ); + //CRM-4418, check for delete if (!CRM_Core_Permission::check('delete in CiviCase')) { unset(self::$_tasks[1]); } + + CRM_Utils_Hook::searchTasks('case', self::$_tasks); + asort(self::$_tasks); } - CRM_Utils_Hook::searchTasks('case', self::$_tasks); - asort(self::$_tasks); return self::$_tasks; } diff --git a/CRM/Contribute/Task.php b/CRM/Contribute/Task.php index 25edbc0c9a..f562bf1ec6 100644 --- a/CRM/Contribute/Task.php +++ b/CRM/Contribute/Task.php @@ -131,6 +131,7 @@ class CRM_Contribute_Task { if (!$invoicing) { unset(self::$_tasks[9]); } + CRM_Utils_Hook::searchTasks('contribution', self::$_tasks); asort(self::$_tasks); } diff --git a/CRM/Event/Task.php b/CRM/Event/Task.php index 6edac6ecfd..766b412d98 100644 --- a/CRM/Event/Task.php +++ b/CRM/Event/Task.php @@ -145,9 +145,9 @@ class CRM_Event_Task { if (!CRM_Core_Permission::check('edit event participants')) { unset(self::$_tasks[4], self::$_tasks[5], self::$_tasks[15]); } - } - CRM_Utils_Hook::searchTasks('event', self::$_tasks); + CRM_Utils_Hook::searchTasks('event', self::$_tasks); + } return self::$_tasks; } diff --git a/CRM/Grant/Task.php b/CRM/Grant/Task.php index 8a8f50b68a..5dafa70771 100644 --- a/CRM/Grant/Task.php +++ b/CRM/Grant/Task.php @@ -89,12 +89,15 @@ class CRM_Grant_Task { 'result' => FALSE, ), ); + + if (!CRM_Core_Permission::check('delete in CiviGrant')) { + unset(self::$_tasks[1]); + } + + CRM_Utils_Hook::searchTasks('grant', self::$_tasks); + asort(self::$_tasks); } - if (!CRM_Core_Permission::check('delete in CiviGrant')) { - unset(self::$_tasks[1]); - } - CRM_Utils_Hook::searchTasks('grant', self::$_tasks); - asort(self::$_tasks); + return self::$_tasks; } diff --git a/CRM/Member/Task.php b/CRM/Member/Task.php index 5470390e5b..a8e2402288 100644 --- a/CRM/Member/Task.php +++ b/CRM/Member/Task.php @@ -119,9 +119,11 @@ class CRM_Member_Task { if (!CRM_Core_Permission::check('edit memberships')) { unset(self::$_tasks[5]); } + + CRM_Utils_Hook::searchTasks('membership', self::$_tasks); + asort(self::$_tasks); } - CRM_Utils_Hook::searchTasks('membership', self::$_tasks); - asort(self::$_tasks); + return self::$_tasks; } diff --git a/CRM/Pledge/Task.php b/CRM/Pledge/Task.php index b1a6d339cd..ebf2b7039c 100644 --- a/CRM/Pledge/Task.php +++ b/CRM/Pledge/Task.php @@ -85,9 +85,11 @@ class CRM_Pledge_Task { if (!CRM_Core_Permission::check('delete in CiviPledge')) { unset(self::$_tasks[1]); } + + CRM_Utils_Hook::searchTasks('pledge', self::$_tasks); + asort(self::$_tasks); } - CRM_Utils_Hook::searchTasks('pledge', self::$_tasks); - asort(self::$_tasks); + return self::$_tasks; } -- 2.25.1