3namespace Bitrix\Socialnetwork\Component;
5use Bitrix\Main\ErrorCollection;
7use Bitrix\Main\ModuleManager;
9use Bitrix\Main\Localization\Loc;
10use Bitrix\Socialnetwork\Internals\Counter\CounterDictionary;
11use Bitrix\Socialnetwork\Item\Workgroup\AccessManager;
12use Bitrix\Socialnetwork\UserToGroupTable;
45 protected static $gridId =
'SOCIALNETWORK_WORKGROUP_USER_LIST';
46 protected static $filterId =
'SOCIALNETWORK_WORKGROUP_USER_LIST';
59 parent::__construct($component);
72 $this->errorCollection[] =
$error;
79 return $this->errorCollection->getErrorByCode(
$code);
88 return $this->errorCollection->toArray();
93 foreach ($this->errorCollection as
$error)
102 self::AVAILABLE_ACTION_VIEW_PROFILE,
105 $groupId = (int)
$params[
'GROUP_ID'];
107 $currentUserRelation =
$params[
'CURRENT_RELATION'];
108 $relation =
$params[
'RELATION'];
113 $currentUserRelation,
116 if ($accessManager->canSetOwner())
118 $result[] = self::AVAILABLE_ACTION_SET_OWNER;
121 if ($accessManager->canSetScrumMaster())
123 $result[] = self::AVAILABLE_ACTION_SET_SCRUM_MASTER;
126 if ($accessManager->canSetModerator())
128 $result[] = self::AVAILABLE_ACTION_SET_MODERATOR;
130 elseif ($accessManager->canRemoveModerator())
132 $result[] = self::AVAILABLE_ACTION_REMOVE_MODERATOR;
135 $canDeleteOutgoingRequest = $accessManager->canDeleteOutgoingRequest();
136 if ($accessManager->canDeleteOutgoingRequest())
138 $result[] = self::AVAILABLE_ACTION_DELETE_OUTGOING_REQUEST;
140 elseif ($accessManager->canExclude())
142 $result[] = self::AVAILABLE_ACTION_EXCLUDE;
145 if ($accessManager->canProcessIncomingRequest())
147 $result[] = self::AVAILABLE_ACTION_PROCESS_INCOMING_REQUEST;
151 $canDeleteOutgoingRequest
152 && ModuleManager::isModuleInstalled(
'intranet')
153 && !empty($relation->getUser()->getConfirmCode())
156 $result[] = self::AVAILABLE_ACTION_REINVITE;
159 if ($accessManager->canDeleteIncomingRequest())
161 $result[] = self::AVAILABLE_ACTION_DELETE_INCOMING_REQUEST;
173 $entityFilter = Filter\Factory::createEntityFilter(
176 'ID' => self::$filterId,
179 $result[
'FILTER'] = $entityFilter->getFieldArrays();
181 $result[
'GRID_ID'] = self::$gridId;
182 $result[
'FILTER_ID'] = self::$filterId;
184 $result[
'CURRENT_PRESET_ID'] = self::getCurrentPresetId($mode);
185 $result[
'CURRENT_COUNTER'] = self::getCounter($mode);
186 $result[
'CUSTOM_FILTER'] = self::getCurrentCustomFilter($mode);
187 $result[
'FILTER_PRESETS'] = self::getFilterPresets(
$result[
'CURRENT_PRESET_ID'], $groupPerms);
192 private static function getCurrentPresetId(
string $mode): string
197 $result = self::PRESET_COMPANY;
200 $result = self::PRESET_REQUESTS_IN;
203 $result = self::PRESET_REQUESTS_OUT;
212 private static function getCounter(
string $mode): string
229 private static function getCurrentCustomFilter(
string $mode):
array
245 private static function getFilterPresets(
string $currentPresetId,
array $groupPerms):
array
249 $extranetAvailable = \Bitrix\Main\Filter\UserDataProvider::getExtranetAvailability();
252 'name' => Loc::getMessage(
'SOCIALNETWORK_GROUP_USER_LIST_FILTER_PRESET_ALL'),
254 'default' => ($currentPresetId === self::PRESET_ALL),
261 if ($extranetAvailable)
263 $companyFilter[
'EXTRANET'] =
'N';
266 $result[self::PRESET_COMPANY] = [
269 ? Loc::getMessage(
'SOCIALNETWORK_GROUP_USER_LIST_FILTER_PRESET_COMPANY')
270 : Loc::getMessage(
'SOCIALNETWORK_GROUP_USER_LIST_FILTER_PRESET_MEMBERS')
272 'fields' => $companyFilter,
276 if ($extranetAvailable)
278 $result[self::PRESET_EXTERNAL] = [
279 'name' => Loc::getMessage(
'SOCIALNETWORK_GROUP_USER_LIST_FILTER_PRESET_EXTERNAL'),
289 if ($groupPerms[
'UserCanProcessRequestsIn'] ??
null)
291 $result[self::PRESET_REQUESTS_IN] = [
292 'name' => Loc::getMessage(
'SOCIALNETWORK_GROUP_USER_LIST_FILTER_PRESET_REQUESTS_IN'),
298 'default' => ($currentPresetId === self::PRESET_REQUESTS_IN),
302 if ($groupPerms[
'UserCanInitiate'])
304 $result[self::PRESET_REQUESTS_OUT] = [
305 'name' => Loc::getMessage(
'SOCIALNETWORK_GROUP_USER_LIST_FILTER_PRESET_REQUESTS_OUT'),
311 'default' => ($currentPresetId === self::PRESET_REQUESTS_OUT),
const AJAX_ACTION_ACCEPT_INCOMING_REQUEST
const AVAILABLE_ACTION_SET_MODERATOR
const AVAILABLE_ACTION_DELETE_INCOMING_REQUEST
__construct($component=null)
const AJAX_ACTION_DELETE_OUTGOING_REQUEST
const AJAX_ACTION_SET_SCRUM_MASTER
static getActions(array $params=[])
const AVAILABLE_ACTION_SET_SCRUM_MASTER
const AVAILABLE_ACTION_VIEW_PROFILE
static prepareFilterResult(array $result, array $groupPerms, string $mode='')
const AJAX_ACTION_REMOVE_MODERATOR
const AVAILABLE_ACTION_SET_OWNER
const AJAX_ACTION_SET_OWNER
const AJAX_ACTION_REJECT_INCOMING_REQUEST
const AJAX_ACTION_DELETE_INCOMING_REQUEST
const AJAX_ACTION_EXCLUDE
const AVAILABLE_ACTION_DELETE_OUTGOING_REQUEST
const AVAILABLE_ACTION_EXCLUDE
const PRESET_REQUESTS_OUT
const AJAX_ACTION_REINVITE
const AVAILABLE_ACTION_REINVITE
const AJAX_ACTION_SET_MODERATOR
const AVAILABLE_ACTION_REMOVE_MODERATOR
const AVAILABLE_ACTION_PROCESS_INCOMING_REQUEST
const COUNTER_WORKGROUP_REQUESTS_IN
const COUNTER_WORKGROUP_REQUESTS_OUT
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code
ShowError($strError, $cls="errortext")
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']