From fee6dcc846793ef0e43c4586f511aefbf9391031 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Fri, 29 Mar 2013 20:16:23 -0700 Subject: [PATCH] Refresh case table without reloading the page CRM-12202 --- CRM/Case/Page/CaseDetails.php | 11 +++++++ .../CRM/Case/Form/ActivityChangeStatus.js | 33 +++++++++++-------- templates/CRM/Case/Page/CaseDetails.tpl | 4 +-- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/CRM/Case/Page/CaseDetails.php b/CRM/Case/Page/CaseDetails.php index 03d101cb45..bccfbb7476 100644 --- a/CRM/Case/Page/CaseDetails.php +++ b/CRM/Case/Page/CaseDetails.php @@ -66,6 +66,17 @@ class CRM_Case_Page_CaseDetails extends CRM_Core_Page { $this->assign('caseId', $caseId); $this->assign('contactId', $this->_contactId); + // Make it easy to refresh this table + $params = array( + 'caseId' => $caseId, + 'type' => $type, + 'context' => $this->_context, + 'cid' => $this->_contactId, + 'action' => $this->_action, + 'snippet' => 4, + ); + $this->assign('data_params', json_encode($params)); + return parent::run(); } } diff --git a/templates/CRM/Case/Form/ActivityChangeStatus.js b/templates/CRM/Case/Form/ActivityChangeStatus.js index 77e077fadf..b51a7a01b9 100644 --- a/templates/CRM/Case/Form/ActivityChangeStatus.js +++ b/templates/CRM/Case/Form/ActivityChangeStatus.js @@ -1,19 +1,15 @@ // http://civicrm.org/licensing cj(function($) { - $('.crm-container').on('click', 'a.crm-activity-change-status', function() { - changeActivityStatus( - $(this).attr('activity_id'), - $(this).attr('current_status'), - $(this).attr('case_id') - ); - return false; - }); - function changeActivityStatus(activityId, current_status_id, caseId) { - var o = $('
'); + $('#crm-container').on('click', 'a.crm-activity-change-status', function() { + var link = $(this), + activityId = $(this).attr('activity_id'), + current_status_id = $(this).attr('current_status'), + caseId = $(this).attr('case_id'), + data = 'snippet=1&reset=1', + o = $('
'); addCiviOverlay(o); - var data = 'snippet=1&reset=1'; o.load(CRM.url('civicrm/case/changeactivitystatus'), data, function() { removeCiviOverlay(o); cj("#activity_change_status").val(current_status_id); @@ -40,8 +36,16 @@ cj(function($) { return false; } else { - // just reload the page on success - window.location.reload(); + // reload the table on success + if (window.buildCaseActivities) { + // If we are using a datatable + buildCaseActivities(true); + } + else { + // Legacy refresh for non-datatable screens + var table = link.closest('table.nestedActivitySelector'); + table.parent().load(CRM.url('civicrm/case/details', table.data('params'))); + } } }, error : function(jqXHR) { @@ -55,7 +59,8 @@ cj(function($) { message: o } ); - } + return false; + }); }); diff --git a/templates/CRM/Case/Page/CaseDetails.tpl b/templates/CRM/Case/Page/CaseDetails.tpl index 5509c2052b..5cf717fd02 100644 --- a/templates/CRM/Case/Page/CaseDetails.tpl +++ b/templates/CRM/Case/Page/CaseDetails.tpl @@ -25,7 +25,7 @@ *} {strip} {if $rows} - +
@@ -55,4 +55,4 @@ {/if} {/strip} -{include file="CRM/Case/Form/ActivityToCase.tpl"} \ No newline at end of file +{include file="CRM/Case/Form/ActivityToCase.tpl"} -- 2.25.1
{ts}Date{/ts} {ts}Subject{/ts}