Merge pull request #23148 from totten/5.48-cache-ver-suffix
[civicrm-core.git] / CRM / Group / Page / Group.php
CommitLineData
6a488035
TO
1<?php
2/*
3 +--------------------------------------------------------------------+
bc77d7c0 4 | Copyright CiviCRM LLC. All rights reserved. |
6a488035 5 | |
bc77d7c0
TO
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 |
6a488035 9 +--------------------------------------------------------------------+
d25dd0ee 10 */
6a488035
TO
11
12/**
13 *
14 * @package CRM
ca5cec67 15 * @copyright CiviCRM LLC https://civicrm.org/licensing
6a488035
TO
16 */
17class CRM_Group_Page_Group extends CRM_Core_Page_Basic {
d0f28894
KJ
18 protected $_sortByCharacter;
19
e0ef6999 20 /**
8edd3d1a 21 * Get BAO name.
22 *
e0ef6999
EM
23 * @return string
24 */
00be9182 25 public function getBAOName() {
6a488035
TO
26 return 'CRM_Contact_BAO_Group';
27 }
28
29 /**
fe482240 30 * Define action links.
6a488035 31 *
a6c01b45 32 * self::$_links array of action links
6a488035 33 */
5c61c747
TO
34 public function &links() {
35 }
6a488035
TO
36
37 /**
fe482240 38 * Return class name of edit form.
6a488035
TO
39 *
40 * @return string
6a488035 41 */
00be9182 42 public function editForm() {
6a488035
TO
43 return 'CRM_Group_Form_Edit';
44 }
45
46 /**
fe482240 47 * Return name of edit form.
6a488035
TO
48 *
49 * @return string
6a488035 50 */
00be9182 51 public function editName() {
6a488035
TO
52 return ts('Edit Group');
53 }
54
6a488035 55 /**
fe482240 56 * Return name of delete form.
6a488035
TO
57 *
58 * @return string
6a488035 59 */
00be9182 60 public function deleteName() {
6a488035
TO
61 return 'Delete Group';
62 }
63
64 /**
fe482240 65 * Return user context uri to return to.
6a488035 66 *
77b97be7
EM
67 * @param null $mode
68 *
6a488035 69 * @return string
6a488035 70 */
00be9182 71 public function userContext($mode = NULL) {
6a488035
TO
72 return 'civicrm/group';
73 }
74
75 /**
fe482240 76 * Return user context uri params.
6a488035 77 *
77b97be7
EM
78 * @param null $mode
79 *
6a488035 80 * @return string
6a488035 81 */
00be9182 82 public function userContextParams($mode = NULL) {
6a488035
TO
83 return 'reset=1&action=browse';
84 }
85
6a488035 86 /**
8edd3d1a 87 * Re-implement browse.
88 *
6a488035 89 * We need to do slightly different things for groups vs saved search groups, hence we
8edd3d1a 90 * re-implement browse from Page_Basic.
6a488035
TO
91 *
92 * @param int $action
6a488035 93 */
00be9182 94 public function browse($action = NULL) {
6a488035
TO
95 $groupPermission = CRM_Core_Permission::check('edit groups') ? CRM_Core_Permission::EDIT : CRM_Core_Permission::VIEW;
96 $this->assign('groupPermission', $groupPermission);
97
98 $showOrgInfo = FALSE;
99
100 // CRM-9936
101 $reservedPermission = CRM_Core_Permission::check('administer reserved groups') ? CRM_Core_Permission::EDIT : CRM_Core_Permission::VIEW;
102 $this->assign('reservedPermission', $reservedPermission);
103
104 if (CRM_Core_Permission::check('administer Multiple Organizations') &&
105 CRM_Core_Permission::isMultisiteEnabled()
106 ) {
107 $showOrgInfo = TRUE;
108 }
109 $this->assign('showOrgInfo', $showOrgInfo);
110
b65e12f3
CW
111 // Refresh smart group cache
112 if (!empty($_GET['update_smart_groups'])) {
113 CRM_Contact_BAO_GroupContactCache::loadAll();
114 }
21ca2cb6 115 elseif (!CRM_Core_DAO::singleValueQuery("SELECT contact_id FROM civicrm_group_contact_cache LIMIT 1")) {
d666ca08 116 CRM_Core_Session::setStatus(ts('Count data for smart groups is not currently calculated. You may click Update Smart Groups to generate it. Be aware this can cause significant server load'));
520bca8e 117 }
b65e12f3 118
6a488035
TO
119 $this->search();
120 }
121
8edd3d1a 122 /**
123 * Search for groups.
124 */
00be9182 125 public function search() {
5c61c747 126 if ($this->_action & (CRM_Core_Action::ADD |
6a488035
TO
127 CRM_Core_Action::UPDATE |
128 CRM_Core_Action::DELETE
129 )
130 ) {
131 return;
132 }
133
134 $form = new CRM_Core_Controller_Simple('CRM_Group_Form_Search', ts('Search Groups'), CRM_Core_Action::ADD);
135 $form->setEmbedded(TRUE);
136 $form->setParent($this);
137 $form->process();
138 $form->run();
139 }
96025800 140
6a488035 141}