- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/helper/ui/grid/workgroup/role.php
- Класс: BitrixSocialnetworkHelperUIGridWorkgroupRole
- Вызов: Role::getRoleValue
static function getRoleValue(array $params = []): string
{
$result = '';
$relationFields = ($params['RELATION'] ?? []);
if (empty($relationFields))
{
return $result;
}
$groupFields = ($params['GROUP'] ?? []);
if ($groupFields['SCRUM_MASTER_ID'] > 0)
{
$suffix = '_SCRUM';
}
elseif ($groupFields['PROJECT'])
{
$suffix = '_PROJECT';
}
else
{
$suffix = '';
}
$role = $relationFields['ROLE'];
$classList = [ 'ui-label' ];
if (in_array($role, UserToGroupTable::getRolesMember(), true))
{
$classList[] = 'sonet-ui-grid-role';
$isScrumMaster = (int)$relationFields['USER_ID'] === (int)$groupFields['SCRUM_MASTER_ID'];
$parts = [];
if (!(
$isScrumMaster
&& $role === UserToGroupTable::ROLE_MODERATOR
&& $relationFields['AUTO_MEMBER'] === false
))
{
$parts = [
Loc::getMessage(
'SOCIALNETWORK_HELPER_UI_GRID_ROLE_' . $role
. $suffix
. ($relationFields['AUTO_MEMBER'] ? '_AUTO' : '')
),
];
}
if ($isScrumMaster)
{
$parts[] = Loc::getMessage('SOCIALNETWORK_HELPER_UI_GRID_ROLE_SCRUM_MASTER');
}
$result = implode(', ', $parts);
switch ($role)
{
case UserToGroupTable::ROLE_OWNER:
$classList[] = '--role-green';
break;
case UserToGroupTable::ROLE_MODERATOR:
$classList[] = '--role-yellow';
break;
case UserToGroupTable::ROLE_USER:
$classList[] = '--role-blue';
break;
default:
}
}
elseif ($role === UserToGroupTable::ROLE_REQUEST)
{
$groupId = (int) $groupFields['ID'];
$gridId = ($params['GRID_ID'] ?? 'SONET_GROUP_LIST');
$type = $relationFields['INITIATED_TYPE'];
$onclick = 'event.stopPropagation();';
if ($type === UserToGroupTable::INITIATED_BY_GROUP)
{
$acceptOnclick = $onclick . 'BX.Socialnetwork.WorkgroupList.Manager.getById(''
. $gridId . '').getActionManager().act({action: ''
. WorkgroupList::AJAX_ACTION_JOIN
. '',groupId: '' . $groupId . '',});';
$cancelOnclick = $onclick . 'BX.Socialnetwork.WorkgroupList.Manager.getById(''
. $gridId . '').getActionManager().act({action: ''
. WorkgroupList::AJAX_ACTION_REJECT_OUTGOING_REQUEST
. '',groupId: '' . $groupId . '',});';
return '
' . Loc::getMessage('SOCIALNETWORK_HELPER_UI_GRID_ROLE_REQUEST_' . $type) . '
';
}
elseif ($type === UserToGroupTable::INITIATED_BY_USER)
{
$onclick .= 'BX.Socialnetwork.WorkgroupList.Manager.getById(''
. $gridId . '').getActionManager().act({action: ''
. WorkgroupList::AJAX_ACTION_DELETE_INCOMING_REQUEST
. '',groupId: '' . $groupId . '',});';
return '
' . Loc::getMessage('SOCIALNETWORK_HELPER_UI_GRID_ROLE_REQUEST_' . $type) . '
';
}
}
elseif ($role === UserToGroupTable::ROLE_BAN)
{
$result = Loc::getMessage('SOCIALNETWORK_HELPER_UI_GRID_ROLE_BAN');
}
$result = '
' . $result . '
';
return '' . $result . '';
}