• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/grid/panel/groupaction.php
  • Класс: BitrixIblockGridPanelGroupAction
  • Вызов: GroupAction::actionElementWorkflowStatusPanel
protected function actionElementWorkflowStatusPanel(array $params = []): ?array
{
	if (!Loader::includeModule('workflow'))
	{
		return null;
	}

	$name = (isset($params['NAME']) && $params['NAME'] !== ''
		? $params['NAME']
		: Loc::getMessage('IBLOCK_GRID_PANEL_ACTION_ELEMENT_WORKFLOW_STATUS')
	);

	$statusList = [];
	$iterator = CWorkflowStatus::getDropDownList('N', 'desc');
	while ($row = $iterator->Fetch())
	{
		$statusList[] = [
			'NAME' => $row['REFERENCE'],
			'VALUE' => $row['REFERENCE_ID'],
		];
	}
	unset($row, $iterator);
	if (empty($statusList))
	{
		return null;
	}

	$params['APPLY_BUTTON_ID'] = 'send_workflow_status';
	$data = [];
	$data[] = [
		'TYPE' => MainGridPanelTypes::DROPDOWN,
		'ID' => $this->getElementId('workflow_status'),
		'NAME' => 'wf_status_id',
		'ITEMS' => $statusList,
	];
	if ($this->isUiGrid())
	{
		$data[] = $this->getApplyButton($params);
	}

	return [
		'name' => $name,
		'type' => 'multicontrol',
		'action' => [
			[
				'ACTION' => MainGridPanelActions::RESET_CONTROLS,
			],
			[
				'ACTION' => MainGridPanelActions::CREATE,
				'DATA' => $data,
			],
		],
	];
}