Case ui enhancements & code cleanup
[civicrm-core.git] / templates / CRM / Case / Form / CaseView.tpl
index 232327812e62bf0d6dd046ba42cb2202982cb03d..c464d990e6e5553fa2b223526b9f753d8130806a 100644 (file)
 *}
 {* CiviCase -  view case screen*}
 
-{* here we are showing related cases w/ jquery dialog *}
 <div class="crm-block crm-form-block crm-case-caseview-form-block">
-{if $showRelatedCases}
-<table class="report">
-  <tr class="columnheader">
-    <th>{ts}Client Name{/ts}</th>
-    <th>{ts}Case Type{/ts}</th>
-    <th></th>
-  </tr>
 
-  {foreach from=$relatedCases item=row key=caseId}
-    <tr>
-      <td class="crm-case-caseview-client_name label">{$row.client_name}</td>
-      <td class="crm-case-caseview-case_type label">{$row.case_type}</td>
-      <td class="label">{$row.links}</td>
-    </tr>
-  {/foreach}
-</table>
+{* here we are showing related cases w/ jquery dialog *}
+{if $showRelatedCases}
+  {include file="CRM/Case/Form/ViewRelatedCases.tpl"}
 
-  {else}
+{* Main case view *}
+{else}
 
-<h3>{ts}Case Summary{/ts}</h3>
-<table class="report">
+<h3>{ts}Summary{/ts}</h3>
+<table class="report crm-entity case-summary" data-entity="case" data-id="{$caseID}" data-cid="{$contactID}">
   {if $multiClient}
     <tr class="crm-case-caseview-client">
       <td colspan="5" class="label">
         {foreach from=$caseRoles.client item=client name=clients}
           <a href="{crmURL p='civicrm/contact/view' q="action=view&reset=1&cid=`$client.contact_id`"}" title="{ts}view contact record{/ts}">{$client.display_name}</a>{if not $smarty.foreach.clients.last}, &nbsp; {/if}
         {/foreach}
-        <a href="#" title="{ts}add new client to the case{/ts}" onclick="addClient( );return false;">
+        <a href="#" class="crm-hover-button" title="{ts}add new client to the case{/ts}" onclick="addClient( );return false;">
           <span class="icon edit-icon"></span>
         </a>
         {if $hasRelatedCases}
-          <div class="crm-block relatedCases-link"><a href='#' onClick='viewRelatedCases( {$caseID}, {$contactID} ); return false;'>{ts}Related Cases{/ts}</a></div>
+          <div class="crm-block relatedCases-link"><a class="crm-hover-button crm-popup medium-popup" href="{$relatedCaseUrl}">{$relatedCaseLabel}</a></div>
         {/if}
       </td>
     </tr>
           {/foreach}
         </table>
         {if $hasRelatedCases}
-          <div class="crm-block relatedCases-link"><a href='#' onClick='viewRelatedCases( {$caseID}, {$contactID} ); return false;'>{ts}Related Cases{/ts}</a></div>
+          <div class="crm-block relatedCases-link"><a class="crm-hover-button crm-popup medium-popup" href="{$relatedCaseUrl}">{$relatedCaseLabel}</a></div>
         {/if}
       </td>
     {/if}
     <td class="crm-case-caseview-case_subject label">
-      <span class="crm-case-summary-label">{ts}Case Subject{/ts}:</span>&nbsp;{$caseDetails.case_subject}
+      <span class="crm-case-summary-label">{ts}Subject{/ts}:</span>&nbsp;{$caseDetails.case_subject}
     </td>
     <td class="crm-case-caseview-case_type label">
-      <span class="crm-case-summary-label">{ts}Case Type{/ts}:</span>&nbsp;{$caseDetails.case_type}&nbsp;<a href="{crmURL p='civicrm/case/activity' q="action=add&reset=1&cid=`$contactId`&caseid=`$caseId`&selectedChild=activity&atype=`$changeCaseTypeId`"}" title="{ts}Change case type (creates activity record){/ts}"><span class="icon edit-icon"></span></a>
+      <span class="crm-case-summary-label">{ts}Type{/ts}:</span>&nbsp;{$caseDetails.case_type}&nbsp;<a class="crm-hover-button crm-popup"  href="{crmURL p='civicrm/case/activity' q="action=add&reset=1&cid=`$contactId`&caseid=`$caseId`&selectedChild=activity&atype=`$changeCaseTypeId`"}" title="{ts}Change case type (creates activity record){/ts}"><span class="icon edit-icon"></span></a>
     </td>
     <td class="crm-case-caseview-case_status label">
-      <span class="crm-case-summary-label">{ts}Status{/ts}:</span>&nbsp;{$caseDetails.case_status}&nbsp;<a href="{crmURL p='civicrm/case/activity' q="action=add&reset=1&cid=`$contactId`&caseid=`$caseId`&selectedChild=activity&atype=`$changeCaseStatusId`"}" title="{ts}Change case status (creates activity record){/ts}"><span class="icon edit-icon"></span></a>
+      <span class="crm-case-summary-label">{ts}Status{/ts}:</span>&nbsp;{$caseDetails.case_status}&nbsp;<a class="crm-hover-button crm-popup"  href="{crmURL p='civicrm/case/activity' q="action=add&reset=1&cid=`$contactId`&caseid=`$caseId`&selectedChild=activity&atype=`$changeCaseStatusId`"}" title="{ts}Change case status (creates activity record){/ts}"><span class="icon edit-icon"></span></a>
     </td>
     <td class="crm-case-caseview-case_start_date label">
-      <span class="crm-case-summary-label">{ts}Start Date{/ts}:</span>&nbsp;{$caseDetails.case_start_date|crmDate}&nbsp;<a href="{crmURL p='civicrm/case/activity' q="action=add&reset=1&cid=`$contactId`&caseid=`$caseId`&selectedChild=activity&atype=`$changeCaseStartDateId`"}" title="{ts}Change case start date (creates activity record){/ts}"><span class="icon edit-icon"></span></a>
+      <span class="crm-case-summary-label">{ts}Open Date{/ts}:</span>&nbsp;{$caseDetails.case_start_date|crmDate}&nbsp;<a class="crm-hover-button crm-popup"  href="{crmURL p='civicrm/case/activity' q="action=add&reset=1&cid=`$contactId`&caseid=`$caseId`&selectedChild=activity&atype=`$changeCaseStartDateId`"}" title="{ts}Change case start date (creates activity record){/ts}"><span class="icon edit-icon"></span></a>
     </td>
     <td class="crm-case-caseview-{$caseID} label">
-      <span class="crm-case-summary-label">{ts}Case ID{/ts}:</span>&nbsp;{$caseID}
+      <span class="crm-case-summary-label">{ts}ID{/ts}:</span>&nbsp;{$caseID}
     </td>
   </tr>
 </table>
   </div>
   {/if}
 
-<table class="form-layout">
-<tr class="crm-case-caseview-form-block-activity_type_id">
-  <td>{$form.activity_type_id.label}<br />{$form.activity_type_id.html}&nbsp;<input type="button" accesskey="N" value="{ts}Go{/ts}" name="new_activity" onclick="checkSelection( this );"/></td>
-  {if $hasAccessToAllCases}
-    <td>
-      <span class="crm-button"><div class="icon print-icon"></div><input type="button"  value="{ts}Print Case Report{/ts}" name="case_report_all" onclick="printCaseReport( );"/></span>
-    </td>
-  </tr>
-  <tr>
-    <td class="crm-case-caseview-form-block-timeline_id">{$form.timeline_id.label}<br />{$form.timeline_id.html}&nbsp;{$form._qf_CaseView_next.html}</td>
-    <td class="crm-case-caseview-form-block-report_id">{$form.report_id.label}<br />{$form.report_id.html}&nbsp;<input type="button" accesskey="R" value="Go" name="case_report" onclick="checkSelection( this );"/></td>
-    {else}
-    <td></td>
-  {/if}
-</tr>
+<div class="case-control-panel">
+  <div>
+    <p>
+      {$form.add_activity_type_id.html}
+      {if $hasAccessToAllCases} &nbsp;
+        {$form.timeline_id.html}{$form._qf_CaseView_next.html} &nbsp;
+        {$form.report_id.html}
+      {/if}
+    </p>
+  </div>
+  <div>
+    <p>
+      {if $hasAccessToAllCases}
+        <a class="crm-hover-button action-item no-popup" href="{crmURL p='civicrm/case/report/print' q="all=1&redact=0&cid=$contactID&caseID=$caseId&asn=standard_timeline"}"><span class="icon print-icon"></span> {ts}Print Report{/ts}</a>
+      {/if}
 
