$this->assign('mainUfName', $mainUser ? $mainUser->name : NULL);
}
- $flipUrl = CRM_Utils_system::url('civicrm/contact/merge',
+ $flipUrl = CRM_Utils_System::url('civicrm/contact/merge',
"reset=1&action=update&cid={$oid}&oid={$cid}&rgid={$rgid}&gid={$gid}"
);
if (!$flip) {
$urlParam .= "&gid={$gid}";
}
- $this->$position = CRM_Utils_system::url('civicrm/contact/merge', $urlParam);
+ $this->$position = CRM_Utils_System::url('civicrm/contact/merge', $urlParam);
$this->assign($position, $this->$position);
}
}
if ($gid) {
$urlParam .= "&gid={$gid}";
}
- $session->pushUserContext(CRM_Utils_system::url('civicrm/contact/dedupefind', $urlParam));
+ $session->pushUserContext(CRM_Utils_System::url('civicrm/contact/dedupefind', $urlParam));
}
// ensure that oid is not the current user, if so refuse to do the merge
}
$this->addButtons($button);
+ $this->addFormRule(array('CRM_Contact_Form_Merge', 'formRule'), $this);
+ }
+
+ static function formRule($fields, $files, $self) {
+ $errors = array();
+ $link = CRM_Utils_System::href(ts('Flip between the original and duplicate contacts.'),
+ 'civicrm/contact/merge',
+ 'reset=1&action=update&cid=' . $self->_oid . '&oid=' . $self->_cid . '&rgid=' . $self->_rgid . '&flip=1'
+ );
+ if (CRM_Contact_BAO_Contact::checkDomainContact($self->_oid)) {
+ $errors['_qf_default'] = ts("The Default Organization contact cannot be merged into another contact record. It is associated with the CiviCRM installation for this domain and contains information used for system functions. If you want to merge these records, you can: %1", array(1 => $link));
+ }
+ return $errors;
}
public function postProcess() {
$urlParam .= "&gid={$this->_gid}";
}
- $url = CRM_Utils_system::url('civicrm/contact/merge', $urlParam);
+ $url = CRM_Utils_System::url('civicrm/contact/merge', $urlParam);
}
}