Skip to content
Snippets Groups Projects
Commit 2e6d0f09 authored by jaapjansma's avatar jaapjansma
Browse files

Added contact types to contact tab output.

parent bb49ce0f
No related branches found
Tags 1.103
No related merge requests found
# Version 1.103 (not yet released)
# Version 1.103
# Version 1.102
* Added contact types to contact tab output.
# Version 1.102
* Fixed issue with export output and php 8.
* Fix for deprecated function calls. See #142
......
......@@ -64,6 +64,34 @@ class CRM_Contact_DataProcessorContactSummaryTab implements UIFormOutputInterfac
if (!$outputClass->checkUIPermission($output, $dataprocessor)) {
continue;
}
$contactTypeIsValid = true;
$contactTypes = [];
if (isset($output['configuration']['contact_types']) && is_array($output['configuration']['contact_types'])) {
$contactTypes = $output['configuration']['contact_types'];
}
if (count($contactTypes)) {
try {
$contact = \Civi\Api4\Contact::get(FALSE)
->addWhere('id', '=', $contactId)
->execute()
->single();
}
catch (CRM_Core_Exception $e) {
$contactTypeIsValid = FALSE;
}
if (!in_array($contact['contact_type'], $contactTypes)) {
$contactTypeIsValid = false;
foreach($contact['contact_sub_type'] as $contactSubType) {
if (in_array($contactSubType, $contactTypes)) {
$contactTypeIsValid = true;
break;
}
}
}
}
if (!$contactTypeIsValid) {
continue;
}
$count = 0;
if ($contactId) {
......@@ -146,6 +174,20 @@ class CRM_Contact_DataProcessorContactSummaryTab implements UIFormOutputInterfac
$form->add('text', 'weight', E::ts('Weight'));
$form->add('text', 'default_limit', E::ts('Default Limit'));
$contactTypes = [];
$contactTypesApi = \Civi\Api4\ContactType::get(FALSE)
->setLimit(0)
->execute();
foreach($contactTypesApi as $contactType) {
$contactTypes[$contactType['name']] = $contactType['label'];
}
$form->add('select', 'contact_types', E::ts('Contact Types'), $contactTypes, false, array(
'style' => 'min-width:250px',
'class' => 'crm-select2 huge',
'multiple' => true,
'placeholder' => E::ts('- select -'),
));
$defaults = array();
if ($output) {
......@@ -165,6 +207,9 @@ class CRM_Contact_DataProcessorContactSummaryTab implements UIFormOutputInterfac
if (isset($output['configuration']['hidden_fields'])) {
$defaults['hidden_fields'] = $output['configuration']['hidden_fields'];
}
if (isset($output['configuration']['contact_types'])) {
$defaults['contact_types'] = $output['configuration']['contact_types'];
}
if (isset($output['configuration']['default_limit'])) {
$defaults['default_limit'] = $output['configuration']['default_limit'];
}
......@@ -208,6 +253,7 @@ class CRM_Contact_DataProcessorContactSummaryTab implements UIFormOutputInterfac
$output['permission'] = $submittedValues['permission'];
$configuration['contact_id_field'] = $submittedValues['contact_id_field'];
$configuration['hidden_fields'] = $submittedValues['hidden_fields'];
$configuration['contact_types'] = $submittedValues['contact_types'];
$configuration['help_text'] = $submittedValues['help_text'];
$configuration['no_result_text'] = $submittedValues['no_result_text'];
$configuration['weight'] = $submittedValues['weight'];
......
......@@ -14,8 +14,8 @@
<url desc="Documentation">https://lab.civicrm.org/extensions/dataprocessor/blob/master/README.md</url>
<url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
</urls>
<releaseDate>2024-04-15</releaseDate>
<version>1.103-dev</version>
<releaseDate>2024-04-18</releaseDate>
<version>1.103</version>
<develStage>stable</develStage>
<compatibility>
<ver>5.37</ver>
......
......@@ -21,6 +21,11 @@
<div class="content">{$form.hidden_fields.html}</div>
<div class="clear"></div>
</div>
<div class="crm-section">
<div class="label">{$form.contact_types.label}</div>
<div class="content">{$form.contact_types.html}</div>
<div class="clear"></div>
</div>
<div class="crm-section">
<div class="label">{$form.no_result_text.label}</div>
<div class="content">{$form.no_result_text.html}</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment