Skip to content

Commit

Permalink
Merge pull request #15694 from eileenmcnaughton/custom
Browse files Browse the repository at this point in the history
Get rid of jcalendar range in custom data
  • Loading branch information
seamuslee001 authored Nov 4, 2019
2 parents 73e5778 + afbe25c commit 65094e4
Show file tree
Hide file tree
Showing 8 changed files with 108 additions and 50 deletions.
1 change: 1 addition & 0 deletions CRM/Contact/BAO/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -6369,6 +6369,7 @@ public static function processSpecialFormValue(&$formValues, $specialFields, $ch
*
* @return string
* list(string $orderByClause, string $additionalFromClause).
*
* @throws \CRM_Core_Exception
*/
protected function prepareOrderBy($sort, $sortOrder) {
Expand Down
37 changes: 8 additions & 29 deletions CRM/Contact/BAO/SavedSearch.php
Original file line number Diff line number Diff line change
Expand Up @@ -417,47 +417,26 @@ public static function saveSkippedElement(&$queryParams, $formValues) {
* @param string $fieldName
* @param string $op
* @param array|string|int $value
*
* @throws \CiviCRM_API3_Exception
*/
public static function decodeRelativeFields(&$formValues, $fieldName, $op, $value) {
// check if its a custom date field, if yes then 'searchDate' format the value
$isCustomDateField = CRM_Contact_BAO_Query::isCustomDateField($fieldName);

// select date range as default
if ($isCustomDateField) {
if (array_key_exists('relative_dates', $formValues) && array_key_exists($fieldName, $formValues['relative_dates'])) {
$formValues[$fieldName . '_relative'] = $formValues['relative_dates'][$fieldName];
}
else {
$formValues[$fieldName . '_relative'] = 0;
}
if (CRM_Contact_BAO_Query::isCustomDateField($fieldName)) {
return;
}

switch ($op) {
case 'BETWEEN':
if ($isCustomDateField) {
list($formValues[$fieldName . '_from'], $formValues[$fieldName . '_from_time']) = CRM_Utils_Date::setDateDefaults($value[0], 'searchDate');
list($formValues[$fieldName . '_to'], $formValues[$fieldName . '_to_time']) = CRM_Utils_Date::setDateDefaults($value[1], 'searchDate');
}
else {
list($formValues[$fieldName . '_from'], $formValues[$fieldName . '_to']) = $value;
}
list($formValues[$fieldName . '_from'], $formValues[$fieldName . '_to']) = $value;
break;

case '>=':
if ($isCustomDateField) {
list($formValues[$fieldName . '_from'], $formValues[$fieldName . '_from_time']) = CRM_Utils_Date::setDateDefaults($value, 'searchDate');
}
else {
$formValues[$fieldName . '_from'] = $value;
}
$formValues[$fieldName . '_from'] = $value;
break;

case '<=':
if ($isCustomDateField) {
list($formValues[$fieldName . '_to'], $formValues[$fieldName . '_to_time']) = CRM_Utils_Date::setDateDefaults($value, 'searchDate');
}
else {
$formValues[$fieldName . '_to'] = $value;
}
$formValues[$fieldName . '_to'] = $value;
break;
}
}
Expand Down
6 changes: 4 additions & 2 deletions CRM/Contact/Form/Search/Criteria.php
Original file line number Diff line number Diff line change
Expand Up @@ -605,6 +605,8 @@ public static function notes(&$form) {
* Generate the custom Data Fields based for those with is_searchable = 1.
*
* @param CRM_Contact_Form_Search $form
*
* @throws \CiviCRM_API3_Exception
*/
public static function custom(&$form) {
$form->add('hidden', 'hidden_custom', 1);
Expand All @@ -624,8 +626,8 @@ public static function custom(&$form) {
foreach ($group['fields'] as $field) {
$fieldId = $field['id'];
$elementName = 'custom_' . $fieldId;
if ($field['data_type'] == 'Date' && $field['is_search_range']) {
CRM_Core_Form_Date::buildDateRange($form, $elementName, 1, '_from', '_to', ts('From:'), FALSE);
if ($field['data_type'] === 'Date' && $field['is_search_range']) {
$form->addDatePickerRange($elementName, $field['label']);
}
else {
CRM_Core_BAO_CustomField::addQuickFormElement($form, $elementName, $fieldId, FALSE, TRUE);
Expand Down
4 changes: 2 additions & 2 deletions CRM/Core/BAO/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ public static function addCustomFormFields(&$form, $extends) {
foreach ($group['fields'] as $field) {
$fieldId = $field['id'];
$elementName = 'custom_' . $fieldId;
if ($field['data_type'] == 'Date' && $field['is_search_range']) {
CRM_Core_Form_Date::buildDateRange($form, $elementName, 1, '_from', '_to', ts('From:'), FALSE);
if ($field['data_type'] === 'Date' && $field['is_search_range']) {
$form->addDatePickerRange($elementName, $field['label']);
}
else {
CRM_Core_BAO_CustomField::addQuickFormElement($form, $elementName, $fieldId, FALSE, TRUE);
Expand Down
16 changes: 1 addition & 15 deletions templates/CRM/Core/DatePickerRange.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,5 @@
{$form.$toName.html}
</span>
</span>
{literal}
<script type="text/javascript">
CRM.$(function($) {
$("#{/literal}{$relativeName}{literal}").change(function() {
var n = cj(this).parent().parent();
if ($(this).val() == "0") {
$(".crm-absolute-date-range", n).show();
} else {
$(".crm-absolute-date-range", n).hide();
$(':text', n).val('');
}
}).change();
});
</script>
{/literal}
{include file="CRM/Core/DatePickerRangejs.tpl" relativeName=$relativeName}

51 changes: 51 additions & 0 deletions templates/CRM/Core/DatePickerRangeCustomField.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{*
+--------------------------------------------------------------------+
| CiviCRM version 5 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2018 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
| CiviCRM is free software; you can copy, modify, and distribute it |
| under the terms of the GNU Affero General Public License |
| Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
| |
| CiviCRM is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| See the GNU Affero General Public License for more details. |
| |
| You should have received a copy of the GNU Affero General Public |
| License and the CiviCRM Licensing Exception along |
| with this program; if not, contact CiviCRM LLC |
| at info[AT]civicrm[DOT]org. If you have questions about the |
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*}
{*this is included inside a table row*}
{assign var=relativeName value=$fieldName|cat:"_relative"}
{assign var='from' value=$from|default:'_low'}
{assign var='to' value=$to|default:'_high'}

{if !$hideRelativeLabel}
<td class="label">
{$form.$relativeName.label}
</td>
{/if}
<td>
{$form.$relativeName.html}<br />
<span class="crm-absolute-date-range">
<span class="crm-absolute-date-from">
{assign var=fromName value=$fieldName|cat:$from}
{$form.$fromName.label}
{$form.$fromName.html}
</span>
<span class="crm-absolute-date-to">
{assign var=toName value=$fieldName|cat:$to}
{$form.$toName.label}
{$form.$toName.html}
</span>
</span>
</td>
{include file="CRM/Core/DatePickerRangejs.tpl" relativeName=$relativeName}
40 changes: 40 additions & 0 deletions templates/CRM/Core/DatePickerRangejs.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{*
+--------------------------------------------------------------------+
| CiviCRM version 5 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2018 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
| CiviCRM is free software; you can copy, modify, and distribute it |
| under the terms of the GNU Affero General Public License |
| Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
| |
| CiviCRM is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| See the GNU Affero General Public License for more details. |
| |
| You should have received a copy of the GNU Affero General Public |
| License and the CiviCRM Licensing Exception along |
| with this program; if not, contact CiviCRM LLC |
| at info[AT]civicrm[DOT]org. If you have questions about the |
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*}
{literal}
<script type="text/javascript">
CRM.$(function($) {
$("#{/literal}{$relativeName}{literal}").change(function() {
var n = cj(this).parent().parent();
if ($(this).val() == "0") {
$(".crm-absolute-date-range", n).show();
} else {
$(".crm-absolute-date-range", n).hide();
$(':text', n).val('');
}
}).change();
});
</script>
{/literal}
3 changes: 1 addition & 2 deletions templates/CRM/Custom/Form/Search.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@
{$form.$element_name_from.html|crmAddClass:six}
&nbsp;&nbsp;{$form.$element_name_to.label}&nbsp;&nbsp;{$form.$element_name_to.html|crmAddClass:six}
{elseif $element.skip_calendar NEQ true }
<td class="label"><label for='{$element_name}'>{$element.label}</label>
{include file="CRM/Core/DateRange.tpl" fieldName=$element_name from='_from' to='_to'}</td><td>
{include file="CRM/Core/DatePickerRangeCustomField.tpl" fieldName=$element_name hideRelativeLabel=0}<td>
{/if}
{else}
<td class="label">{$form.$element_name.label}</td><td>
Expand Down

0 comments on commit 65094e4

Please sign in to comment.