From 8bdc861c4ce97008e7a1e33b99df4baca623c223 Mon Sep 17 00:00:00 2001 From: Deepak Srivastava Date: Fri, 21 Jun 2013 15:41:32 +0530 Subject: [PATCH] CRM-12623, support setting accordion title with groupings ---------------------------------------- * CRM-12623: http://issues.civicrm.org/jira/browse/CRM-12623 --- CRM/Report/Form.php | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/CRM/Report/Form.php b/CRM/Report/Form.php index 197686dfed..bb5dff601f 100644 --- a/CRM/Report/Form.php +++ b/CRM/Report/Form.php @@ -703,17 +703,26 @@ class CRM_Report_Form extends CRM_Core_Form { foreach ($this->_columns as $tableName => $table) { if (array_key_exists('fields', $table)) { foreach ($table['fields'] as $fieldName => $field) { + $groupTitle = ''; if (!array_key_exists('no_display', $field)) { - if (isset($field['grouping'])) { - $tableName = $field['grouping']; + foreach ( array('table', 'field') as $var) { + if (!empty(${$var}['grouping'])) { + if (!is_array(${$var}['grouping'])) { + $tableName = ${$var}['grouping']; + } else { + $tableName = array_keys(${$var}['grouping'])[0]; + $groupTitle = array_values(${$var}['grouping'])[0]; + } + } } - elseif (isset($table['grouping'])) { - $tableName = $table['grouping']; + + if (!$groupTitle && isset($table['group_title'])) { + $groupTitle = $table['group_title']; } - $colGroups[$tableName]['fields'][$fieldName] = CRM_Utils_Array::value('title', $field); - if (isset($table['group_title'])) { - $colGroups[$tableName]['group_title'] = $table['group_title']; + $colGroups[$tableName]['fields'][$fieldName] = CRM_Utils_Array::value('title', $field); + if ($groupTitle && !CRM_Utils_Array::value('group_title', $colGroups[$tableName])) { + $colGroups[$tableName]['group_title'] = $groupTitle; } $options[$fieldName] = CRM_Utils_Array::value('title', $field); -- 2.25.1