From 822ac43bf52597e531a3b0929bcaf539122f3aad Mon Sep 17 00:00:00 2001 From: Klaas Eikelboom Date: Fri, 6 Aug 2021 17:10:02 +0200 Subject: [PATCH] Fix error for case search tasks --- CRM/Searchactiondesigner/Form/Task/Case.php | 41 +++++++++++++++++++ CRM/Searchactiondesigner/Type.php | 2 +- .../Searchactiondesigner/Form/Task/Case.tpl | 1 + 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 CRM/Searchactiondesigner/Form/Task/Case.php create mode 100644 templates/CRM/Searchactiondesigner/Form/Task/Case.tpl diff --git a/CRM/Searchactiondesigner/Form/Task/Case.php b/CRM/Searchactiondesigner/Form/Task/Case.php new file mode 100644 index 0000000..045b5bc --- /dev/null +++ b/CRM/Searchactiondesigner/Form/Task/Case.php @@ -0,0 +1,41 @@ + + * @license AGPL-3.0 + */ + +use CRM_Searchactiondesigner_ExtensionUtil as E; + +class CRM_Searchactiondesigner_Form_Task_Case extends CRM_Case_Form_Task { + + protected $searchTaskId; + protected $searchTask; + + public function preProcess() { + $session = CRM_Core_Session::singleton(); + $userContext = str_replace("force=1", "", $session->readUserContext()); + parent::preProcess(); + $session->replaceUserContext($userContext); + + if (strpos($this->_task,'searchactiondesigner_') !== 0) { + throw new \Exception(E::ts('Invalid search task')); + } + $this->searchTaskId = substr($this->_task, 21); + + $this->searchTask = civicrm_api3('SearchTask', 'getsingle', array('id' => $this->searchTaskId)); + $this->assign('searchTask', $this->searchTask); + $this->assign('status', E::ts("Number of selected cases: %1", array(1=>count($this->_entityIds)))); + } + + public function buildQuickForm() { + CRM_Searchactiondesigner_Form_Task_Helper::buildQuickForm($this, $this->searchTaskId); + $this->addDefaultButtons(E::ts('Next')); + } + + public function postProcess() { + $submittedValues = $this->controller->exportValues(); + CRM_Searchactiondesigner_Form_Task_Helper::postProcess($this->searchTaskId, $submittedValues, $this->_entityIds); + } + + +} diff --git a/CRM/Searchactiondesigner/Type.php b/CRM/Searchactiondesigner/Type.php index 2bee530..a2c640e 100644 --- a/CRM/Searchactiondesigner/Type.php +++ b/CRM/Searchactiondesigner/Type.php @@ -43,7 +43,7 @@ class CRM_Searchactiondesigner_Type { ), 'case' => array( 'title' => E::ts('Case search tasks'), - 'class' => 'CRM_Searchactiondesigner_Form_Task_Task', + 'class' => 'CRM_Searchactiondesigner_Form_Task_Case', 'id_field_title' => E::ts('Case ID'), ), ); diff --git a/templates/CRM/Searchactiondesigner/Form/Task/Case.tpl b/templates/CRM/Searchactiondesigner/Form/Task/Case.tpl new file mode 100644 index 0000000..ba3d207 --- /dev/null +++ b/templates/CRM/Searchactiondesigner/Form/Task/Case.tpl @@ -0,0 +1 @@ +{include file="CRM/Searchactiondesigner/Form/Task/Task.tpl"} -- GitLab