Commit | Line | Data |
---|---|---|
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 | */ |
17 | class 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 | } |