* @param CRM_Contact_BAO_Query $query
*/
public static function whereClauseSingle(&$values, &$query) {
+ if ($query->buildDateRangeQuery($values)) {
+ // @todo - move this to Contact_Query in or near the call to
+ // $this->buildRelativeDateQuery($values);
+ return;
+ }
list($name, $op, $value, $grouping, $wildcard) = $values;
$val = $names = [];
switch ($name) {
$form->addSearchFieldMetadata(['Case' => self::getSearchFieldMetadata()]);
$form->addFormFieldsFromMetadata();
- CRM_Core_Form_Date::buildDateRange($form, 'case_from', 1, '_start_date_low', '_start_date_high', ts('From'), FALSE);
- CRM_Core_Form_Date::buildDateRange($form, 'case_to', 1, '_end_date_low', '_end_date_high', ts('From'), FALSE);
- $form->addElement('hidden', 'case_from_start_date_range_error');
- $form->addElement('hidden', 'case_to_end_date_range_error');
- $form->addFormRule(['CRM_Case_BAO_Query', 'formRule'], $form);
-
$form->assign('validCiviCase', TRUE);
//give options when all cases are accessible.
$form->setDefaults(['case_owner' => 1]);
}
- /**
- * Custom form rules.
- *
- * @param array $fields
- * @param array $files
- * @param CRM_Core_Form $form
- *
- * @return bool|array
- */
- public static function formRule($fields, $files, $form) {
- $errors = [];
-
- if ((empty($fields['case_from_start_date_low']) || empty($fields['case_from_start_date_high'])) && (empty($fields['case_to_end_date_low']) || empty($fields['case_to_end_date_high']))) {
- return TRUE;
- }
-
- CRM_Utils_Rule::validDateRange($fields, 'case_from_start_date', $errors, ts('Case Start Date'));
- CRM_Utils_Rule::validDateRange($fields, 'case_to_end_date', $errors, ts('Case End Date'));
-
- return empty($errors) ? TRUE : $errors;
- }
-
}
$this->loadFormValues();
if ($this->_force) {
- $this->postProcess();
- $this->set('force', 0);
+ $this->handleForcedSearch();
}
$sortID = NULL;
$this->_done = TRUE;
$this->setFormValues();
$this->fixFormValues();
-
if (isset($this->_ssID) && empty($_POST)) {
// if we are editing / running a saved search and the form has not been posted
$this->_formValues = CRM_Contact_BAO_SavedSearch::getFormValues($this->_ssID);
}
}
- /**
- * @return null
- */
- public function getFormValues() {
- return NULL;
- }
-
/**
* Return a descriptive name for the page, used in wizard header
*
'membership_join_date_relative',
'membership_start_date_relative',
'membership_end_date_relative',
+ 'case_start_date_relative',
+ 'case_end_date_relative',
];
// Handle relative dates first
foreach (array_keys($formValues) as $id) {
'pledge_create_date' => 'pledge_create',
'pledge_end_date' => 'pledge_end',
'pledge_start_date' => 'pledge_start',
+ 'case_start_date' => 'case_from',
+ 'case_end_date' => 'case_to',
];
foreach ($fields as $field) {
}
$this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
$this->addTask('Add "Template" contribution status', 'templateStatus');
+ $this->addTask('Update smart groups to rename filters on case_from and case_to to case_start_date and case_end_date', 'updateSmartGroups', [
+ 'renameField' => [
+ ['old' => 'case_from_relative', 'new' => 'case_start_date_relative'],
+ ['old' => 'case_from_start_date_high', 'new' => 'case_start_date_high'],
+ ['old' => 'case_from_start_date_low', 'new' => 'case_start_date_low'],
+ ['old' => 'case_to_relative', 'new' => 'case_end_date_relative'],
+ ['old' => 'case_to_end_date_high', 'new' => 'case_end_date_high'],
+ ['old' => 'case_to_end_date_low', 'new' => 'case_end_date_low'],
+ ],
+ ]);
+ $this->addTask('Update smart groups where jcalendar fields have been converted to datepicker', 'updateSmartGroups', [
+ 'datepickerConversion' => [
+ 'case_start_date',
+ 'case_end_date',
+ ],
+ ]);
}
public static function templateStatus(CRM_Queue_TaskContext $ctx) {
</tr>
<tr>
- <td>
- <label>{ts}Case Start Date{/ts}</label>
- </td>
- {include file="CRM/Core/DateRange.tpl" fieldName="case_from" from='_start_date_low' to='_start_date_high'}
+ {include file="CRM/Core/DatePickerRangeWrapper.tpl" fieldName="case_start_date"}
</tr>
<tr>
- <td>
- <label>{ts}Case End Date{/ts}</label>
- </td>
- {include file="CRM/Core/DateRange.tpl" fieldName="case_to" from='_end_date_low' to='_end_date_high'}
+ {include file="CRM/Core/DatePickerRangeWrapper.tpl" fieldName="case_end_date"}
</tr>
<tr id='case_search_form'>