• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/sender/gridpanel.php
  • Класс: Bitrix\Crm\Integration\Sender\GridPanel
  • Вызов: GridPanel::getActionAddToSegment
static function getActionAddToSegment(array $applyButton, $gridManagerID)
{
	self::includeJsLibs();

	$segments = array_map(
		function ($segment)
		{
			return ['NAME' => $segment['NAME'], 'VALUE' => $segment['ID']];
		},
		Sender\Entity\Segment::getList([
			'select' => ['ID', 'NAME'],
			'filter' => ['=HIDDEN' => 'N'],
			'order' => ['ID' => 'DESC']
		])->fetchAll()
	);
	$segments = array_merge(
		[[
			'NAME' => Loc::getMessage('CRM_INTEGRATION_SENDER_GRID_PANEL_ADD_NEW_SEGMENT'),
			'VALUE' => '',
		]],
		$segments
	);

	$id = 'sender_segment_add';
	return [
		'NAME' => Loc::getMessage('CRM_INTEGRATION_SENDER_GRID_PANEL_ACTION_SEGMENT_ADD'),
		'VALUE' => $id,
		'ONCHANGE' => [
			[
				'ACTION' => Grid\Panel\Actions::CREATE,
				'DATA' => [
					[
						'TYPE' => Grid\Panel\Types::DROPDOWN,
						'ID' => 'sender_segment_list',
						'NAME' => 'SENDER_SEGMENT_ID',
						'ITEMS' => $segments
					],
					[
						'TYPE' => Grid\Panel\Types::HIDDEN,
						'ID' => 'sender_path_to_segment_edit',
						'NAME' => 'SENDER_PATH_TO_SEGMENT_EDIT',
						'VALUE' => self::getPathToEditSegment(),
					],
					$applyButton
				]
			],
			[
				'ACTION' => Grid\Panel\Actions::CALLBACK,
				'DATA' => [['JS' => "BX.CrmUIGridExtension.processActionChange('{$gridManagerID}', '{$id}')"]]
			]
		]
	];
}