$mask = CRM_Core_Action::mask($permissions);
foreach ($activities as $activityId => $values) {
- $contactActivities[$activityId]['activity_type'] = $values['activity_type'];
- $contactActivities[$activityId]['subject'] = $values['subject'];
+ $activity = array();
+ // add class to this row if overdue
+ $activity['DT_RowClass'] = 'crm-entity';
+ if (CRM_Utils_Date::overdue(CRM_Utils_Array::value('activity_date_time', $values))
+ && CRM_Utils_Array::value('status_id', $values) == 1
+ ) {
+ $activity['DT_RowClass'] .= ' status-overdue';
+ }
+ else {
+ $activity['DT_RowClass'] .= ' status-ontime';
+ }
+
+ $activity['DT_RowData'] = array();
+ $activity['DT_RowData']['entity'] = 'activity';
+ $activity['DT_RowData']['id'] = $activityId;
+
+ $activity['activity_type'] = $values['activity_type'];
+ $activity['subject'] = $values['subject'];
if ($params['contact_id'] == $values['source_contact_id']) {
- $contactActivities[$activityId]['source_contact'] = $values['source_contact_name'];
+ $activity['source_contact_name'] = $values['source_contact_name'];
}
elseif ($values['source_contact_id']) {
- $contactActivities[$activityId]['source_contact'] = CRM_Utils_System::href($values['source_contact_name'],
+ $activity['source_contact_name'] = CRM_Utils_System::href($values['source_contact_name'],
'civicrm/contact/view', "reset=1&cid={$values['source_contact_id']}");
}
else {
- $contactActivities[$activityId]['source_contact'] = '<em>n/a</em>';
+ $activity['source_contact_name'] = '<em>n/a</em>';
}
if (isset($values['mailingId']) && !empty($values['mailingId'])) {
- $contactActivities[$activityId]['target_contact'] = CRM_Utils_System::href($values['recipients'],
+ $activity['target_contact'] = CRM_Utils_System::href($values['recipients'],
'civicrm/mailing/report/event',
"mid={$values['source_record_id']}&reset=1&event=queue&cid={$params['contact_id']}&context=activitySelector");
}
elseif (!empty($values['recipients'])) {
- $contactActivities[$activityId]['target_contact'] = $values['recipients'];
+ $activity['target_contact_name'] = $values['recipients'];
}
elseif (isset($values['target_contact_counter']) && $values['target_contact_counter']) {
- $contactActivities[$activityId]['target_contact'] = '';
+ $activity['target_contact_name'] = '';
foreach ($values['target_contact_name'] as $tcID => $tcName) {
- $contactActivities[$activityId]['target_contact'] .= CRM_Utils_System::href($tcName,
+ $activity['target_contact_name'] .= CRM_Utils_System::href($tcName,
'civicrm/contact/view', "reset=1&cid={$tcID}");
}
if ($extraCount = $values['target_contact_counter'] - 1) {
- $contactActivities[$activityId]['target_contact'] .= ";<br />" . "(" . ts('%1 more', array(1 => $extraCount)) . ")";
+ $activity['target_contact_name'] .= ";<br />" . "(" . ts('%1 more', array(1 => $extraCount)) . ")";
}
}
elseif (!$values['target_contact_name']) {
- $contactActivities[$activityId]['target_contact'] = '<em>n/a</em>';
+ $activity['target_contact_name'] = '<em>n/a</em>';
}
if (empty($values['assignee_contact_name'])) {
- $contactActivities[$activityId]['assignee_contact'] = '<em>n/a</em>';
+ $activity['assignee_contact_name'] = '<em>n/a</em>';
}
elseif (!empty($values['assignee_contact_name'])) {
$count = 0;
- $contactActivities[$activityId]['assignee_contact'] = '';
+ $activity['assignee_contact_name'] = '';
foreach ($values['assignee_contact_name'] as $acID => $acName) {
if ($acID && $count < 5) {
- $contactActivities[$activityId]['assignee_contact'] .= CRM_Utils_System::href($acName, 'civicrm/contact/view', "reset=1&cid={$acID}");
+ $activity['assignee_contact_name'] .= CRM_Utils_System::href($acName, 'civicrm/contact/view', "reset=1&cid={$acID}");
$count++;
if ($count) {
- $contactActivities[$activityId]['assignee_contact'] .= "; ";
+ $activity['assignee_contact_name'] .= "; ";
}
if ($count == 4) {
- $contactActivities[$activityId]['assignee_contact'] .= "(" . ts('more') . ")";
+ $activity['assignee_contact_name'] .= "(" . ts('more') . ")";
break;
}
}
}
}
- $contactActivities[$activityId]['activity_date'] = CRM_Utils_Date::customFormat($values['activity_date_time']);
- $contactActivities[$activityId]['status'] = $activityStatus[$values['status_id']];
-
- // add class to this row if overdue
- $contactActivities[$activityId]['class'] = '';
- if (CRM_Utils_Date::overdue(CRM_Utils_Array::value('activity_date_time', $values))
- && CRM_Utils_Array::value('status_id', $values) == 1
- ) {
- $contactActivities[$activityId]['class'] = 'status-overdue';
- }
- else {
- $contactActivities[$activityId]['class'] = 'status-ontime';
- }
+ $activity['activity_date_time'] = CRM_Utils_Date::customFormat($values['activity_date_time']);
+ $activity['status_id'] = $activityStatus[$values['status_id']];
// build links
- $contactActivities[$activityId]['links'] = '';
+ $activity['links'] = '';
$accessMailingReport = FALSE;
if (!empty($values['mailingId'])) {
$accessMailingReport = TRUE;
$actionMask = array_sum(array_keys($actionLinks)) & $mask;
- $contactActivities[$activityId]['links'] = CRM_Core_Action::formLink($actionLinks,
+ $activity['links'] = CRM_Core_Action::formLink($actionLinks,
$actionMask,
array(
'id' => $values['activity_id'],
if ($values['is_recurring_activity']) {
$contactActivities[$activityId]['is_recurring_activity'] = CRM_Core_BAO_RecurringEntity::getPositionAndCount($values['activity_id'], 'civicrm_activity');
}
+
+ array_push($contactActivities, $activity);
}
}
- return $contactActivities;
+ $activitiesDT = array();
+ $activitiesDT['data'] = $contactActivities;
+ $activitiesDT['recordsTotal'] = $params['total'];
+ $activitiesDT['recordsFiltered'] = $params['total'];
+
+ return $activitiesDT;
}
/**
}
public static function getContactActivity() {
- $contactID = CRM_Utils_Type::escape($_POST['contact_id'], 'Integer');
+ $contactID = CRM_Utils_Type::escape($_GET['cid'], 'Integer');
$context = CRM_Utils_Type::escape(CRM_Utils_Array::value('context', $_GET), 'String');
- $sortMapper = array(
- 0 => 'activity_type',
- 1 => 'subject',
- 2 => 'source_contact_name',
- 3 => '',
- 4 => '',
- 5 => 'activity_date_time',
- 6 => 'status_id',
- );
+ $sortMapper = array();
+ foreach ($_GET['columns'] as $key => $value) {
+ $sortMapper[$key] = $value['data'];
+ };
- $sEcho = CRM_Utils_Type::escape($_REQUEST['sEcho'], 'Integer');
- $offset = isset($_REQUEST['iDisplayStart']) ? CRM_Utils_Type::escape($_REQUEST['iDisplayStart'], 'Integer') : 0;
- $rowCount = isset($_REQUEST['iDisplayLength']) ? CRM_Utils_Type::escape($_REQUEST['iDisplayLength'], 'Integer') : 25;
- $sort = isset($_REQUEST['iSortCol_0']) ? CRM_Utils_Array::value(CRM_Utils_Type::escape($_REQUEST['iSortCol_0'], 'Integer'), $sortMapper) : NULL;
- $sortOrder = isset($_REQUEST['sSortDir_0']) ? CRM_Utils_Type::escape($_REQUEST['sSortDir_0'], 'String') : 'asc';
+ $offset = isset($_GET['start']) ? CRM_Utils_Type::escape($_GET['start'], 'Integer') : 0;
+ $rowCount = isset($_GET['length']) ? CRM_Utils_Type::escape($_GET['length'], 'Integer') : 25;
+ $sort = isset($_GET['order'][0]['column']) ? CRM_Utils_Array::value(CRM_Utils_Type::escape($_GET['order'][0]['column'], 'Integer'), $sortMapper) : NULL;
+ $sortOrder = isset($_GET['order'][0]['dir']) ? CRM_Utils_Type::escape($_GET['order'][0]['dir'], 'String') : 'asc';
- $params = $_POST;
+ $params = $_GET;
if ($sort && $sortOrder) {
$params['sortBy'] = $sort . ' ' . $sortOrder;
}
);
}
- $iFilteredTotal = $iTotal = $params['total'];
- $selectorElements = array(
- 'activity_type',
- 'subject',
- 'source_contact',
- 'target_contact',
- 'assignee_contact',
- 'activity_date',
- 'status',
- 'links',
- 'class',
- );
-
- header('Content-Type: application/json');
- echo CRM_Utils_JSON::encodeDataTableSelector($activities, $sEcho, $iTotal, $iFilteredTotal, $selectorElements);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($activities);
}
}
$relationshipStatus, 0, 1, 0, NULL, NULL, $permissionedContacts);
}
else {
- // FIX ME: we cannot directly determine total permissioned relationship, hence re-fire query
+ // FIXME: we cannot directly determine total permissioned relationship, hence re-fire query
$permissionedRelationships = CRM_Contact_BAO_Relationship::getRelationship($params['contact_id'],
$relationshipStatus,
0, 0, 0,
// format params
foreach ($relationships as $relationshipId => $values) {
+ $relationship = array();
+
+ $relationship['DT_RowClass'] = 'crm-entity';
+ if ($values['is_active'] == 0) {
+ $relationship['DT_RowClass'] .= ' disabled';
+ }
+
+ $relationship['DT_RowData'] = array();
+ $relationship['DT_RowData']['entity'] = 'relationship';
+ $relationship['DT_RowData']['id'] = $values['id'];
+
//Add image icon for related contacts: CRM-14919
$icon = CRM_Contact_BAO_Contact_Utils::getImage($values['contact_type'],
FALSE,
$values['cid']
);
- $contactRelationships[$relationshipId]['name'] = $icon . ' ' . CRM_Utils_System::href(
+ $relationship['sort_name'] = $icon . ' ' . CRM_Utils_System::href(
$values['name'],
'civicrm/contact/view',
"reset=1&cid={$values['cid']}");
- $contactRelationships[$relationshipId]['relation'] = CRM_Utils_System::href(
+ $relationship['relation'] = CRM_Utils_System::href(
$values['relation'],
'civicrm/contact/view/rel',
"action=view&reset=1&cid={$values['cid']}&id={$values['id']}&rtype={$values['rtype']}");
if (($params['contact_id'] == $values['contact_id_a'] AND $values['is_permission_a_b'] == 1) OR
($params['contact_id'] == $values['contact_id_b'] AND $values['is_permission_b_a'] == 1)
) {
- $contactRelationships[$relationshipId]['name'] .= '<span id="permission-a-b" class="crm-marker permission-relationship"> *</span>';
+ $relationship['sort_name'] .= '<span id="permission-a-b" class="crm-marker permission-relationship"> *</span>';
}
if (($values['cid'] == $values['contact_id_a'] AND $values['is_permission_a_b'] == 1) OR
($values['cid'] == $values['contact_id_b'] AND $values['is_permission_b_a'] == 1)
) {
- $contactRelationships[$relationshipId]['relation'] .= '<span id="permission-b-a" class="crm-marker permission-relationship"> *</span>';
+ $relationship['relation'] .= '<span id="permission-b-a" class="crm-marker permission-relationship"> *</span>';
}
}
if (!empty($values['description'])) {
- $contactRelationships[$relationshipId]['relation'] .= "<p class='description'>{$values['description']}</p>";
+ $relationship['relation'] .= "<p class='description'>{$values['description']}</p>";
}
- $contactRelationships[$relationshipId]['start_date'] = CRM_Utils_Date::customFormat($values['start_date']);
- $contactRelationships[$relationshipId]['end_date'] = CRM_Utils_Date::customFormat($values['end_date']);
- $contactRelationships[$relationshipId]['city'] = $values['city'];
- $contactRelationships[$relationshipId]['state'] = $values['state'];
- $contactRelationships[$relationshipId]['email'] = $values['email'];
- $contactRelationships[$relationshipId]['phone'] = $values['phone'];
- $contactRelationships[$relationshipId]['links'] = $values['action'];
- $contactRelationships[$relationshipId]['id'] = $values['id'];
- $contactRelationships[$relationshipId]['is_active'] = $values['is_active'];
+ $relationship['start_date'] = CRM_Utils_Date::customFormat($values['start_date']);
+ $relationship['end_date'] = CRM_Utils_Date::customFormat($values['end_date']);
+ $relationship['city'] = $values['city'];
+ $relationship['state'] = $values['state'];
+ $relationship['email'] = $values['email'];
+ $relationship['phone'] = $values['phone'];
+ $relationship['links'] = $values['action'];
+
+ array_push($contactRelationships, $relationship);
}
}
- return $contactRelationships;
+
+ $relationshipsDT = array();
+ $relationshipsDT['data'] = $contactRelationships;
+ $relationshipsDT['recordsTotal'] = $params['total'];
+ $relationshipsDT['recordsFiltered'] = $params['total'];
+
+ return $relationshipsDT;
}
}
public static function getContactRelationships() {
$contactID = CRM_Utils_Type::escape($_GET['cid'], 'Integer');
$context = CRM_Utils_Type::escape($_GET['context'], 'String');
- $relationship_type_id = CRM_Utils_Type::escape(CRM_Utils_Array::value('relationship_type_id', $_GET), 'Integer',
- FALSE);
+ $relationship_type_id = CRM_Utils_Type::escape(CRM_Utils_Array::value('relationship_type_id', $_GET), 'Integer', FALSE);
if (!CRM_Contact_BAO_Contact_Permission::allow($contactID)) {
return CRM_Utils_System::permissionDenied();
}
- $sortMapper = array(
- 0 => 'relation',
- 1 => 'sort_name',
- 2 => 'start_date',
- 3 => 'end_date',
- 4 => 'city',
- 5 => 'state',
- 6 => 'email',
- 7 => 'phone',
- 8 => 'links',
- 9 => '',
- 10 => '',
- );
+ $sortMapper = array();
+ foreach ($_GET['columns'] as $key => $value) {
+ $sortMapper[$key] = $value['data'];
+ };
- $sEcho = CRM_Utils_Type::escape($_REQUEST['sEcho'], 'Integer');
- $offset = isset($_REQUEST['iDisplayStart']) ? CRM_Utils_Type::escape($_REQUEST['iDisplayStart'], 'Integer') : 0;
- $rowCount = isset($_REQUEST['iDisplayLength']) ? CRM_Utils_Type::escape($_REQUEST['iDisplayLength'], 'Integer') : 25;
- $sort = isset($_REQUEST['iSortCol_0']) ? CRM_Utils_Array::value(CRM_Utils_Type::escape($_REQUEST['iSortCol_0'], 'Integer'), $sortMapper) : NULL;
- $sortOrder = isset($_REQUEST['sSortDir_0']) ? CRM_Utils_Type::escape($_REQUEST['sSortDir_0'], 'String') : 'asc';
+ $offset = isset($_GET['start']) ? CRM_Utils_Type::escape($_GET['start'], 'Integer') : 0;
+ $rowCount = isset($_GET['length']) ? CRM_Utils_Type::escape($_GET['length'], 'Integer') : 25;
+ $sort = isset($_GET['order'][0]['column']) ? CRM_Utils_Array::value(CRM_Utils_Type::escape($_GET['order'][0]['column'], 'Integer'), $sortMapper) : NULL;
+ $sortOrder = isset($_GET['order'][0]['dir']) ? CRM_Utils_Type::escape($_GET['order'][0]['dir'], 'String') : 'asc';
- $params = $_POST;
+ $params = $_GET;
if ($sort && $sortOrder) {
$params['sortBy'] = $sort . ' ' . $sortOrder;
}
// get the contact relationships
$relationships = CRM_Contact_BAO_Relationship::getContactRelationshipSelector($params);
- $iFilteredTotal = $iTotal = $params['total'];
- $selectorElements = array(
- 'relation',
- 'name',
- 'start_date',
- 'end_date',
- 'city',
- 'state',
- 'email',
- 'phone',
- 'links',
- 'id',
- 'is_active',
- );
-
- header('Content-Type: application/json');
- echo CRM_Utils_JSON::encodeDataTableSelector($relationships, $sEcho, $iTotal, $iFilteredTotal, $selectorElements);
- CRM_Utils_System::civiExit();
+ CRM_Utils_JSON::output($relationships);
}
}
});
};
+ $.fn.crmAjaxTable = function() {
+ return $(this).each(function() {
+ //Declare the defaults for DataTables
+ var defaults = {
+ "processing": true,
+ "serverSide": true,
+ "dom": '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
+ "pageLength": 25,
+ "drawCallback": function(settings) {
+ //Add data attributes to cells
+ $('thead th', settings.nTable).each( function( index ) {
+ $.each(this.attributes, function() {
+ if(this.name.match("^cell-")) {
+ $('tbody td:eq(' + index + ')').attr( this.name.substring(5), this.value );
+ }
+ });
+ });
+ //Reload table after draw
+ $(settings.nTable).trigger('crmLoad');
+ }
+ };
+ //Include any table specific data
+ var settings = $.extend(true, defaults, $(this).data('table'));
+ //Make the DataTables call
+ $(this).DataTable(settings);
+ });
+ };
+
CRM.utils.formatSelect2Result = function (row) {
var markup = '<div class="crm-select2-row">';
if (row.image !== undefined) {
}
})
.find('input.select-row:checked').parents('tr').addClass('crm-row-selected');
+ $('table.crm-sortable', e.target).DataTable();
+ $('table.crm-ajax-table', e.target).crmAjaxTable();
if ($("input:radio[name=radio_ts]").size() == 1) {
$("input:radio[name=radio_ts]").prop("checked", true);
}
{ts}Filter by Activity Type{/ts}</a>
</div><!-- /.crm-accordion-header -->
<div class="crm-accordion-body">
- <div class="no-border form-layout-compressed" id="searchOptions">
+ <div class="no-border form-layout-compressed activity-search-options">
<div class="crm-contact-form-block-activity_type_filter_id crm-inline-edit-field">
{$form.activity_type_filter_id.label} {$form.activity_type_filter_id.html|crmAddClass:big}
</div>
</div>
</div><!-- /.crm-accordion-body -->
</div><!-- /.crm-accordion-wrapper -->
- <table class="contact-activity-selector-{$context}">
+ <table class="contact-activity-selector-{$context} crm-ajax-table" data-order='[[5,"desc"]]'>
<thead>
<tr>
- <th class='crm-contact-activity-activity_type'>{ts}Type{/ts}</th>
- <th class='crm-contact-activity_subject'>{ts}Subject{/ts}</th>
- <th class='crm-contact-activity-source_contact'>{ts}Added By{/ts}</th>
- <th class='crm-contact-activity-target_contact nosort'>{ts}With{/ts}</th>
- <th class='crm-contact-activity-assignee_contact nosort'>{ts}Assigned{/ts}</th>
- <th class='crm-contact-activity-activity_date'>{ts}Date{/ts}</th>
- <th class='crm-contact-activity-activity_status'>{ts}Status{/ts}</th>
- <th class='crm-contact-activity-links nosort'> </th>
- <th class='hiddenElement'> </th>
+ <th data-data="activity_type" class="crm-contact-activity-activity_type">{ts}Type{/ts}</th>
+ <th data-data="subject" cell-class="crmf-subject crm-editable" cell-data-type="text" class="crm-contact-activity_subject">{ts}Subject{/ts}</th>
+ <th data-data="source_contact_name" class="crm-contact-activity-source_contact">{ts}Added By{/ts}</th>
+ <th data-data="target_contact_name" data-orderable="false" class="crm-contact-activity-target_contact">{ts}With{/ts}</th>
+ <th data-data="assignee_contact_name" data-orderable="false" class="crm-contact-activity-assignee_contact">{ts}Assigned{/ts}</th>
+ <th data-data="activity_date_time" class="crm-contact-activity-activity_date">{ts}Date{/ts}</th>
+ <th data-data="status_id" cell-class="crmf-status_id crm-editable" cell-data-type="select" cell-data-refresh="true" class="crm-contact-activity-activity_status">{ts}Status{/ts}</th>
+ <th data-data="links" data-orderable="false" class="crm-contact-activity-links"> </th>
</tr>
</thead>
</table>
-</div>
-{include file="CRM/Case/Form/ActivityToCase.tpl" contactID=$contactId}
-{literal}
-<script type="text/javascript">
-var {/literal}{$context}{literal}oTable;
-CRM.$(function($) {
- var context = {/literal}"{$context}"{literal};
- var filterSearchOnLoad = false;
- if (context == 'activity') {
- filterSearchOnLoad = true;
- }
- buildContactActivities{/literal}{$context}{literal}( filterSearchOnLoad );
-
- $('.crm-activity-selector-'+ context +' #activity_type_filter_id').change( function( ) {
- buildContactActivities{/literal}{$context}{literal}( true );
- });
-
- $('.crm-activity-selector-'+ context +' #activity_type_exclude_filter_id').change( function( ) {
- buildContactActivities{/literal}{$context}{literal}( true );
- });
-
- function buildContactActivities{/literal}{$context}{literal}( filterSearch ) {
- if ( filterSearch && {/literal}{$context}{literal}oTable ) {
- {/literal}{$context}{literal}oTable.fnDestroy();
- }
-
- var context = {/literal}"{$context}"{literal};
- var columns = '';
- var sourceUrl = {/literal}'{crmURL p="civicrm/ajax/contactactivity" h=0 q="snippet=4&context=$context&cid=$contactId"}'{literal};
- var ZeroRecordText = {/literal}'{ts escape="js"}No matches found{/ts}'{literal};
- if ( $('.crm-activity-selector-'+ context +' select#activity_type_filter_id').val( ) ) {
- ZeroRecordText += {/literal}'{ts escape="js"} for Activity Type = "{/ts}'{literal} + $('.crm-activity-selector-'+ context +' select#activity_type_filter_id :selected').text( ) + '"';
- }
- else {
- ZeroRecordText += '.';
- }
-
- {/literal}{$context}{literal}oTable = $('.contact-activity-selector-' + context ).dataTable({
- "bFilter" : false,
- "bAutoWidth" : false,
- "aaSorting" : [],
- "aoColumns" : [
- {sClass:'crm-contact-activity-activity_type'},
- {sClass:'crm-contact-activity_subject'},
- {sClass:'crm-contact-activity-source_contact'},
- {sClass:'crm-contact-activity-target_contact', bSortable:false},
- {sClass:'crm-contact-activity-assignee_contact', bSortable:false},
- {sClass:'crm-contact-activity-activity_date'},
- {sClass:'crm-contact-activity-activity_status'},
- {sClass:'crm-contact-activity-links', bSortable:false},
- {sClass:'hiddenElement', bSortable:false}
- ],
- "bProcessing": true,
- "sPaginationType": "full_numbers",
- "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
- "bServerSide": true,
- "bJQueryUI": true,
- "sAjaxSource": sourceUrl,
- "iDisplayLength": 25,
- "oLanguage": {
- "sZeroRecords": ZeroRecordText,
- "sProcessing": {/literal}"{ts escape='js'}Processing...{/ts}"{literal},
- "sLengthMenu": {/literal}"{ts escape='js'}Show _MENU_ entries{/ts}"{literal},
- "sInfo": {/literal}"{ts escape='js'}Showing _START_ to _END_ of _TOTAL_ entries{/ts}"{literal},
- "sInfoEmpty": {/literal}"{ts escape='js'}Showing 0 to 0 of 0 entries{/ts}"{literal},
- "sInfoFiltered": {/literal}"{ts escape='js'}(filtered from _MAX_ total entries){/ts}"{literal},
- "sSearch": {/literal}"{ts escape='js'}Search:{/ts}"{literal},
- "oPaginate": {
- "sFirst": {/literal}"{ts escape='js'}First{/ts}"{literal},
- "sPrevious": {/literal}"{ts escape='js'}Previous{/ts}"{literal},
- "sNext": {/literal}"{ts escape='js'}Next{/ts}"{literal},
- "sLast": {/literal}"{ts escape='js'}Last{/ts}"{literal}
- }
- },
- "fnDrawCallback": function() { setSelectorClass{/literal}{$context}{literal}( context ); },
- "fnServerData": function ( sSource, aoData, fnCallback ) {
- aoData.push( {name:'contact_id', value: {/literal}{$contactId}{literal}},
- {name:'admin', value: {/literal}'{$admin}'{literal}}
- );
-
- if ( filterSearch ) {
- aoData.push(
- {name:'activity_type_id', value: $('.crm-activity-selector-'+ context +' select#activity_type_filter_id').val()},
- {name:'activity_type_exclude_id', value: $('.crm-activity-selector-'+ context +' select#activity_type_exclude_filter_id').val()}
- );
- }
- $.ajax( {
- "dataType": 'json',
- "type": "POST",
- "url": sSource,
- "data": aoData,
- "success": fnCallback,
- // CRM-10244
- "dataFilter": function(data, type) { return data.replace(/[\n\v\t]/g, " "); }
+ {literal}
+ <script type="text/javascript">
+ (function($) {
+ CRM.$('table.contact-activity-selector-activity').data({
+ "ajax": {
+ "url": {/literal}'{crmURL p="civicrm/ajax/contactactivity" h=0 q="snippet=4&context=$context&cid=$contactId"}'{literal},
+ "data": function (d) {
+ d.activity_type_id = $('.crm-activity-selector-activity select#activity_type_filter_id').val(),
+ d.activity_type_exclude_id = $('.crm-activity-selector-activity select#activity_type_exclude_filter_id').val()
+ }
+ }
});
- }
- });
- }
-
- function setSelectorClass{/literal}{$context}{literal}( context ) {
- $('.contact-activity-selector-' + context + ' td:last-child').each( function( ) {
- $(this).parent().addClass($(this).text() );
- });
- }
-});
-</script>
-{/literal}
+ $(function($) {
+ $('.activity-search-options :input').change(function(){
+ CRM.$('.contact-activity-selector-activity').DataTable().draw();
+ });
+ });
+ })(CRM.$);
+ </script>
+ {/literal}
+</div>
+{include file="CRM/Case/Form/ActivityToCase.tpl" contactID=$contactId}
{* relationship selector *}
<div class="crm-contact-relationship-{$context}">
- <table class="crm-contact-relationship-selector-{$context}">
+ <table class="crm-contact-relationship-selector-{$context} crm-ajax-table" data-page-length='10'>
<thead>
<tr>
- <th class='crm-contact-relationship-type'>{ts}Relationship{/ts}</th>
- <th class='crm-contact-relationship-contact_name'> </th>
- <th class='crm-contact-relationship-start_date'>{ts}Start{/ts}</th>
- <th class='crm-contact-relationship-end_date'>{ts}End{/ts}</th>
- <th class='crm-contact-relationship-city'>{ts}City{/ts}</th>
- <th class='crm-contact-relationship-state'>{ts}State/Prov{/ts}</th>
- <th class='crm-contact-relationship-email'>{ts}Email{/ts}</th>
- <th class='crm-contact-relationship-phone'>{ts}Phone{/ts}</th>
- <th class='crm-contact-relationship-links nosort'></th>
+ <th data-data="relation" class='crm-contact-relationship-type'>{ts}Relationship{/ts}</th>
+ <th data-data="sort_name" class='crm-contact-relationship-contact_name'> </th>
+ <th data-data="start_date" class='crm-contact-relationship-start_date'>{ts}Start{/ts}</th>
+ <th data-data="end_date" class='crm-contact-relationship-end_date'>{ts}End{/ts}</th>
+ <th data-data="city" class='crm-contact-relationship-city'>{ts}City{/ts}</th>
+ <th data-data="state" class='crm-contact-relationship-state'>{ts}State/Prov{/ts}</th>
+ <th data-data="email" class='crm-contact-relationship-email'>{ts}Email{/ts}</th>
+ <th data-data="phone" class='crm-contact-relationship-phone'>{ts}Phone{/ts}</th>
+ <th data-data="links" data-orderable="false" class='crm-contact-relationship-links'></th>
</tr>
</thead>
</table>
-</div>
-
-{literal}
-<script type="text/javascript">
- var {/literal}{$context}{literal}oTable;
-
- CRM.$(function($) {
- buildContactRelationships{/literal}{$context}{literal}();
- function buildContactRelationships{/literal}{$context}{literal}() {
- var context = {/literal}"{$context}"{literal};
- var sourceUrl = {/literal}'{crmURL p="civicrm/ajax/contactrelationships" h=0 q="context=$context&cid=$contactId"}'{literal};
- if (context == 'user') {
- var ZeroRecordText = {/literal}'{ts escape="js"}There are no related contacts / organizations on record for you.{/ts}'{literal};
- }
- else if (context == 'past') {
- var ZeroRecordText = {/literal}'{ts escape="js"}There are no past / disabled relationships for this contact.{/ts}'{literal};
- }
- else {
- var ZeroRecordText = {/literal}'{ts escape="js"}There are no relationships entered for this contact.{/ts}'{literal};
- }
-
- {/literal}{$context}{literal}oTable = $('table.crm-contact-relationship-selector-' + context).dataTable({
- "bFilter": false,
- "bAutoWidth": false,
- "aaSorting": [],
- "aoColumns": [
- {sClass: 'crm-contact-relationship-type'},
- {sClass: 'crm-contact-relationship-contact_name'},
- {sClass: 'crm-contact-relationship-start_date'},
- {sClass: 'crm-contact-relationship-end_date'},
- {sClass: 'crm-contact-relationship-city'},
- {sClass: 'crm-contact-relationship-state'},
- {sClass: 'crm-contact-relationship-email'},
- {sClass: 'crm-contact-relationship-phone'},
- {sClass: 'crm-contact-relationship-links', bSortable: false},
- {sClass: 'hiddenElement', bSortable: false},
- {sClass: 'hiddenElement', bSortable: false}
- ],
- "bProcessing": true,
- "sPaginationType": "full_numbers",
- "sDom": '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
- "bServerSide": true,
- "bJQueryUI": true,
- "sAjaxSource": sourceUrl,
- "iDisplayLength": 10,
- "oLanguage": {
- "sZeroRecords": ZeroRecordText,
- "sProcessing": {/literal}"{ts escape='js'}Processing...{/ts}"{literal},
- "sLengthMenu": {/literal}"{ts escape='js'}Show _MENU_ entries{/ts}"{literal},
- "sInfo": {/literal}"{ts escape='js'}Showing _START_ to _END_ of _TOTAL_ entries{/ts}"{literal},
- "sInfoEmpty": {/literal}"{ts escape='js'}Showing 0 to 0 of 0 entries{/ts}"{literal},
- "sInfoFiltered": {/literal}"{ts escape='js'}(filtered from _MAX_ total entries){/ts}"{literal},
- "sSearch": {/literal}"{ts escape='js'}Search:{/ts}"{literal},
- "oPaginate": {
- "sFirst": {/literal}"{ts escape='js'}First{/ts}"{literal},
- "sPrevious": {/literal}"{ts escape='js'}Previous{/ts}"{literal},
- "sNext": {/literal}"{ts escape='js'}Next{/ts}"{literal},
- "sLast": {/literal}"{ts escape='js'}Last{/ts}"{literal}
- }
- },
- "fnDrawCallback": function () {
- {/literal}{if $context eq 'current'}{literal}
- if ($('#tab_rel').length) {
- CRM.tabHeader.updateCount($('#tab_rel'), currentoTable.fnSettings().fnRecordsTotal());
- }
- {/literal}{/if}{literal}
- },
- "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull) {
- $(nRow).attr('id', 'relationship-'+ aData[9]);
- if (aData[10] == 0) {
- $(nRow).addClass('crm-entity disabled');
- }
- else {
- $(nRow).addClass('crm-entity');
- }
- }
- });
- }
- });
-</script>
-{/literal}
+ {literal}
+ <script type="text/javascript">
+ (function($) {
+ var context = {/literal}"{$context}"{literal};
+ CRM.$('table.crm-contact-relationship-selector-' + context).data({
+ "ajax": {/literal}'{crmURL p="civicrm/ajax/contactrelationships" h=0 q="context=$context&cid=$contactId"}'{literal},
+ });
+ })(CRM.$);
+ </script>
+ {/literal}
+</div>
// Localize jQuery UI
$.ui.dialog.prototype.options.closeText = "{ts escape='js'}Close{/ts}";
+ // Localize jQuery DataTables
+ // Note the first two defaults set here aren't localization related,
+ // but need to be set globally for all DataTables.
+ $.extend( $.fn.dataTable.defaults, {ldelim}
+ "searching": false,
+ "jQueryUI": true,
+ "language": {ldelim}
+ "emptyTable": "{ts escape='js'}None found.{/ts}",
+ "info": "{ts escape='js' '1=_START_ 2=_END_ 3=_TOTAL_}Showing %1 to %2 of %3 entries{/ts}",
+ "infoEmpty": "{ts escape='js'}Showing 0 to 0 of 0 entries{/ts}",
+ "infoFiltered": "{ts escape='js' 1=_MAX_}(filtered from %1 total entries){/ts}",
+ "infoPostFix": "",
+ "thousands": {$config->monetaryThousandSeparator|json_encode},
+ "lengthMenu": "{ts escape='js' 1=_MENU_}Show %1 entries{/ts}",
+ "loadingRecords": " ",
+ "processing": " ",
+ "zeroRecords": "{ts escape='js'}None found.{/ts}",
+ "paginate": {ldelim}
+ "first": "{ts escape='js'}First{/ts}",
+ "last": "{ts escape='js'}Last{/ts}",
+ "next": "{ts escape='js'}Next{/ts}",
+ "previous": "{ts escape='js'}Previous{/ts}"
+ {rdelim}
+ {rdelim}
+ {rdelim});
+
// Localize strings for jQuery.validate
var messages = {ldelim}
required: "{ts escape='js'}This field is required.{/ts}",