62 if ($fieldID ===
'ROLE')
77 elseif ($fieldID ===
'INITIATED_BY_TYPE')
89 elseif ($fieldID ===
'OWNER')
94 'context' =>
'SONET_GROUP_LIST_FILTER_OWNER',
98 'enableSonetgroups' =>
'N',
99 'allowEmailInvitation' =>
'N',
100 'allowSearchEmailUsers' =>
'N',
101 'departmentSelectDisable' =>
'Y',
105 elseif ($fieldID ===
'MEMBER')
110 'context' =>
'SONET_GROUP_LIST_FILTER_MEMBER',
112 'contextCode' =>
'U',
114 'enableSonetgroups' =>
'N',
115 'allowEmailInvitation' =>
'N',
116 'allowSearchEmailUsers' =>
'N',
117 'departmentSelectDisable' =>
'Y',
121 elseif (in_array($fieldID, [
'FAVORITES',
'EXTRANET' ],
true))
125 '' => Loc::getMessage(
'SOCIALNETWORK_WORKGROUP_FILTER_LIST_VALUE_NOT_SPECIFIED'),
126 'Y' => Loc::getMessage(
'SOCIALNETWORK_WORKGROUP_FILTER_LIST_VALUE_Y'),
130 elseif ($fieldID ===
'COUNTERS')
135 is_array($this->additionalParams)
136 && isset($this->additionalParams[
'MODE'])
137 && in_array($this->additionalParams[
'MODE'], WorkgroupList::getTasksModeList(),
true)
140 if ($this->additionalParams[
'MODE'] === WorkgroupList::MODE_TASKS_SCRUM)
143 'NEW_COMMENTS' => Loc::getMessage(
'SOCIALNETWORK_WORKGROUP_FILTER_COUNTERS_LIST_VALUE_NEW_COMMENTS'),
146 elseif ($this->additionalParams[
'MODE'] === WorkgroupList::MODE_TASKS_PROJECT)
149 'EXPIRED' => Loc::getMessage(
'SOCIALNETWORK_WORKGROUP_FILTER_COUNTERS_LIST_VALUE_EXPIRED'),
150 'NEW_COMMENTS' => Loc::getMessage(
'SOCIALNETWORK_WORKGROUP_FILTER_COUNTERS_LIST_VALUE_NEW_COMMENTS'),
159 elseif ($fieldID ===
'COMMON_COUNTERS')
164 is_array($this->additionalParams)
165 && isset($this->additionalParams[
'MODE'])
166 && $this->additionalParams[
'MODE'] === WorkgroupList::MODE_COMMON
170 CounterFilter::VALUE_LIVEFEED => Loc::getMessage(
'SOCIALNETWORK_WORKGROUP_FILTER_COUNTERS_LIST_VALUE_LIVEFEED'),
171 CounterFilter::VALUE_TASKS => Loc::getMessage(
'SOCIALNETWORK_WORKGROUP_FILTER_COUNTERS_LIST_VALUE_TASKS'),
193 'options' => [
'type' =>
'number' ],
196 'options' => [
'default' => true ],
199 'options' => [
'type' =>
'dest_selector',
'partial' => true ],
202 'options' => [
'type' =>
'dest_selector',
'partial' => true ],
208 'options' => [
'type' =>
'checkbox' ],
211 'options' => [
'type' =>
'checkbox' ],
214 'conditionMethod' =>
'\Bitrix\Socialnetwork\Filter\WorkgroupDataProvider::getClosedAvailability',
215 'options' => [
'type' =>
'checkbox' ],
218 'conditionMethod' =>
'\Bitrix\Main\Filter\UserDataProvider::getProjectAvailability',
219 'options' => [
'type' =>
'checkbox' ],
222 'conditionMethod' =>
'\Bitrix\Main\Filter\UserDataProvider::getScrumAvailability',
223 'options' => [
'type' =>
'checkbox' ],
226 'conditionMethod' =>
'\Bitrix\Main\Filter\UserDataProvider::getProjectAvailability',
227 'options' => [
'type' =>
'date' ]
230 'conditionMethod' =>
'\Bitrix\Main\Filter\UserDataProvider::getExtranetAvailability',
231 'options' => [
'type' =>
'list',
'partial' => true ],
234 'conditionMethod' =>
'\Bitrix\Main\Filter\UserDataProvider::getLandingAvailability',
235 'options' => [
'type' =>
'checkbox' ],
238 'options' => [
'type' =>
'list',
'partial' => true ],
241 'options' => [
'type' =>
'list',
'partial' => true ],
247 is_array($this->additionalParams)
248 && isset($this->additionalParams[
'MODE'])
249 && in_array($this->additionalParams[
'MODE'], WorkgroupList::getTasksModeList(),
true)
252 $fieldsList[
'COMMON_COUNTERS'] = [
253 'options' => [
'type' =>
'list',
'partial' => true ],
257 foreach ($fieldsList as $column => $field)
259 $whiteListPassed =
true;
262 !empty($field[
'conditionMethod'])
263 && is_callable($field[
'conditionMethod'])
266 $whiteListPassed = call_user_func_array($field[
'conditionMethod'], []);
269 if ($whiteListPassed)
272 is_array($this->additionalParams)
273 && isset($this->additionalParams[
'MODE'])
274 && in_array($column, [
'SCRUM',
'PROJECT'],
true)
275 && in_array($this->additionalParams[
'MODE'], WorkgroupList::getTasksModeList(),
true)
282 $column ===
'COUNTERS'
284 !is_array($this->additionalParams)
285 || !isset($this->additionalParams[
'MODE'])
286 || !in_array($this->additionalParams[
'MODE'], WorkgroupList::getTasksModeList(),
true)
294 $column ===
'COMMON_COUNTERS'
296 !isset($this->additionalParams[
'MODE'], $this->additionalParams[
'CONTEXT_USER_ID'])
297 || !is_array($this->additionalParams)
298 || $this->additionalParams[
'MODE'] !== WorkgroupList::MODE_COMMON
299 || $this->additionalParams[
'CONTEXT_USER_ID'] !==
Helper\User::getCurrentUserId()
308 (!empty($field[
'options']) ? $field[
'options'] : [])