Merge pull request #2722 from colemanw/case
[civicrm-core.git] / templates / CRM / Case / Form / CaseView.tpl
1 {*
2 +--------------------------------------------------------------------+
3 | CiviCRM version 4.4 |
4 +--------------------------------------------------------------------+
5 | Copyright CiviCRM LLC (c) 2004-2013 |
6 +--------------------------------------------------------------------+
7 | This file is a part of CiviCRM. |
8 | |
9 | CiviCRM is free software; you can copy, modify, and distribute it |
10 | under the terms of the GNU Affero General Public License |
11 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
12 | |
13 | CiviCRM is distributed in the hope that it will be useful, but |
14 | WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
16 | See the GNU Affero General Public License for more details. |
17 | |
18 | You should have received a copy of the GNU Affero General Public |
19 | License and the CiviCRM Licensing Exception along |
20 | with this program; if not, contact CiviCRM LLC |
21 | at info[AT]civicrm[DOT]org. If you have questions about the |
22 | GNU Affero General Public License or the licensing of CiviCRM, |
23 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
24 +--------------------------------------------------------------------+
25 *}
26 {* CiviCase - view case screen*}
27
28 <div class="crm-block crm-form-block crm-case-caseview-form-block">
29
30 {* here we are showing related cases w/ jquery dialog *}
31 {if $showRelatedCases}
32 {include file="CRM/Case/Form/ViewRelatedCases.tpl"}
33
34 {* Main case view *}
35 {else}
36
37 <h3>{ts}Summary{/ts}</h3>
38 <table class="report crm-entity case-summary" data-entity="case" data-id="{$caseID}" data-cid="{$contactID}">
39 {if $multiClient}
40 <tr class="crm-case-caseview-client">
41 <td colspan="5" class="label">
42 {ts}Clients:{/ts}
43 {foreach from=$caseRoles.client item=client name=clients}
44 <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}
45 {/foreach}
46 <a href="#addClientDialog" class="crm-hover-button case-miniform" title="{ts}Add Client{/ts}" data-key="{crmKey name='civicrm/case/ajax/addclient'}">
47 <span class="icon add-icon"></span>
48 </a>
49 <div id="addClientDialog" class="hiddenElement">
50 <input name="add_client_id" placeholder="{ts}- select contact -{/ts}" class="huge" />
51 </div>
52 {if $hasRelatedCases}
53 <div class="crm-block relatedCases-link"><a class="crm-hover-button crm-popup medium-popup" href="{$relatedCaseUrl}">{$relatedCaseLabel}</a></div>
54 {/if}
55 </td>
56 </tr>
57 {/if}
58 <tr>
59 {if not $multiClient}
60 <td>
61 <table class="form-layout-compressed">
62 {foreach from=$caseRoles.client item=client}
63 <tr class="crm-case-caseview-display_name">
64 <td class="label-left bold" style="padding: 0px; border: none;">{$client.display_name}</td>
65 </tr>
66 {if $client.phone}
67 <tr class="crm-case-caseview-phone">
68 <td class="label-left description" style="padding: 1px">{$client.phone}</td>
69 </tr>
70 {/if}
71 {if $client.birth_date}
72 <tr class="crm-case-caseview-birth_date">
73 <td class="label-left description" style="padding: 1px">{ts}DOB{/ts}: {$client.birth_date|crmDate}</td>
74 </tr>
75 {/if}
76 {/foreach}
77 </table>
78 {if $hasRelatedCases}
79 <div class="crm-block relatedCases-link"><a class="crm-hover-button crm-popup medium-popup" href="{$relatedCaseUrl}">{$relatedCaseLabel}</a></div>
80 {/if}
81 </td>
82 {/if}
83 <td class="crm-case-caseview-case_subject label">
84 <span class="crm-case-summary-label">{ts}Subject{/ts}:</span>&nbsp;{$caseDetails.case_subject}
85 </td>
86 <td class="crm-case-caseview-case_type label">
87 <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>
88 </td>
89 <td class="crm-case-caseview-case_status label">
90 <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>
91 </td>
92 <td class="crm-case-caseview-case_start_date label">
93 <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>
94 </td>
95 <td class="crm-case-caseview-{$caseID} label">
96 <span class="crm-case-summary-label">{ts}ID{/ts}:</span>&nbsp;{$caseID}
97 </td>
98 </tr>
99 </table>
100 {if $hookCaseSummary}
101 <div id="caseSummary">
102 {foreach from=$hookCaseSummary item=val key=div_id}
103 <div id="{$div_id}"><label>{$val.label}</label><div class="value">{$val.value}</div></div>
104 {/foreach}
105 </div>
106 {/if}
107
108 <div class="case-control-panel">
109 <div>
110 <p>
111 {$form.add_activity_type_id.html}
112 {if $hasAccessToAllCases} &nbsp;
113 {$form.timeline_id.html}{$form._qf_CaseView_next.html} &nbsp;
114 {$form.report_id.html}
115 {/if}
116 </p>
117 </div>
118 <div>
119 <p>
120 {if $hasAccessToAllCases}
121 <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>
122 {/if}
123
124 {if $mergeCases}
125 <a href="#mergeCasesDialog" class="action-item no-popup crm-hover-button case-miniform"><span class="icon ui-icon-copy"></span>{ts}Merge Case{/ts}</a>
126 {$form._qf_CaseView_next_merge_case.html}
127 <span id="mergeCasesDialog" class="hiddenElement">
128 {$form.merge_case_id.html}
129 </span>
130 {/if}
131
132 {if call_user_func(array('CRM_Core_Permission','giveMeAllACLs'))}
133 <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>
134 {/if}
135 </p>
136 </div>
137 </div>
138
139 <div class="clear"></div>
140 {include file="CRM/Case/Page/CustomDataView.tpl"}
141
142 <div class="crm-accordion-wrapper collapsed crm-case-roles-block">
143 <div class="crm-accordion-header">
144 {ts}Roles{/ts}
145 </div><!-- /.crm-accordion-header -->
146 <div class="crm-accordion-body">
147
148 {if $hasAccessToAllCases}
149 <div class="crm-submit-buttons">
150 <a class="button case-miniform" href="#addCaseRoleDialog" data-key="{crmKey name='civicrm/ajax/relation'}" rel="#caseRoles-selector"><div class="icon add-icon"></div>{ts}Add new role{/ts}</a>
151 </div>
152 <div id="addCaseRoleDialog" class="hiddenElement">
153 <div>{$form.role_type.label}</div>
154 <div>{$form.role_type.html}</div><br />
155 <div><label for="add_role_contact_id">{ts}Assign To{/ts}:</label></div>
156 <div><input name="add_role_contact_id" placeholder="{ts}- select contact -{/ts}" class="huge" /></div>
157 </div>
158 {/if}
159
160 <div id="editCaseRoleDialog" class="hiddenElement">
161 <div><label for="edit_role_contact_id">{ts}Change To{/ts}:</label></div>
162 <div><input name="edit_role_contact_id" placeholder="{ts}- select contact -{/ts}" class="huge" /></div>
163 </div>
164
165 <table id="caseRoles-selector" class="report-layout">
166 <thead><tr>
167 <th>{ts}Case Role{/ts}</th>
168 <th>{ts}Name{/ts}</th>
169 <th>{ts}Phone{/ts}</th>
170 <th>{ts}Email{/ts}</th>
171 {if $relId neq 'client' and $hasAccessToAllCases}
172 <th id="nosort">{ts}Actions{/ts}</th>
173 {/if}
174 </tr></thead>
175 </table>
176
177 <div id="deleteCaseRoleDialog" class="hiddenElement">
178 {ts}Are you sure you want to delete this case role?{/ts}
179 </div>
180
181 {literal}
182 <script type="text/javascript">
183 var oTable;
184
185 cj(function() {
186 buildCaseRoles(false);
187 });
188
189 function buildCaseRoles(filterSearch) {
190 if(filterSearch) {
191 oTable.fnDestroy();
192 }
193 var count = 0;
194 var columns = '';
195 var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/caseroles' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
196 sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
197 sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
198
199 cj('#caseRoles-selector th').each( function( ) {
200 if ( cj(this).attr('id') != 'nosort' ) {
201 columns += '{"sClass": "' + cj(this).attr('class') +'"},';
202 }
203 else {
204 columns += '{ "bSortable": false },';
205 }
206 count++;
207 });
208
209 columns = columns.substring(0, columns.length - 1 );
210 eval('columns =[' + columns + ']');
211
212 oTable = cj('#caseRoles-selector').dataTable({
213 "bFilter" : false,
214 "bAutoWidth" : false,
215 "aaSorting" : [],
216 "aoColumns" : columns,
217 "bProcessing": true,
218 "bJQueryUI": true,
219 "asStripClasses" : [ "odd-row", "even-row" ],
220 "sPaginationType": "full_numbers",
221 "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
222 "bServerSide": true,
223 "sAjaxSource": sourceUrl,
224 "iDisplayLength": 10,
225 "fnDrawCallback": function() { setCaseRolesSelectorClass(); },
226 "fnServerData": function ( sSource, aoData, fnCallback ) {
227 cj.ajax({
228 "dataType": 'json',
229 "type": "POST",
230 "url": sSource,
231 "data": aoData,
232 "success": fnCallback
233 });
234 }
235 });
236 }
237
238 function setCaseRolesSelectorClass( ) {
239 cj("#caseRoles-selector td:last-child").each( function( ) {
240 cj(this).parent().addClass(cj(this).text() );
241 });
242 }
243
244 </script>
245 {/literal}
246 </div><!-- /.crm-accordion-body -->
247 </div><!-- /.crm-accordion-wrapper -->
248
249 {if $hasAccessToAllCases}
250 <div class="crm-accordion-wrapper collapsed crm-case-other-relationships-block">
251 <div class="crm-accordion-header">
252 {ts}Other Relationships{/ts}
253 </div><!-- /.crm-accordion-header -->
254 <div class="crm-accordion-body">
255 {capture assign=relUrl}{crmURL p='civicrm/contact/view/rel' q="action=add&reset=1&cid=`$contactId`&caseID=`$caseID`"}{/capture}
256 {if $clientRelationships}
257 <div class="crm-submit-buttons">
258 <a class="button" href="{$relUrl}">
259 <div class="icon add-icon"></div>{ts}Add client relationship{/ts}</a>
260 </div>
261 <table id="clientRelationships-selector" class="report-layout">
262 <thead><tr>
263 <th>{ts}Client Relationship{/ts}</th>
264 <th>{ts}Name{/ts}</th>
265 <th>{ts}Phone{/ts}</th>
266 <th>{ts}Email{/ts}</th>
267 </tr></thead>
268 </table>
269 {else}
270 <div class="messages status no-popup">
271 <div class="icon inform-icon"></div>
272 {capture assign=link}class="action-item" href="{$relUrl}"{/capture}
273 {ts 1=$link}There are no Relationships entered for this client. You can <a %1>add one</a>.{/ts}
274 </div>
275 {/if}
276 {literal}
277 <script type="text/javascript">
278 cj(function( ) {
279 buildCaseClientRelationships(false);
280 });
281
282 function buildCaseClientRelationships(filterSearch) {
283 if (filterSearch) {
284 oTable.fnDestroy();
285 }
286 var count = 0;
287 var columns = '';
288 var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/clientrelationships' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
289 sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
290 sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
291
292 cj('#clientRelationships-selector th').each( function( ) {
293 if ( cj(this).attr('id') != 'nosort' ) {
294 columns += '{"sClass": "' + cj(this).attr('class') +'"},';
295 }
296 else {
297 columns += '{ "bSortable": false },';
298 }
299 count++;
300 });
301
302 columns = columns.substring(0, columns.length - 1 );
303 eval('columns =[' + columns + ']');
304
305 oTable = cj('#clientRelationships-selector').dataTable({
306 "bFilter" : false,
307 "bAutoWidth" : false,
308 "aaSorting" : [],
309 "aoColumns" : columns,
310 "bProcessing": true,
311 "bJQueryUI": true,
312 "asStripClasses" : [ "odd-row", "even-row" ],
313 "sPaginationType": "full_numbers",
314 "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
315 "bServerSide": true,
316 "sAjaxSource": sourceUrl,
317 "iDisplayLength": 10,
318 "fnDrawCallback": function() { setClientRelationshipsSelectorClass(); },
319 "fnServerData": function (sSource, aoData, fnCallback) {
320 cj.ajax( {
321 "dataType": 'json',
322 "type": "POST",
323 "url": sSource,
324 "data": aoData,
325 "success": fnCallback
326 } );
327 }
328 });
329 }
330
331 function setClientRelationshipsSelectorClass( ) {
332 cj("#clientRelationships-selector td:last-child").each(function() {
333 cj(this).parent().addClass(cj(this).text());
334 });
335 }
336 </script>
337 {/literal}
338 <br />
339 {if !empty($globalGroupInfo.id)}
340 <div class="crm-submit-buttons">
341 <a class="button case-miniform" href="#addMembersToGroupDialog" rel="#globalRelationships-selector" data-group_id="{$globalGroupInfo.id}">
342 <div class="icon add-icon"></div>{ts 1=$globalGroupInfo.title}Add members to %1{/ts}
343 </a>
344 </div>
345 <div id="addMembersToGroupDialog" class="hiddenElement">
346 <input name="add_member_to_group_contact_id" placeholder="{ts}- select contact -{/ts}" class="huge" />
347 </div>
348 <table id="globalRelationships-selector" class="report-layout">
349 <thead><tr>
350 <th>{$globalGroupInfo.title}</th>
351 <th>{ts}Phone{/ts}</th>
352 <th>{ts}Email{/ts}</th>
353 </tr></thead>
354 </table>
355 {/if}
356
357 {literal}
358 <script type="text/javascript">
359
360 cj(function() {
361 buildCaseGlobalRelationships(false);
362 });
363
364 function buildCaseGlobalRelationships(filterSearch) {
365 if (filterSearch) {
366 oTable.fnDestroy();
367 }
368 var count = 0;
369 var columns = '';
370 var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/globalrelationships' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
371 sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
372 sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
373
374 cj('#globalRelationships-selector th').each( function( ) {
375 if (cj(this).attr('id') != 'nosort') {
376 columns += '{"sClass": "' + cj(this).attr('class') +'"},';
377 }
378 else {
379 columns += '{ "bSortable": false },';
380 }
381 count++;
382 });
383
384 columns = columns.substring(0, columns.length - 1 );
385 eval('columns =[' + columns + ']');
386
387 oTable = cj('#globalRelationships-selector').dataTable({
388 "bFilter" : false,
389 "bAutoWidth" : false,
390 "aaSorting" : [],
391 "aoColumns" : columns,
392 "bProcessing": true,
393 "bJQueryUI": true,
394 "asStripClasses" : [ "odd-row", "even-row" ],
395 "sPaginationType": "full_numbers",
396 "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
397 "bServerSide": true,
398 "sAjaxSource": sourceUrl,
399 "iDisplayLength": 10,
400 "fnDrawCallback": function() { setGlobalRelationshipsSelectorClass(); },
401 "oLanguage": {
402 "sEmptyTable": {/literal}'{ts escape='js' 1=$globalGroupInfo.title}The group %1 has no members.{/ts}'{literal}
403 },
404 "fnServerData": function ( sSource, aoData, fnCallback ) {
405 cj.ajax( {
406 "dataType": 'json',
407 "type": "POST",
408 "url": sSource,
409 "data": aoData,
410 "success": fnCallback
411 } );
412 }
413 });
414 }
415
416 function setGlobalRelationshipsSelectorClass( ) {
417 cj("#globalRelationships-selector td:last-child").each( function( ) {
418 cj(this).parent().addClass(cj(this).text() );
419 });
420 }
421 </script>
422 {/literal}
423 </div><!-- /.crm-accordion-body -->
424 </div><!-- /.crm-accordion-wrapper -->
425
426 {/if} {* other relationship section ends *}
427 {include file="CRM/Case/Form/ActivityToCase.tpl"}
428
429 {* pane to display / edit regular tags or tagsets for cases *}
430 {if $showTags OR $showTagsets}
431
432 <div id="casetags" class="crm-accordion-wrapper crm-case-tags-block">
433 <div class="crm-accordion-header">
434 {ts}Case Tags{/ts}
435 </div><!-- /.crm-accordion-header -->
436 <div class="crm-accordion-body">
437 {assign var="tagExits" value=0}
438 {if $tags}
439 <div class="crm-block crm-content-block crm-case-caseview-display-tags">&nbsp;&nbsp;{$tags}</div>
440 {assign var="tagExits" value=1}
441 {/if}
442
443 {foreach from=$tagsetInfo_case item=displayTagset}
444 {if $displayTagset.entityTagsArray}
445 <div class="crm-block crm-content-block crm-case-caseview-display-tagset">
446 &nbsp;&nbsp;{$displayTagset.parentName}:
447 {foreach from=$displayTagset.entityTagsArray item=val name="tagsetList"}
448 &nbsp;{$val.name}{if !$smarty.foreach.tagsetList.last},{/if}
449 {/foreach}
450 </div>
451 {assign var="tagExits" value=1}
452 {/if}
453 {/foreach}
454
455 {if !$tagExits }
456 <div class="status">
457 {ts}There are no tags currently assigned to this case.{/ts}
458 </div>
459 {/if}
460
461 <div class="crm-submit-buttons">
462 <a class="button case-miniform" href="#manageTagsDialog" data-key="{crmKey name='civicrm/case/ajax/processtags'}">{if $tagExits}{ts}Edit Tags{/ts}{else}{ts}Add Tags{/ts}{/if}</a>
463 </div>
464
465 </div><!-- /.crm-accordion-body -->
466 </div><!-- /.crm-accordion-wrapper -->
467
468 <div id="manageTagsDialog" class="hiddenElement">
469 <div class="label">{$form.case_tag.label}</div>
470 <div class="view-value"><div class="crm-select-container">{$form.case_tag.html}</div>
471 <br/>
472 <div style="text-align:left;">{include file="CRM/common/Tag.tpl" tagsetType='case'}</div>
473 <br/>
474 <div class="clear"></div>
475 </div>
476 </div>
477
478 {/if} {* end of tag block*}
479
480 <div class="crm-accordion-wrapper crm-case_activities-accordion crm-case-activities-block">
481 <div class="crm-accordion-header">
482 {ts}Activities{/ts}
483 </div>
484 <div id="activities" class="crm-accordion-body">
485 <div class="crm-accordion-wrapper crm-accordion-inner crm-search_filters-accordion collapsed">
486 <div class="crm-accordion-header">
487 {ts}Search Filters{/ts}</a>
488 </div><!-- /.crm-accordion-header -->
489 <div class="crm-accordion-body">
490 <table class="no-border form-layout-compressed" id="searchOptions">
491 <tr>
492 <td class="crm-case-caseview-form-block-repoter_id"colspan="2"><label for="reporter_id">{ts}Reporter/Role{/ts}</label><br />
493 {$form.reporter_id.html|crmAddClass:twenty}
494 </td>
495 <td class="crm-case-caseview-form-block-status_id"><label for="status_id">{$form.status_id.label}</label><br />
496 {$form.status_id.html}
497 </td>
498 <td style="vertical-align: bottom;">
499 <span class="crm-button"><input class="form-submit default" name="_qf_Basic_refresh" value="Search" type="button" onclick="buildCaseActivities( true )"; /></span>
500 </td>
501 </tr>
502 <tr>
503 <td class="crm-case-caseview-form-block-activity_date_low">
504 {$form.activity_date_low.label}<br />
505 {include file="CRM/common/jcalendar.tpl" elementName=activity_date_low}
506 </td>
507 <td class="crm-case-caseview-form-block-activity_date_high">
508 {$form.activity_date_high.label}<br />
509 {include file="CRM/common/jcalendar.tpl" elementName=activity_date_high}
510 </td>
511 <td class="crm-case-caseview-form-block-activity_type_filter_id">
512 {$form.activity_type_filter_id.label}<br />
513 {$form.activity_type_filter_id.html}
514 </td>
515 </tr>
516 {if $form.activity_deleted}
517 <tr class="crm-case-caseview-form-block-activity_deleted">
518 <td>
519 {$form.activity_deleted.html}{$form.activity_deleted.label}
520 </td>
521 </tr>
522 {/if}
523 </table>
524 </div><!-- /.crm-accordion-body -->
525 </div><!-- /.crm-accordion-wrapper -->
526
527 <table id="activities-selector" class="nestedActivitySelector">
528 <thead><tr>
529 <th class='crm-case-activities-date'>{ts}Date{/ts}</th>
530 <th class='crm-case-activities-subject'>{ts}Subject{/ts}</th>
531 <th class='crm-case-activities-type'>{ts}Type{/ts}</th>
532 <th class='crm-case-activities-with'>{ts}With{/ts}</th>
533 <th class='crm-case-activities-assignee'>{ts}Reporter / Assignee{/ts}</th>
534 <th class='crm-case-activities-status'>{ts}Status{/ts}</th>
535 <th class='crm-case-activities-status' id="nosort">&nbsp;</th>
536 <th class='hiddenElement'>&nbsp;</th>
537 </tr></thead>
538 </table>
539
540 </div><!-- /.crm-accordion-body -->
541 </div><!-- /.crm-accordion-wrapper -->
542
543 {literal}
544 <script type="text/javascript">
545 var oTable;
546
547 cj(function( ) {
548 buildCaseActivities(false);
549 });
550
551 function buildCaseActivities(filterSearch) {
552 if (filterSearch) {
553 oTable.fnDestroy();
554 }
555 var count = 0;
556 var columns = '';
557 var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/activity' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
558 sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
559 sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
560
561 cj('#activities-selector th').each(function( ) {
562 if (cj(this).attr('id') != 'nosort') {
563 columns += '{"sClass": "' + cj(this).attr('class') +'"},';
564 }
565 else {
566 columns += '{ "bSortable": false },';
567 }
568 count++;
569 });
570
571 columns = columns.substring(0, columns.length - 1 );
572 eval('columns =[' + columns + ']');
573
574 oTable = cj('#activities-selector').dataTable({
575 "bFilter" : false,
576 "bAutoWidth" : false,
577 "aaSorting" : [],
578 "aoColumns" : columns,
579 "bProcessing": true,
580 "bJQueryUI": true,
581 "asStripClasses" : [ "odd-row", "even-row" ],
582 "sPaginationType": "full_numbers",
583 "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
584 "bServerSide": true,
585 "sAjaxSource": sourceUrl,
586 "iDisplayLength": 10,
587 "fnDrawCallback": function() { setSelectorClass(); },
588 "fnServerData": function ( sSource, aoData, fnCallback ) {
589
590 if ( filterSearch ) {
591 var activity_deleted = 0;
592 if ( cj("#activity_deleted:checked").val() == 1 ) {
593 activity_deleted = 1;
594 }
595 aoData.push(
596 {name:'status_id', value: cj("select#status_id").val()},
597 {name:'activity_type_id', value: cj("select#activity_type_filter_id").val()},
598 {name:'activity_date_low', value: cj("#activity_date_low").val()},
599 {name:'activity_date_high', value: cj("#activity_date_high").val() },
600 {name:'activity_deleted', value: activity_deleted }
601 );
602 }
603 cj.ajax( {
604 "dataType": 'json',
605 "type": "POST",
606 "url": sSource,
607 "data": aoData,
608 "success": fnCallback
609 } );
610 }
611 });
612 }
613
614 function setSelectorClass( ) {
615 cj("#activities-selector td:last-child").each( function( ) {
616 cj(this).parent().addClass(cj(this).text() );
617 });
618 }
619
620 </script>
621 {/literal}
622
623 <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
624
625 {include file="CRM/Case/Form/ActivityChangeStatusJs.tpl"}
626 {/if} {* view related cases if end *}
627 </div>
628