3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
19 * Class to represent the actions that can be performed on a group of contacts.
21 * Used by the search forms
23 class CRM_Case_Task
extends CRM_Core_Task
{
28 const RESTORE_CASES
= 501;
33 public static $objectType = 'case';
36 * These tasks are the core set of tasks that the user can perform
37 * on a contact / group of contacts
40 * the set of tasks for a group of contacts
42 public static function tasks() {
45 self
::TASK_DELETE
=> [
46 'title' => ts('Delete cases'),
47 'class' => 'CRM_Case_Form_Task_Delete',
51 'title' => ts('Print selected rows'),
52 'class' => 'CRM_Case_Form_Task_Print',
55 self
::TASK_EXPORT
=> [
56 'title' => ts('Export cases'),
58 'CRM_Export_Form_Select_Case',
59 'CRM_Export_Form_Map',
63 self
::RESTORE_CASES
=> [
64 'title' => ts('Restore cases'),
65 'class' => 'CRM_Case_Form_Task_Restore',
69 'title' => ts('Print/merge document'),
70 'class' => 'CRM_Case_Form_Task_PDF',
73 self
::BATCH_UPDATE
=> [
74 'title' => ts('Update multiple cases'),
76 'CRM_Case_Form_Task_PickProfile',
77 'CRM_Case_Form_Task_Batch',
83 //CRM-4418, check for delete
84 if (!CRM_Core_Permission
::check('delete in CiviCase')) {
85 unset(self
::$_tasks[self
::TASK_DELETE
]);
95 * Show tasks selectively based on the permission level.
98 * @param int $permission
99 * @param array $params
102 * set of tasks that are valid for the user
104 public static function permissionedTaskTitles($permission, $params = []) {
105 if (($permission == CRM_Core_Permission
::EDIT
)
106 || CRM_Core_Permission
::check('access all cases and activities')
107 || CRM_Core_Permission
::check('access my cases and activities')
109 $tasks = self
::taskTitles();
113 self
::TASK_EXPORT
=> self
::$_tasks[self
::TASK_EXPORT
]['title'],
116 if (CRM_Core_Permission
::check('delete in CiviCase')) {
117 $tasks[self
::TASK_DELETE
] = self
::$_tasks[self
::TASK_DELETE
]['title'];
121 $tasks = parent
::corePermissionedTaskTitles($tasks, $permission, $params);
126 * These tasks are the core set of tasks.
131 * the set of tasks for a group of contacts
133 public static function getTask($value) {
135 if (!$value ||
!CRM_Utils_Array
::value($value, self
::$_tasks)) {
136 // make the print task by default
137 $value = self
::TASK_PRINT
;
141 self
::$_tasks[$value]['class'],
142 self
::$_tasks[$value]['result'],