CRM-18547 keep group context when marking dupes
authoreileen <emcnaughton@wikimedia.org>
Tue, 21 Jun 2016 02:58:49 +0000 (14:58 +1200)
committereileen <emcnaughton@wikimedia.org>
Sat, 25 Jun 2016 01:07:04 +0000 (13:07 +1200)
CRM/Contact/Form/Merge.php
templates/CRM/Contact/Form/Merge.tpl
templates/CRM/common/dedupe.tpl

index 5d3a6b2ff58407f6bc9188b8c65c7ffb3baa079f..1bf9a44d2fc4bce9f6991e3f852833dd32c9ce36 100644 (file)
@@ -73,7 +73,9 @@ class CRM_Contact_Form_Merge extends CRM_Core_Form {
       CRM_Core_Error::statusBounce(ts('The selected pair of contacts are marked as non duplicates. If these records should be merged, you can remove this exception on the <a href="%1">Dedupe Exceptions</a> page.', array(1 => CRM_Utils_System::url('civicrm/dedupe/exception', 'reset=1'))));
     }
     $this->_contactType = civicrm_api3('Contact', 'getvalue', array('id' => $cid, 'return' => 'contact_type'));
+    $isFromDedupeScreen = TRUE;
     if (!$this->_rgid) {
+      $isFromDedupeScreen = FALSE;
       $this->_rgid = civicrm_api3('RuleGroup', 'getvalue', array(
         'contact_type' => $this->_contactType,
         'used' => 'Supervised',
@@ -169,13 +171,15 @@ class CRM_Contact_Form_Merge extends CRM_Core_Form {
     $session = CRM_Core_Session::singleton();
 
     // context fixed.
-    if ($this->_rgid) {
+    if ($isFromDedupeScreen) {
       $urlParam = "reset=1&action=browse&rgid={$this->_rgid}";
       if ($gid) {
         $urlParam .= "&gid={$gid}";
       }
-      $session->pushUserContext(CRM_Utils_System::url('civicrm/contact/dedupefind', $urlParam));
+      $browseUrl = CRM_Utils_System::url('civicrm/contact/dedupefind', $urlParam);
+      $session->pushUserContext($browseUrl);
     }
+    $this->assign('browseUrl', empty($browseUrl) ? '' : $browseUrl);
 
     // ensure that oid is not the current user, if so refuse to do the merge
     if ($session->get('userID') == $oid) {
index a718aa10379646d7c2e5f0764a7f839caf07ed0f..618d69196bdd090f96d880fe245f10ced656cc0a 100644 (file)
@@ -56,7 +56,7 @@
   </div>
 
   <div class="action-link">
-    <a href="#" class="action-item crm-hover-button crm-notDuplicate" title={ts}Mark this pair as not a duplicate.{/ts} onClick="processDupes( {$main_cid}, {$other_cid}, 'dupe-nondupe', 'merge-contact', '{if $rgid}{crmURL p="civicrm/contact/dedupefind" q="reset=1&action=update&rgid=$rgid"}{/if}' );return false;">
+    <a href="#" class="action-item crm-hover-button crm-notDuplicate" title={ts}Mark this pair as not a duplicate.{/ts} onClick="processDupes( {$main_cid}, {$other_cid}, 'dupe-nondupe', 'merge-contact', '{$browseUrl}' );return false;">
       <i class="crm-i fa-times-circle"></i>
       {ts}Mark this pair as not a duplicate.{/ts}
     </a>
index a637231ab94bb2dced1032c94d379a788112ea39..23fc3a8129434469a754cc1840afc800e30511f1 100644 (file)
@@ -5,7 +5,7 @@
 
 cj( '#processDupes' ).hide( );
 
-function processDupes( cid, oid, oper, context, reloadURL ) {
+function processDupes(cid, oid, oper, context, reloadURL) {
         //currently we are doing in a single way.
         //later we might want two way operations.