- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/controllers/epic.php
- Класс: BitrixTasksScrumControllersEpic
- Вызов: Epic::createEpicAction
public function createEpicAction(): ?array
{
$post = $this->request->getPostList()->toArray();
$userId = UtilUser::getId();
$epic = new EpicForm();
$epic->setGroupId($post['groupId'] ?? null);
$epic->setName($post['name'] ?? null);
if ($epic->getName() === '')
{
$this->errorCollection->setError(
new Error(
Loc::getMessage('TASKS_SCRUM_EPIC_GRID_NAME_ERROR')
)
);
return null;
}
$epic->setDescription($post['description'] ?? null);
$epic->setCreatedBy($post['createdBy'] ?? $userId);
$colorList = [
'#aae9fc', '#bbecf1', '#98e1dc', '#e3f299', '#ffee95', '#ffdd93', '#dfd3b6', '#e3c6bb',
'#ffad97', '#ffbdbb', '#ffcbd8', '#ffc4e4', '#c4baed', '#dbdde0', '#bfc5cd', '#a2a8b0'
];
$color = ($post['color'] ?? null) ? $post['color'] : array_rand(array_flip($colorList));
$epic->setColor($color);
$files = (is_array($post['files'] ?? null) ? $post['files'] : []);
$epicService = new EpicService($userId);
$pushService = (Loader::includeModule('pull') ? new PushService() : null);
$epic = $epicService->createEpic($epic, $pushService);
if ($epicService->getErrors())
{
$this->errorCollection->add($epicService->getErrors());
return null;
}
if ($files)
{
$epicService->attachFiles($this->userFieldManager, $epic->getId(), $files);
if ($epicService->getErrors())
{
$this->errorCollection->add($epicService->getErrors());
return null;
}
}
return $epic->toArray();
}