return;
}
list($name, $op, $value, $grouping, $wildcard) = $values;
+ $fields = CRM_Case_BAO_Case::fields();
+ $fieldSpec = $fields[$values[0]] ?? [];
$val = $names = [];
switch ($name) {
return;
case 'case_subject':
- $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_case.subject", $op, $value, 'String');
- $query->_qill[$grouping][] = CRM_Contact_BAO_Query::getQillValue('CRM_Case_DAO_Case', $name, $value, $op, 'Case Subject');
- $query->_tables['civicrm_case'] = $query->_whereTables['civicrm_case'] = 1;
- $query->_tables['civicrm_case_contact'] = $query->_whereTables['civicrm_case_contact'] = 1;
+ $query->handleWhereFromMetadata($fieldSpec, $name, $value, $op);
return;
case 'case_source_contact_id':
public static function getSearchFieldMetadata() {
$fields = ['case_type_id', 'case_status_id', 'case_start_date', 'case_end_date', 'case_subject', 'case_id', 'case_deleted'];
$metadata = civicrm_api3('Case', 'getfields', [])['values'];
+ $metadata['case_id'] = $metadata['id'];
$metadata = array_intersect_key($metadata, array_flip($fields));
$metadata['case_tags'] = [
'title' => ts('Case Tag(s)'),
'type' => CRM_Utils_Type::T_INT,
'is_pseudofield' => TRUE,
+ 'html' => ['type' => 'Select2'],
];
if (CRM_Core_Permission::check('access all cases and activities')) {
$metadata['case_owner'] = [
'title' => ts('Cases'),
'type' => CRM_Utils_Type::T_INT,
'is_pseudofield' => TRUE,
+ 'html' => ['type' => 'Radio'],
];
}
if (!CRM_Core_Permission::check('administer CiviCase')) {