CRM-14856 - CRM_Profile_Form_Edit - Reimplement cancelURL
authorTim Otten <totten@civicrm.org>
Sat, 14 Jun 2014 02:50:43 +0000 (19:50 -0700)
committerTim Otten <totten@civicrm.org>
Sat, 14 Jun 2014 03:50:43 +0000 (20:50 -0700)
CRM/Core/Invoke.php
CRM/Profile/Form/Edit.php

index 7df01124bf0a3212513e0fbf6eb3fd182b3e980b..b06fd360e8d82b926fe5dbc9ff59f31107425d54 100644 (file)
@@ -418,22 +418,6 @@ class CRM_Core_Invoke {
       $session = CRM_Core_Session::singleton();
       $session->pushUserContext(CRM_Utils_System::url('civicrm/profile', 'reset=1'));
 
-      $buttonType = CRM_Utils_Array::value('_qf_Edit_cancel', $_POST);
-      // CRM-5849: we should actually check the button *type*, but we get the *value*, potentially translated;
-      // we should keep both English and translated checks just to make sure we also handle untranslated Cancels
-      if ($buttonType == 'Cancel' or $buttonType == ts('Cancel')) {
-        $cancelURL = CRM_Utils_Request::retrieve('cancelURL',
-          'String',
-          CRM_Core_DAO::$_nullObject,
-          FALSE,
-          NULL,
-          $_POST
-        );
-        if ($cancelURL) {
-          CRM_Utils_System::redirect($cancelURL);
-        }
-      }
-
       if ($secondArg == 'edit') {
         $controller = new CRM_Core_Controller_Simple('CRM_Profile_Form_Edit',
           ts('Create Profile'),
index 1bb06d497b26b3ee62f18c53ba0c0d3e2d09c9de..da71bedbc5bd64be233ae02f412591953113c948 100644 (file)
@@ -211,10 +211,6 @@ SELECT module
       $this->_postURL = str_replace('&amp;', '&', $this->_postURL);
       $this->_cancelURL = str_replace('&amp;', '&', $this->_cancelURL);
 
-      if ($this->_cancelURL) {
-        $this->addElement('hidden', 'cancelURL', $this->_cancelURL);
-      }
-
       // also retain error URL if set
       $this->_errorURL = CRM_Utils_Array::value('errorURL', $_POST);
       if ($this->_errorURL) {
@@ -242,6 +238,7 @@ SELECT module
         'type' => 'cancel',
         'name' => ts('Cancel'),
         'isDefault' => TRUE,
+        'js' => array('onclick' => "location.href='{$this->_cancelURL}'; return false;"),
       );
       $this->addButtons($buttons);
       return;
@@ -269,6 +266,7 @@ SELECT module
         'type' => 'cancel',
         'name' => ts('Cancel'),
         'isDefault' => TRUE,
+        'js' => array('onclick' => "location.href='{$this->_cancelURL}'; return false;"),
       );
     }