Skip to content

Commit

Permalink
Merge pull request #13203 from seamuslee001/activity_search_core_561
Browse files Browse the repository at this point in the history
dev/core#561 Convert Activity Custom Search from jcalendar to datepic…
  • Loading branch information
eileenmcnaughton authored Dec 2, 2018
2 parents b9666a9 + 4fa2f64 commit 2227358
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 107 deletions.
22 changes: 6 additions & 16 deletions CRM/Contact/Form/Search/Custom/ActivitySearch.php
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,8 @@ public function buildForm(&$form) {
);

// Activity Date range
$form->addDate('start_date', ts('Activity Date From'), FALSE, array('formatType' => 'custom'));
$form->addDate('end_date', ts('...through'), FALSE, array('formatType' => 'custom'));
$form->add('datepicker', 'start_date', ts('Activity Date From'), [], FALSE, array('time' => FALSE));
$form->add('datepicker', 'end_date', ts('...through'), [], FALSE, array('time' => FALSE));

// Contact Name field
$form->add('text', 'sort_name', ts('Contact Name'));
Expand Down Expand Up @@ -328,22 +328,12 @@ public function where($includeContactIDs = FALSE) {
$clauses[] = "activity.activity_type_id = {$this->_formValues['activity_type_id']}";
}

$startDate = $this->_formValues['start_date'];
if (!empty($startDate)) {
$startDate .= '00:00:00';
$startDateFormatted = CRM_Utils_Date::processDate($startDate);
if ($startDateFormatted) {
$clauses[] = "activity.activity_date_time >= $startDateFormatted";
}
if (!empty($this->_formValues['start_date'])) {
$clauses[] = "activity.activity_date_time >= '{$this->_formValues['start_date']} 00:00:00'";
}

$endDate = $this->_formValues['end_date'];
if (!empty($endDate)) {
$endDate .= '23:59:59';
$endDateFormatted = CRM_Utils_Date::processDate($endDate);
if ($endDateFormatted) {
$clauses[] = "activity.activity_date_time <= $endDateFormatted";
}
if (!empty($this->_formValues['end_date'])) {
$clauses[] = "activity.activity_date_time <= '{$this->_formValues['end_date']} 23:59:59'";
}

if ($includeContactIDs) {
Expand Down
175 changes: 84 additions & 91 deletions templates/CRM/Contact/Form/Search/Custom/ActivitySearch.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -25,116 +25,109 @@
*}
{* Template for "Sample" custom search component. *}
<div class="crm-form-block crm-search-form-block">
<div class="crm-accordion-wrapper crm-activity_search-accordion {if $rows}collapsed{/if}">
<div class="crm-accordion-header crm-master-accordion-header">
{ts}Edit Search Criteria{/ts}
</div><!-- /.crm-accordion-header -->
<div class="crm-accordion-body">
<div id="searchForm" class="crm-block crm-form-block crm-contact-custom-search-activity-search-form-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<div class="crm-accordion-wrapper crm-activity_search-accordion {if $rows}collapsed{/if}">
<div class="crm-accordion-header crm-master-accordion-header">
{ts}Edit Search Criteria{/ts}
</div><!-- /.crm-accordion-header -->
<div class="crm-accordion-body">
<div id="searchForm" class="crm-block crm-form-block crm-contact-custom-search-activity-search-form-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<table class="form-layout-compressed">
{* Loop through all defined search criteria fields (defined in the buildForm() function). *}
{foreach from=$elements item=element}
<tr class="crm-contact-custom-search-activity-search-form-block-{$element}">
<td class="label">{$form.$element.label}</td>
<td>
{if $element eq 'start_date' OR $element eq 'end_date'}
{include file="CRM/common/jcalendar.tpl" elementName=$element}
{else}
{$form.$element.html}
{/if}
</td>
</tr>
{/foreach}
{* Loop through all defined search criteria fields (defined in the buildForm() function). *}
{foreach from=$elements item=element}
<tr class="crm-contact-custom-search-activity-search-form-block-{$element}">
<td class="label">{$form.$element.label}</td>
<td>{$form.$element.html}</td>
</tr>
{/foreach}
</table>
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
</div>
</div><!-- /.crm-accordion-body -->
</div><!-- /.crm-accordion-wrapper -->
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
</div>
</div><!-- /.crm-accordion-body -->
</div><!-- /.crm-accordion-wrapper -->
</div><!-- /.crm-form-block -->

{if $rowsEmpty || $rows}

<div class="crm-content-block">
<div class="crm-content-block">
{if $rowsEmpty}
<div class="crm-results-block crm-results-block-empty">
{include file="CRM/Contact/Form/Search/Custom/EmptyResults.tpl"}
</div>
{/if}
<div class="crm-results-block crm-results-block-empty">
{include file="CRM/Contact/Form/Search/Custom/EmptyResults.tpl"}
</div>
{/if}

{if $rows}
<div class="crm-results-block">
{* Search request has returned 1 or more matching rows. Display results and collapse the search criteria fieldset. *}
{if $rows}
<div class="crm-results-block">
{* Search request has returned 1 or more matching rows. Display results and collapse the search criteria fieldset. *}

{* This section handles form elements for action task select and submit *}
<div class="crm-search-tasks">
{include file="CRM/Contact/Form/Search/ResultTasks.tpl"}
</div>
{* This section displays the rows along and includes the paging controls *}
<div class="crm-search-results">
{* This section handles form elements for action task select and submit *}
<div class="crm-search-tasks">
{include file="CRM/Contact/Form/Search/ResultTasks.tpl"}
</div>
{* This section displays the rows along and includes the paging controls *}
<div class="crm-search-results">

{include file="CRM/common/pager.tpl" location="top"}
{include file="CRM/common/pager.tpl" location="top"}

{include file="CRM/common/pagerAToZ.tpl"}
{include file="CRM/common/pagerAToZ.tpl"}

{strip}
<table summary="{ts}Search results listings.{/ts}">
<thead class="sticky">
<th scope="col" title="Select All Rows">{$form.toggleSelect.html}</th>
{foreach from=$columnHeaders item=header}
{if ($header.sort eq 'activity_id') or ($header.sort eq 'activity_type_id') or ($header.sort eq 'case_id') }
{elseif ($header.sort eq 'sort_name') or ($header.sort eq 'activity_status') or ($header.sort eq 'activity_type') or ($header.sort eq 'activity_subject') or ($header.sort eq 'source_contact') or ($header.SORT eq 'activity_date') or ($header.name eq null) }
{strip}
<table summary="{ts}Search results listings.{/ts}">
<thead class="sticky">
<th scope="col" title="Select All Rows">{$form.toggleSelect.html}</th>
{foreach from=$columnHeaders item=header}
{if ($header.sort eq 'activity_id') or ($header.sort eq 'activity_type_id') or ($header.sort eq 'case_id') }
{elseif ($header.sort eq 'sort_name') or ($header.sort eq 'activity_status') or ($header.sort eq 'activity_type') or ($header.sort eq 'activity_subject') or ($header.sort eq 'source_contact') or ($header.SORT eq 'activity_date') or ($header.name eq null) }
<th scope="col">
{if $header.sort}
{assign var='key' value=$header.sort}
{$sort->_response.$key.link}
{else}
{$header.name}
{/if}
{if $header.sort}
{assign var='key' value=$header.sort}
{$sort->_response.$key.link}
{else}
{$header.name}
{/if}
</th>
{/if}
</th>
{/foreach}
<th>&nbsp;</th>
</thead>
{/if}
{/foreach}
<th>&nbsp;</th>
</thead>

{counter start=0 skip=1 print=false}
{foreach from=$rows item=row}
<tr id='rowid{counter}' class="{cycle values="odd-row,even-row"}">
{assign var=cbName value=$row.checkbox}
<td>{$form.$cbName.html}</td>
{foreach from=$columnHeaders item=header}
{counter start=0 skip=1 print=false}
{foreach from=$rows item=row}
<tr id='rowid{counter}' class="{cycle values="odd-row,even-row"}">
{assign var=cbName value=$row.checkbox}
<td>{$form.$cbName.html}</td>
{foreach from=$columnHeaders item=header}
{if ($header.sort eq 'sort_name') or ($header.sort eq 'activity_status') or ($header.sort eq 'activity_type') or ($header.sort eq 'activity_subject') or ($header.sort eq 'source_contact') or ($header.SORT eq 'activity_date') or ($header.name eq null) }
{assign var=fName value=$header.sort}
{if $fName eq 'sort_name'}
<td><a href="{crmURL p='civicrm/contact/view' q="reset=1&cid=`$row.contact_id`&key=`$qfKey`"}">{$row.sort_name}</a></td>
{elseif $fName eq 'activity_subject'}
<td>
{if $row.case_id }
<a href="{crmURL p='civicrm/case/activity/view' q="reset=1&aid=`$row.activity_id`&cid=`$row.contact_id`&caseID=`$row.case_id`"}" title="{ts}View activity details{/ts}">
{else}
<a href="{crmURL p='civicrm/contact/view/activity' q="atype=`$row.activity_type_id`&action=view&reset=1&id=`$row.activity_id`&cid=`$row.contact_id`"}" title="{ts}View activity details{/ts}">
{/if}
{if isset($row.activity_subject) AND $row.activity_subject NEQ 'NULL'}{$row.activity_subject}{else}{ts}(no subject){/ts}{/if}</a>
</td>
{elseif ($fName eq 'activity_id') or ($fName eq 'activity_type_id') or ($fName eq 'case_id')}
{else}
<td>{$row.$fName}</td>
{/if}
{assign var=fName value=$header.sort}
{if $fName eq 'sort_name'}
<td><a href="{crmURL p='civicrm/contact/view' q="reset=1&cid=`$row.contact_id`&key=`$qfKey`"}">{$row.sort_name}</a></td>
{elseif $fName eq 'activity_subject'}
<td>
{if $row.case_id }
<a href="{crmURL p='civicrm/case/activity/view' q="reset=1&aid=`$row.activity_id`&cid=`$row.contact_id`&caseID=`$row.case_id`"}" title="{ts}View activity details{/ts}">
{else}
<a href="{crmURL p='civicrm/contact/view/activity' q="atype=`$row.activity_type_id`&action=view&reset=1&id=`$row.activity_id`&cid=`$row.contact_id`"}" title="{ts}View activity details{/ts}">
{/if}
{if isset($row.activity_subject) AND $row.activity_subject NEQ 'NULL'}{$row.activity_subject}{else}{ts}(no subject){/ts}{/if}</a>
</td>
{elseif ($fName eq 'activity_id') or ($fName eq 'activity_type_id') or ($fName eq 'case_id')}
{else}
<td>{$row.$fName}</td>
{/if}
{/if}
{/foreach}
<td>{$row.action}</td>
</tr>
{/foreach}
</table>
{/strip}
{/foreach}
<td>{$row.action}</td>
</tr>
{/foreach}
</table>
{/strip}

{include file="CRM/common/pager.tpl" location="bottom"}
{include file="CRM/common/pager.tpl" location="bottom"}


</div>
{* END Actions/Results section *}
</div>
{* END Actions/Results section *}
</div>
{/if}
</div>
{/if}
</div>
{/if}

0 comments on commit 2227358

Please sign in to comment.