• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Timeline/Item/Activity/ToDo.php
  • Класс: Bitrix\Crm\Service\Timeline\Item\Activity\ToDo
  • Вызов: ToDo::getMenuItems
public function getMenuItems(): array
{
	$items = parent::getMenuItems();
	unset($items['view']);

	if ($this->isScheduled() && $this->hasUpdatePermission())
	{
		$ownerTypeId = $this->getContext()->getIdentifier()->getEntityTypeId();
		$ownerId = $this->getContext()->getIdentifier()->getEntityId();

		$items['addFile'] = MenuItemFactory::createAddFileMenuItem()
			->setAction((new Layout\Action\JsEvent('Activity:ToDo:AddFile'))
				->addActionParamInt('entityTypeId', CCrmOwnerType::Activity)
				->addActionParamInt('entityId', $this->getActivityId())
				->addActionParamString('files', implode(',', array_column($this->fetchStorageFiles(), 'FILE_ID')))
				->addActionParamInt('ownerTypeId', $ownerTypeId)
				->addActionParamInt('ownerId', $ownerId)
			)
		;

		$items['changeResponsible'] = MenuItemFactory::createChangeResponsibleMenuItem()
			->setAction((new Layout\Action\JsEvent('Activity:ToDo:ChangeResponsible'))
				->addActionParamInt('ownerTypeId', $ownerTypeId)
				->addActionParamInt('ownerId', $ownerId)
				->addActionParamInt('id', $this->getActivityId())
				->addActionParamInt('responsibleId', (int)$this->getAssociatedEntityModel()->get('RESPONSIBLE_ID'))
			)
		;

		if (Crm::isTimelineToDoCalendarSyncEnabled())
		{
			$items['settings'] = (new MenuItem(Loc::getMessage('CRM_TIMELINE_ITEM_TODO_SETTINGS')))
				->setHideIfReadonly()
				->setSort(9990)
				->setAction((new Layout\Action\JsEvent('Activity:ToDo:ShowSettings'))
					->addActionParamInt('entityTypeId', CCrmOwnerType::Activity)
					->addActionParamInt('entityId', $this->getActivityId())
					->addActionParamInt('ownerTypeId', $ownerTypeId)
					->addActionParamInt('ownerId', $ownerId)
				)
				->setScopeWeb()
			;
		}
	}

	return $items;
}