-  {if $mergeCases}
-    <tr class="crm-case-caseview-form-block-merge_case_id">
-      <td colspan='2'><a href="#" onClick='cj("#merge_cases").toggle( ); return false;'>{ts}Merge Case{/ts}</a>
-        <span id='merge_cases' class='hide-block'>
-          {$form.merge_case_id.html}&nbsp;{$form._qf_CaseView_next_merge_case.html}
+      {if $mergeCases}
+        <a href="#merge_cases" class="action-item no-popup crm-hover-button case-miniform"><span class="icon ui-icon-copy"></span>{ts}Merge Case{/ts}</a>
+        {$form._qf_CaseView_next_merge_case.html}
+        <span id='merge_cases' class="hiddenElement">
+          {$form.merge_case_id.html}
         </span>
-      </td>
-    </tr>
-  {/if}
-
-  {if call_user_func(array('CRM_Core_Permission','giveMeAllACLs'))}
-    <tr class="crm-case-caseview-form-block-change_client_id">
-      <td colspan='2'><a href="#" onClick='cj("#change_client").toggle( ); return false;'>{ts}Assign to Another Client{/ts}</a>
-          <span id='change_client' class='hide-block'>
-            {$form.change_client_id.html|crmAddClass:twenty}&nbsp;{$form._qf_CaseView_next_edit_client.html}
-          </span>
-      </td>
-    </tr>
-  {/if}
-</table>
+      {/if}
 
-<div id="view-related-cases">
-  <div id="related-cases-content"></div>
+      {if call_user_func(array('CRM_Core_Permission','giveMeAllACLs'))}
+        <a class="action-item crm-hover-button medium-popup" href="{crmURL p='civicrm/contact/view/case/editClient' h=1 q="reset=1&action=update&id=$caseID&cid=$contactID"}"><span class="icon ui-icon-person"></span> {ts}Assign to Another Client{/ts}</a>
+      {/if}
+    </p>
+  </div>
 </div>
 
 <div class="clear"></div>
 
 <div class="crm-accordion-wrapper collapsed crm-case-roles-block">
   <div class="crm-accordion-header">
-    {ts}Case Roles{/ts}
+    {ts}Roles{/ts}
   </div><!-- /.crm-accordion-header -->
   <div class="crm-accordion-body">
 
       </tr></thead>
     </table>
 
+    <div id="deleteCaseRole" class="case-miniform hiddenElement">
+     {ts}Are you sure you want to delete this case role?{/ts}
+    </div>
+
   {literal}
   <script type="text/javascript">
   var oTable;
 
   cj(function() {
-    cj().crmAccordions();
     buildCaseRoles(false);
   });
 
