3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
19 * This class generates form components for Activity Filter.
21 class CRM_Activity_Form_ActivityFilter
extends CRM_Core_Form
{
23 public function buildQuickForm() {
24 // add activity search filter
25 $activityOptions = CRM_Core_PseudoConstant
::activityType(TRUE, TRUE, FALSE, 'label', TRUE);
26 asort($activityOptions);
28 $this->add('select', 'activity_type_filter_id', ts('Include'), $activityOptions, FALSE, ['class' => 'crm-select2', 'multiple' => TRUE, 'placeholder' => ts('- all activity type(s) -')]);
29 $this->add('select', 'activity_type_exclude_filter_id', ts('Exclude'), $activityOptions, FALSE, ['class' => 'crm-select2', 'multiple' => TRUE, 'placeholder' => ts('- no types excluded -')]);
30 $this->addDatePickerRange('activity_date_time', ts('Date'));
31 $this->addSelect('status_id',
32 ['entity' => 'activity', 'multiple' => 'multiple', 'option_url' => NULL, 'placeholder' => ts('- any -')]
35 $this->assign('suppressForm', TRUE);
39 * This virtual function is used to set the default values of
40 * various form elements
45 * reference to the array of default values
47 public function setDefaultValues() {
48 // CRM-11761 retrieve user's activity filter preferences
50 if (Civi
::settings()->get('preserve_activity_tab_filter') && (CRM_Core_Session
::getLoggedInContactID())) {
51 $defaults = Civi
::contactSettings()->get('activity_tab_filter');
53 // set Activity status 'Scheduled' by default only for dashlet
54 elseif (strstr(CRM_Utils_Array
::value('q', $_GET), 'dashlet')) {
55 $defaults['status_id'] = CRM_Core_PseudoConstant
::getKey('CRM_Activity_BAO_Activity', 'status_id', 'Scheduled');