<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.6 |
+ | CiviCRM version 4.7 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014 |
+ | Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2014
+ * @copyright CiviCRM LLC (c) 2004-2015
* $Id$
*
*/
}
$rows = array();
- $cid = CRM_Utils_Request::retrieve('cid', 'Positive', $this, TRUE);
- $oid = CRM_Utils_Request::retrieve('oid', 'Positive', $this, TRUE);
+ $cid = CRM_Utils_Request::retrieve('cid', 'Positive', $this, TRUE);
+ $oid = CRM_Utils_Request::retrieve('oid', 'Positive', $this, TRUE);
$flip = CRM_Utils_Request::retrieve('flip', 'Positive', $this, FALSE);
- $this->_rgid = $rgid = CRM_Utils_Request::retrieve('rgid', 'Positive', $this, FALSE);
- $this->_gid = $gid = CRM_Utils_Request::retrieve('gid', 'Positive', $this, FALSE);
+ $this->_rgid = $rgid = CRM_Utils_Request::retrieve('rgid', 'Positive', $this, FALSE);
+ $this->_gid = $gid = CRM_Utils_Request::retrieve('gid', 'Positive', $this, FALSE);
$this->_mergeId = CRM_Utils_Request::retrieve('mergeId', 'Positive', $this, FALSE);
// Sanity check
}
if (!CRM_Dedupe_BAO_Rule::validateContacts($cid, $oid)) {
- 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'))));
+ 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'))));
}
//load cache mechanism
// Block access if user does not have EDIT permissions for both contacts.
if (!(CRM_Contact_BAO_Contact_Permission::allow($cid, CRM_Core_Permission::EDIT) &&
- CRM_Contact_BAO_Contact_Permission::allow($oid, CRM_Core_Permission::EDIT)
- )) {
+ CRM_Contact_BAO_Contact_Permission::allow($oid, CRM_Core_Permission::EDIT)
+ )
+ ) {
CRM_Utils_System::permissionDenied();
}
$this->prev = $this->next = NULL;
foreach (array(
- 'prev', 'next') as $position) {
+ 'prev',
+ 'next',
+ ) as $position) {
if (!empty($pos[$position])) {
if ($pos[$position]['id1'] && $pos[$position]['id2']) {
$urlParam = "reset=1&cid={$pos[$position]['id1']}&oid={$pos[$position]['id2']}&mergeId={$pos[$position]['mergeId']}&action=update";
$this->assign('other_cid', $other['contact_id']);
$this->assign('rgid', $rgid);
- $this->_cid = $cid;
- $this->_oid = $oid;
- $this->_rgid = $rgid;
+ $this->_cid = $cid;
+ $this->_oid = $oid;
+ $this->_rgid = $rgid;
$this->_contactType = $main['contact_type'];
$this->addElement('checkbox', 'toggleSelect', NULL, NULL, array('class' => 'select-rows'));
*
* access public
*
- * @return array reference to the array of default values
- *
+ * @return array
+ * reference to the array of default values
*/
/**
* @return array
return array('deleteOther' => 1);
}
- public function addRules() {}
+ public function addRules() {
+ }
public function buildQuickForm() {
- CRM_Utils_System::setTitle(ts('Merge %1s', array(1 => $this->_contactType)));
- $name = ts('Merge');
- if ($this->next) {
- $name = ts('Merge and Goto Next Pair');
- }
+ CRM_Utils_System::setTitle(ts('Merge %1 contacts', array(1 => $this->_contactType)));
+ $buttons = array();
+
+ $buttons[] = array(
+ 'type' => 'next',
+ 'name' => $this->next ? ts('Merge and Goto Next Pair') : ts('Merge'),
+ 'isDefault' => TRUE,
+ 'icon' => $this->next ? 'circle-triangle-e' : 'check',
+ );
if ($this->next || $this->prev) {
- $button = array(
- array(
- 'type' => 'next',
- 'name' => $name,
- 'isDefault' => TRUE,
- ),
- array(
- 'type' => 'submit',
- 'name' => ts('Merge and Goto Listing'),
- ),
- array(
- 'type' => 'done',
- 'name' => ts('Merge and View Result'),
- ),
- array(
- 'type' => 'cancel',
- 'name' => ts('Cancel'),
- ),
+ $buttons[] = array(
+ 'type' => 'submit',
+ 'name' => ts('Merge and Goto Listing'),
);
- }
- else {
- $button = array(
- array(
- 'type' => 'next',
- 'name' => $name,
- 'isDefault' => TRUE,
- ),
- array(
- 'type' => 'cancel',
- 'name' => ts('Cancel'),
- ),
+ $buttons[] = array(
+ 'type' => 'done',
+ 'name' => ts('Merge and View Result'),
+ 'icon' => 'circle-check',
);
}
- $this->addButtons($button);
+ $buttons[] = array(
+ 'type' => 'cancel',
+ 'name' => ts('Cancel'),
+ );
+
+ $this->addButtons($buttons);
$this->addFormRule(array('CRM_Contact_Form_Merge', 'formRule'), $this);
}
$message = '<ul><li>' . ts('%1 has been updated.', array(1 => $name)) . '</li><li>' . ts('Contact ID %1 has been deleted.', array(1 => $this->_oid)) . '</li></ul>';
CRM_Core_Session::setStatus($message, ts('Contacts Merged'), 'success');
+ //create activity for merge
+ //To do: this should be refactored into BAO layer at some point.
+ $messageActivity = ts('Contact ID %1 has been merged and deleted.', array(1 => $this->_oid));
+ $activityParams = array(
+ 'subject' => $messageActivity,
+ 'source_contact_id' => $session->get('userID'),
+ 'target_contact_id' => $this->_cid,
+ 'activity_type_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Contact Merged'),
+ 'status_id' => 'Completed',
+ 'priority_id' => 'Normal',
+ 'activity_date_time' => date('YmdHis'),
+ );
+ civicrm_api3('activity', 'create', $activityParams);
+
$url = CRM_Utils_System::url('civicrm/contact/view', "reset=1&cid={$this->_cid}");
if (!empty($formValues['_qf_Merge_submit'])) {
$listParamsURL = "reset=1&action=update&rgid={$this->_rgid}";
);
CRM_Utils_System::redirect($lisitingURL);
}
- if (!empty($formValues['_qf_Merge_done'])) {
+ if (!empty($formValues['_qf_Merge_done'])) {
CRM_Utils_System::redirect($url);
}
CRM_Utils_System::redirect($url);
}
+
}