* Browse all rule groups.
*/
public function browse() {
- // get all rule groups
- $ruleGroups = [];
+ $contactTypes = array_column(CRM_Contact_BAO_ContactType::basicTypeInfo(), 'label', 'name');
+ $dedupeRuleTypes = CRM_Core_SelectValues::getDedupeRuleTypes();
+ $ruleGroups = array_fill_keys(array_keys($contactTypes), []);
+
+ // Get rule groups for enabled contact types
$dao = new CRM_Dedupe_DAO_DedupeRuleGroup();
- $dao->orderBy('contact_type ASC, used ASC, title ASC');
+ $dao->orderBy('used ASC, title ASC');
+ $dao->whereAdd('contact_type IN ("' . implode('","', array_keys($contactTypes)) . '")');
$dao->find();
- $dedupeRuleTypes = CRM_Core_SelectValues::getDedupeRuleTypes();
while ($dao->fetch()) {
$ruleGroups[$dao->contact_type][$dao->id] = [];
CRM_Core_DAO::storeValues($dao, $ruleGroups[$dao->contact_type][$dao->id]);
// form all action links
$action = array_sum(array_keys($this->links()));
$links = self::links();
- /* if ($dao->is_default) {
- unset($links[CRM_Core_Action::MAP]);
- unset($links[CRM_Core_Action::DELETE]);
- }*/
if ($dao->is_reserved) {
unset($links[CRM_Core_Action::DELETE]);
$ruleGroups[$dao->contact_type][$dao->id]['used_display'] = $dedupeRuleTypes[$ruleGroups[$dao->contact_type][$dao->id]['used']];
}
$this->assign('brows', $ruleGroups);
+ $this->assign('contactTypes', $contactTypes);
}
/**
{if $brows}
{include file="CRM/common/jsortable.tpl"}
{foreach from=$brows key=contactType item=rows}
- <div id="browseValues_{$contactType}">
+ <div id="browseValues_{$contactType}" class="crm-clearfix">
<div>
{strip}
<table id="options_{$contactType}" class="display mergecontact">
<thead>
<tr>
- <th>{ts 1=$contactType}%1 Rules{/ts}</th>
+ <th>{ts 1=$contactTypes.$contactType}%1 Rules{/ts}</th>
<th>{ts}Usage{/ts}</th>
<th></th>
</tr>
{/strip}
</div>
<div style="float:right">
- {crmButton q="action=add&contact_type=$contactType&reset=1" icon="plus-circle"}{ts 1=$contactType}Add Rule for %1s{/ts}{/crmButton}
+ {crmButton q="action=add&contact_type=$contactType&reset=1" icon="plus-circle"}{ts 1=$contactTypes.$contactType}Add %1 Rule{/ts}{/crmButton}
</div>
</div>
{/foreach}