Merge pull request #17927 from monishdeb/core-785
[civicrm-core.git] / CRM / Activity / Form / ActivityFilter.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
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 +--------------------------------------------------------------------+
10 */
11
12 /**
13 *
14 * @package CRM
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
16 */
17
18 /**
19 * This class generates form components for Activity Filter.
20 */
21 class CRM_Activity_Form_ActivityFilter extends CRM_Core_Form {
22
23 public function buildQuickForm() {
24 // add activity search filter
25 $activityOptions = CRM_Core_PseudoConstant::activityType(TRUE, TRUE, FALSE, 'label', TRUE);
26 asort($activityOptions);
27
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 -')]
33 );
34
35 $this->assign('suppressForm', TRUE);
36 }
37
38 /**
39 * This virtual function is used to set the default values of
40 * various form elements
41 *
42 * access public
43 *
44 * @return array
45 * reference to the array of default values
46 */
47 public function setDefaultValues() {
48 // CRM-11761 retrieve user's activity filter preferences
49 $defaults = [];
50 if (Civi::settings()->get('preserve_activity_tab_filter') && (CRM_Core_Session::getLoggedInContactID())) {
51 $defaults = Civi::contactSettings()->get('activity_tab_filter');
52 }
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');
56 }
57 return $defaults;
58 }
59
60 }