-  function deleteCaseRoles(caseselector) {
-    cj('.case-role-delete').click(function(){
-      var caseID = cj(this).attr('case_id');
-      var relType  = cj(this).attr('rel_type');
-
-      CRM.confirm(function() {
-        var postUrl = {/literal}"{crmURL p='civicrm/ajax/delcaserole' h=0 }"{literal};
-        cj.post( postUrl, {
-          rel_type: relType, case_id: caseID, key: {/literal}"{crmKey name='civicrm/ajax/delcaserole'}"{literal}},
-          function(data) {
-            // reloading datatable
-            var oTable = cj('#' + caseselector).dataTable();
-            oTable.fnDraw();
-          }
-        );
-      }
-      ,{
-        title: '{/literal}{ts escape="js"}Delete case role{/ts}{literal}',
-        message: '{/literal}{ts escape="js"}Are you sure you want to delete this case role?{/ts}{literal}'
-      });
-      return false;
-    });
-  }
-
   function buildCaseRoles(filterSearch) {
     if(filterSearch) {
       oTable.fnDestroy();
     cj("#caseRoles-selector td:last-child").each( function( ) {
       cj(this).parent().addClass(cj(this).text() );
     });
-
-    // also bind delete action once rows are rendered
-    deleteCaseRoles('caseRoles-selector');
   }
 
-  function printCaseReport( ) {
-    var asn = 'standard_timeline';
-    var dataUrl = {/literal}"{crmURL p='civicrm/case/report/print' q='all=1&redact=0' h='0'}"{literal};
-    dataUrl     = dataUrl + '&cid={/literal}{$contactID}{literal}'
-    + '&caseID={/literal}{$caseID}{literal}'
-    + '&asn={/literal}' + asn + '{literal}';
-
-    window.location = dataUrl;
-  }
 </script>
 {/literal}
  </div><!-- /.crm-accordion-body -->
 
 {literal}
 <script type="text/javascript">
-  var selectedContact = '';
-  var caseID = {/literal}"{$caseID}"{literal};
-  var contactUrl = {/literal}"{crmURL p='civicrm/ajax/rest' q='className=CRM_Contact_Page_AJAX&fnName=getContactList&json=1&context=newcontact' h=0 }"{literal};
-  cj( "#change_client_id").autocomplete( contactUrl, { width : 250, selectFirst : false, matchContains:true
-  }).result( function(event, data, formatted) { cj( "#contact_id" ).val( data[1] ); selectedContact = data[0];
-    }).bind( 'click', function( ) { cj( "#contact_id" ).val(''); });
 
   cj("#dialog").hide( );
 
     cj("#dialog").show( );
 
     cj("#dialog").dialog({
-      title: "Add Client to the Case",
+      title: "{/literal}{ts escape="js"}Add Client to the Case{/ts}{literal}",
       modal: true,
-      bgiframe: true,
-      close  : function(event, ui) { cj("#rel_contact").unautocomplete( ); },
+      close  : function(event, ui) {
+        cj("#rel_contact").unautocomplete( );
+        cj("#dialog").hide( );
+      },
       overlay: { opacity: 0.5, background: "black" },
 
       open:function() {
       },
 
       buttons: {
-      "Done": function() {
+      "{/literal}{ts escape='js'}Done{/ts}{literal}": function() {
         var postUrl = {/literal}"{crmURL p='civicrm/case/ajax/addclient' h=0 }"{literal};
         var caseID        = {/literal}"{$caseID}"{literal};
         var contactID = cj("#rel_contact_id").val( );
 
         if ( !cj("#rel_contact").val( ) || !contactID ) {
-          cj("#rel_contact").crmError('{/literal}{ts escape="js"}Select valid contact from the list{/ts}{literal}.');
+          cj("#rel_contact").crmError('{/literal}{ts escape="js"}Select valid contact from the list.{/ts}{literal}');
           return false;
         }
         cj.post( postUrl, {contactID: contactID,caseID: caseID,
         );
         },
 
-        "Cancel": function() {
+        "{/literal}{ts escape='js'}Cancel{/ts}{literal}": function() {
           cj(this).dialog("close");
           cj(this).dialog("destroy");
         }
     cj("#dialog").dialog({
       title: "Assign Case Role",
       modal: true,
-      bgiframe: true,
       close: function(event, ui) { cj("#rel_contact").unautocomplete( ); },
-      overlay: {
-        opacity: 0.5,
-        background: "black"
-      },
-
       open:function() {
         /* set defaults if editing */
         cj("#rel_contact").val("");
       },
 
       buttons: {
-        "Ok": function() {
+        "{/literal}{ts escape='js'}Ok{/ts}{literal}": function() {
 
           var sourceContact = {/literal}"{$contactID}"{literal};
           var caseID        = {/literal}"{$caseID}"{literal};
           cj(this).dialog("destroy");
         },
 
-        "Cancel": function() {
-          cj(this).dialog("close");
-          cj(this).dialog("destroy");
-        }
-      }
-    });
-  }
-
-  function viewRelatedCases( mainCaseID, contactID ) {
-    cj("#view-related-cases").show( );
-    cj("#view-related-cases").dialog({
-      title: "Related Cases",
-      modal: true,
-      width : "680px",
-      height: 'auto',
-      resizable: true,
-      bgiframe: true,
-      overlay: {
-        opacity: 0.5,
-        background: "black"
-      },
-
-      beforeclose: function(event, ui) {
-        cj(this).dialog("destroy");
-      },
-
-      open:function() {
-        var dataUrl = {/literal}"{crmURL p='civicrm/contact/view/case' h=0 q="snippet=4" }"{literal};
-          dataUrl = dataUrl + '&id=' + mainCaseID + '&cid=' +contactID + '&relatedCases=true&action=view&context=case&selectedChild=case';
-
-          cj.ajax({
-            url     : dataUrl,
-            async   : false,
-            success : function(html){
-              cj("#related-cases-content" ).html( html );
-            }
-          });
-        },
-
-      buttons: {
-        "Done": function() {
+        "{/literal}{ts escape='js'}Cancel{/ts}{literal}": function() {
           cj(this).dialog("close");
           cj(this).dialog("destroy");
         }
     });
   }
 
-cj(function(){
-   cj("#view-activity").hide( );
-});
 </script>
 {/literal}
 
@@ -492,11 +384,11 @@ cj(function(){
       {ts}Other Relationships{/ts}
     </div><!-- /.crm-accordion-header -->
     <div class="crm-accordion-body">
-
+      {capture assign=relUrl}{crmURL p='civicrm/contact/view/rel' q="action=add&reset=1&cid=`$contactId`&caseID=`$caseID`"}{/capture}
       {if $clientRelationships}
         <div class="crm-submit-buttons">
-          <a class="button" href="#" onClick="window.location='{crmURL p='civicrm/contact/view/rel' q="action=add&reset=1&cid=`$contactId`&caseID=`$caseID`"}'; return false;">
-          <span><div class="icon add-icon"></div>{ts}Add client relationship{/ts}</a></span>
+          <a class="button" href="{$relUrl}">
+          <div class="icon add-icon"></div>{ts}Add client relationship{/ts}</a>
         </div>
         <table id="clientRelationships-selector"  class="report-layout">
           <thead><tr>
@@ -509,8 +401,8 @@ cj(function(){
         {else}
         <div class="messages status no-popup">
           <div class="icon inform-icon"></div>
-          {capture assign=crmURL}{crmURL p='civicrm/contact/view/rel' q="action=add&reset=1&cid=`$contactId`&caseID=`$caseID`"}{/capture}
-          {ts 1=$crmURL}There are no Relationships entered for this client. You can <a accesskey="N" href='%1'>add one</a>.{/ts}
+          {capture assign=link}class="action-item" href="{$relUrl}"{/capture}
+          {ts 1=$link}There are no Relationships entered for this client. You can <a %1>add one</a>.{/ts}
         </div>
       {/if}
  {literal}
@@ -684,13 +576,7 @@ function addRole() {
   cj("#addRoleDialog").dialog({
     title: "Add Role",
     modal: true,
-    bgiframe: true,
     close: function(event, ui) { cj("#role_contact").unautocomplete( ); },
-    overlay: {
-      opacity: 0.5,
-      background: "black"
-    },
-
     open:function() {
       /* set defaults if editing */
       cj("#role_contact").val( "" );
@@ -711,7 +597,7 @@ function addRole() {
     },
 
     buttons: {
-      "Ok": function() {
+      "{/literal}{ts escape='js'}Ok{/ts}{literal}": function() {
         var sourceContact = {/literal}"{$contactID}"{literal};
         var caseID        = {/literal}"{$caseID}"{literal};
         var relID         = null;
@@ -759,7 +645,7 @@ function addRole() {
         cj(this).dialog("destroy");
       },
 
-      "Cancel": function() {
+      "{/literal}{ts escape='js'}Cancel{/ts}{literal}": function() {
         cj(this).dialog("close");
         cj(this).dialog("destroy");
       }
@@ -781,7 +667,7 @@ function addRole() {
  <div class="crm-accordion-body">
   {assign var="tagExits" value=0}
   {if $tags}
-    <div class="crm-block crm-content-block crm-case-caseview-display-tags">{$tags}</div>
+    <div class="crm-block crm-content-block crm-case-caseview-display-tags">&nbsp;&nbsp;{$tags}</div>
     {assign var="tagExits" value=1}
   {/if}
 
@@ -803,12 +689,14 @@ function addRole() {
      </div>
    {/if}
 
-  <div class="crm-submit-buttons"><input type="button" class="form-submit" onClick="javascript:addTags()" value={if $tagExits}"{ts}Edit Tags{/ts}"{else}"{ts}Add Tags{/ts}"{/if} /></div>
+  <div class="crm-submit-buttons">
+    <a class="button case-miniform" href="#manageTags" data-key="{crmKey name='civicrm/case/ajax/processtags'}">{if $tagExits}{ts}Edit Tags{/ts}{else}{ts}Add Tags{/ts}{/if}</a>
+  </div>
 
  </div><!-- /.crm-accordion-body -->
 </div><!-- /.crm-accordion-wrapper -->
 
-<div id="manageTags">
+<div id="manageTags" class="hiddenElement">
   <div class="label">{$form.case_tag.label}</div>
   <div class="view-value"><div class="crm-select-container">{$form.case_tag.html}</div>
     <br/>
@@ -818,96 +706,13 @@ function addRole() {
   </div>
 </div>
 
-{literal}
-<script type="text/javascript">
-cj("#manageTags select[multiple]").crmasmSelect({
-  addItemTarget: 'bottom',
-  animate: true,
-  highlight: true,
-  sortable: true,
-  respectParents: true
-});
-
-cj("#manageTags").hide( );
-function addTags() {
-  cj("#manageTags").show( );
-
-  cj("#manageTags").dialog({
-    title: "{/literal}{ts escape='js'}Change Case Tags{/ts}{literal}",
-    modal: true,
-    height: 'auto',
-    width: 'auto',
-    buttons: {
-      "Save": function() {
-        var tagsChecked = '';
-        var caseID      = {/literal}{$caseID}{literal};
-
-        cj("#manageTags #tags option").each( function() {
-          if (cj(this).prop('selected')) {
-            if (!tagsChecked) {
-              tagsChecked = cj(this).val() + '';
-            }
-            else {
-              tagsChecked = tagsChecked + ',' + cj(this).val();
-            }
-          }
-        });
-
-        var tagList = '';
-        cj("#manageTags input[name^=case_taglist]").each(function( ) {
-          if (!tagsChecked) {
-            tagsChecked = cj(this).val() + '';
-          }
-          else {
-            tagsChecked = tagsChecked + ',' + cj(this).val();
-          }
-        });
-
-        var postUrl = {/literal}"{crmURL p='civicrm/case/ajax/processtags' h=0 }"{literal};
-        var data = 'case_id=' + caseID + '&tag=' + tagsChecked + '&key=' + {/literal}"{crmKey name='civicrm/case/ajax/processtags'}"{literal};
-
-        cj.ajax({ type: "POST", url: postUrl, data: data, async: false });
-        cj(this).dialog("close");
-        cj(this).dialog("destroy");
-
-        // Temporary workaround for problems with SSL connections being too
-        // slow. The relationship doesn't get created because the page reload
-        // happens before the ajax call.
-        // In general this reload needs improvement, which is already on the list for phase 2.
-        var sdate = (new Date()).getTime();
-        var curDate = sdate;
-        while(curDate-sdate < 2000) {
-          curDate = (new Date()).getTime();
-        }
-
-        //due to caching issues we use redirection rather than reload
-        document.location = {/literal}'{crmURL q="action=view&reset=1&id=$caseID&cid=$contactID&context=$context" h=0 }'{literal};
-      },
-
-      "Cancel": function() {
-        cj(this).dialog("close");
-        cj(this).dialog("destroy");
-      }
-    }
-  });
-}
-
-</script>
-{/literal}
-
 {/if} {* end of tag block*}
 
-{*include activity view js file*}
-{include file="CRM/common/activityView.tpl"}
-
 <div class="crm-accordion-wrapper crm-case_activities-accordion  crm-case-activities-block">
   <div class="crm-accordion-header">
-    {ts}Case Activities{/ts}
+    {ts}Activities{/ts}
   </div>
   <div id="activities" class="crm-accordion-body">
-    <div id="view-activity">
-      <div id="activity-content"></div>
-    </div>
     <div class="crm-accordion-wrapper crm-accordion-inner crm-search_filters-accordion collapsed">
       <div class="crm-accordion-header">
         {ts}Search Filters{/ts}</a>
@@ -970,65 +775,6 @@ function addTags() {
 <script type="text/javascript">
 var oTable;
 
-function checkSelection( field ) {
-  var validationMessage = '';
-  var validationField   = '';
-  var successAction     = '';
-  var forceValidation   = false;
-
-  var clientName = new Array( );
-  clientName = selectedContact.split('::');
-  var fName = field.name;
-
-  switch ( fName )  {
-  case '_qf_CaseView_next' :
-    validationMessage = '{/literal}{ts escape="js"}Please select an activity set from the list.{/ts}{literal}';
-    validationField   = 'timeline_id';
-    successAction     = "confirm('{/literal}{ts escape='js'}Are you sure you want to add a set of scheduled activities to this case?{/ts}{literal}');";
-    break;
-
-  case 'new_activity' :
-    validationMessage = '{/literal}{ts escape="js"}Please select an activity type from the list.{/ts}{literal}';
-    validationField   = 'activity_type_id';
-    if ( document.getElementById('activity_type_id').value == 3 ) {
-      successAction = "window.location='{/literal}{$newActivityEmailUrl}{literal}' + document.getElementById('activity_type_id').value";
-    }
-    else {
-      successAction = "window.location='{/literal}{$newActivityUrl}{literal}' + document.getElementById('activity_type_id').value";
-    }
-    break;
-
-  case 'case_report' :
-    validationMessage = '{/literal}{ts escape="js"}Please select a report from the list.{/ts}{literal}';
-    validationField   = 'report_id';
-    successAction     = "window.location='{/literal}{$reportUrl}{literal}' + document.getElementById('report_id').value";
-    break;
-
-  case '_qf_CaseView_next_merge_case' :
-    validationMessage = '{/literal}{ts escape="js"}Please select a case from the list to merge with.{/ts}{literal}';
-    validationField   = 'merge_case_id';
-    break;
-
-  case '_qf_CaseView_next_edit_client' :
-    validationMessage = '{/literal}{ts escape="js"}Please select a client for this case.{/ts}{literal}';
-    if ( cj('#contact_id').val( ) == '{/literal}{$contactID}{literal}' ) {
-      forceValidation = true;
-      validationMessage = '{/literal}{ts 1="'+clientName[0]+'"}%1 is already assigned to this case. Please select some other client for this case.{/ts}{literal}';
-    }
-    validationField   = 'change_client_id';
-    successAction     = "confirm( '{/literal}{ts 1="'+clientName[0]+'"}Are you sure you want to reassign this case and all related activities and relationships to %1?{/ts}{literal}' )";
-    break;
-  }
-
-  if ( forceValidation || ( document.getElementById( validationField ).value == '' ) ) {
-    cj('#'+validationField).crmError(validationMessage);
-    return false;
-  }
-  else if ( successAction ) {
-    return eval( successAction );
-  }
-}
-
 cj(function( ) {
   buildCaseActivities(false);
 });
@@ -1102,28 +848,12 @@ function setSelectorClass( ) {
   });
 }
 
-function printCaseReport( ) {
-  var asn = 'standard_timeline';
-  var dataUrl = {/literal}"{crmURL p='civicrm/case/report/print' q='all=1&redact=0' h='0'}"{literal};
-  dataUrl     = dataUrl + '&cid={/literal}{$contactID}{literal}'
-  + '&caseID={/literal}{$caseID}{literal}'
-  + '&asn={/literal}' + asn + '{literal}';
-
-  window.location = dataUrl;
-}
-
 </script>
 {/literal}
 
 <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
 
-{literal}
-<script type="text/javascript">
-  cj(function() {
-    cj().crmAccordions();
-  });
-</script>
-{/literal}
-
+  {include file="CRM/Case/Form/ActivityChangeStatusJs.tpl"}
 {/if} {* view related cases if end *}
 </div>
+