• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/components/itemlist.php
  • Класс: BitrixRpaComponentsItemList
  • Вызов: ItemList::getToolbarParameters
protected function getToolbarParameters(): array
{
	if(!$this->type)
	{
		return [];
	}

	BitrixUIToolbarFacadeToolbar::setTitleMinWidth(158);

	$urlManager = Driver::getInstance()->getUrlManager();
	$userPermissions = Driver::getInstance()->getUserPermissions();

	$buttons = [];

	$buttons[ButtonLocation::AFTER_FILTER][] = new ButtonsButton([
		'color' => ButtonsColor::LIGHT_BORDER,
		'className' => 'ui-btn ui-btn-themes ui-btn-light-border ui-btn-dropdown ui-toolbar-btn-dropdown',
		'text' => $this->type->getTitle(),
		'menu' => [
			'items' => $this->getToolbarTypes(),
		],
		'maxWidth' => '400px',
	]);

	$isTypeSettingsRestricted = Driver::getInstance()->getBitrix24Manager()->isTypeSettingsRestricted($this->type->getId());

	if($userPermissions->canAddItemsToType($this->type->getId()))
	{
		$buttons[ButtonLocation::AFTER_TITLE][] = new ButtonsButton(
			[
				'color' => ButtonsColor::PRIMARY,
				'className' => 'ui-btn ui-btn-themes',
				'text' => Loc::getMessage('RPA_COMMON_ADD'),
				'link' => $isTypeSettingsRestricted ? null : $urlManager->getItemDetailUrl($this->type->getId(), 0)->getPath(),
				'onclick' => $isTypeSettingsRestricted ? new ButtonsJsHandler('BX.Rpa.Manager.Instance.showFeatureSlider') : null,
				'maxWidth' => '400px',
			]
		);
	}

	if($userPermissions->canModifyType($this->type->getId()))
	{
		$onClick = $isTypeSettingsRestricted ? new ButtonsJsHandler('BX.Rpa.Manager.Instance.showFeatureSlider') : new ButtonsJsHandler('BX.Rpa.Manager.Instance.closeSettingsMenu');
		$buttons[ButtonLocation::AFTER_FILTER][] = new ButtonsSettingsButton([
			'menu' => [
				'id' => 'rpa-toolbar-settings-menu',
				'items' => [
					[
						'text' => Loc::getMessage('RPA_COMMON_TYPE_SETTINGS'),
						'href' => $isTypeSettingsRestricted ? null : $urlManager->getTypeDetailUrl($this->type->getId()),
						'onclick' => $onClick,
					],
					[
						'text' => Loc::getMessage('RPA_COMMON_STAGES_SETTINGS'),
						'href' => $isTypeSettingsRestricted ? null : $urlManager->getStageListUrl($this->type->getId()),
						'onclick' => $onClick,
					],
					[
						'text' => Loc::getMessage('RPA_COMMON_FIELDS_SETTINGS'),
						'href' => $isTypeSettingsRestricted ? null : $urlManager->getTypeFieldsListUrl($this->type->getId()),
						'onclick' => $onClick,
					],
				],
			],
		]);
	}

	$tasks = 0;
	$taskManager = Driver::getInstance()->getTaskManager();
	if($taskManager)
	{
		$tasks = count($taskManager->getUserIncompleteTasksForType($this->getTypeId()));
	}

	return array_merge(parent::getToolbarParameters(), [
		'buttons' => $buttons,
		'filter' => $this->prepareFilter(),
		'robotsUrl' => $urlManager->getAutomationUrl($this->type->getId()),
		'views' => [
			'kanban' => [
				'title' => Loc::getMessage('RPA_COMMON_KANBAN'),
				'url' => $urlManager->getKanbanUrl($this->type->getId())
			],
			'list' => [
				'title' => Loc::getMessage('RPA_COMMON_LIST'),
				'url' => $urlManager->getItemsListUrl($this->type->getId()),
			],
		],
		'tasks' => $tasks,
		'tasksUrl' => $urlManager->getUserItemsUrlWithTasks($this->type->getId()),
		'tasksFilter' => [
			'filterId' => $this->filter->getID(),
			'fields' => [
				TaskManager::TASKS_FILTER_FIELD => TaskManager::TASKS_FILTER_HAS_TASKS_VALUE,
			],
		],
	]);
}