From 43d6d189605027144dbeaec9bd68a35a31190dfb Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Fri, 1 Oct 2021 17:29:00 +1300 Subject: [PATCH] [REF] Extract getRedirectUrl method --- CRM/Contact/Form/Task/EmailTrait.php | 48 ++++++++++++++++------------ 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/CRM/Contact/Form/Task/EmailTrait.php b/CRM/Contact/Form/Task/EmailTrait.php index 3b23ad98f6..29b3e68c75 100644 --- a/CRM/Contact/Form/Task/EmailTrait.php +++ b/CRM/Contact/Form/Task/EmailTrait.php @@ -248,26 +248,7 @@ trait CRM_Contact_Form_Task_EmailTrait { CRM_Core_BAO_File::buildAttachment($this, NULL); if ($this->_single) { - // also fix the user context stack - if ($this->getCaseID()) { - $ccid = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseContact', $this->_caseId, - 'contact_id', 'case_id' - ); - $url = CRM_Utils_System::url('civicrm/contact/view/case', - "&reset=1&action=view&cid={$ccid}&id=" . $this->getCaseID() - ); - } - elseif ($this->_context) { - $url = CRM_Utils_System::url('civicrm/dashboard', 'reset=1'); - } - else { - $url = CRM_Utils_System::url('civicrm/contact/view', - "&show=1&action=browse&cid={$this->_contactIds[0]}&selectedChild=activity" - ); - } - - $session = CRM_Core_Session::singleton(); - $session->replaceUserContext($url); + CRM_Core_Session::singleton()->replaceUserContext($this->getRedirectUrl()); } $this->addDefaultButtons(ts('Send Email'), 'upload', 'cancel'); @@ -1026,4 +1007,31 @@ trait CRM_Contact_Form_Task_EmailTrait { return TRUE; } + /** + * Get the url to redirect the user's browser to. + * + * @return string + * @throws \CRM_Core_Exception + */ + protected function getRedirectUrl(): string { + // also fix the user context stack + if ($this->getCaseID()) { + $ccid = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseContact', $this->_caseId, + 'contact_id', 'case_id' + ); + $url = CRM_Utils_System::url('civicrm/contact/view/case', + "&reset=1&action=view&cid={$ccid}&id=" . $this->getCaseID() + ); + } + elseif ($this->_context) { + $url = CRM_Utils_System::url('civicrm/dashboard', 'reset=1'); + } + else { + $url = CRM_Utils_System::url('civicrm/contact/view', + "&show=1&action=browse&cid={$this->_contactIds[0]}&selectedChild=activity" + ); + } + return $url; + } + } -- 2.25.1