From ae195e71ea29cad627308b9134824be71b01cf0c Mon Sep 17 00:00:00 2001 From: kurund Date: Wed, 28 May 2014 01:31:50 +0530 Subject: [PATCH] fixes to render multiple timelines, CRM-14725 ---------------------------------------- * CRM-14725: Edit Case Type - Use AJAX load/save https://issues.civicrm.org/jira/browse/CRM-14725 --- CRM/Case/BAO/CaseType.php | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/CRM/Case/BAO/CaseType.php b/CRM/Case/BAO/CaseType.php index 0ae9533528..cc1b36a300 100644 --- a/CRM/Case/BAO/CaseType.php +++ b/CRM/Case/BAO/CaseType.php @@ -168,10 +168,22 @@ class CRM_Case_BAO_CaseType extends CRM_Case_DAO_CaseType { // set activity sets $activitySets = json_decode(json_encode($xml->ActivitySets), TRUE); - foreach ($activitySets as $key => $value) { - $caseType['values'][0]['definition']['activitySets'] = array($key => $value); - $caseType['values'][0]['definition']['activitySets'][$key]['activityTypes'] = $activitySets['ActivitySet']['ActivityTypes']['ActivityType']; - unset($caseType['values'][0]['definition']['activitySets'][$key]['ActivityTypes']); + + // hack to fix the case when we have only one activityset + if (!empty($activitySets['ActivitySet']['name'])) { + $temp = $activitySets['ActivitySet']; + $activitySets['ActivitySet'] = array($temp); + } + + foreach ($activitySets['ActivitySet'] as $key => $value) { + foreach ($value as $k => $val) { + if ( $k == 'ActivityTypes') { + $caseType['values'][0]['definition']['activitySets'][$key]['activityTypes'] = array_pop(array_values($val)); + } + else { + $caseType['values'][0]['definition']['activitySets'][$key][$k] = $val; + } + } } // set case roles -- 2.25.1