• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/controller/calendarajax.php
  • Класс: BitrixCalendarControllerCalendarAjax
  • Вызов: CalendarAjax::updatePlannerAction
public function updatePlannerAction()
{
	$request = $this->getRequest();
	$entryId = (int)$request['entryId'];
	$userId = CCalendar::getCurUserId();
	$ownerId = (int)$request['ownerId'];
	$type = $request['type'];
	$entries = $request['entries'];
	$isExtranetUser = Util::isExtranetUser($userId);

	$hostId = (int)$request['hostId'];
	if (!$hostId && $type === 'user' && !$entryId)
	{
		$hostId = $ownerId;
	}

	if (Loader::includeModule('intranet'))
	{
		if (!BitrixIntranetUtil::isIntranetUser($userId) && !$isExtranetUser)
		{
			$this->addError(new Error('[up01]' . Loc::getMessage('EC_ACCESS_DENIED'), 'access_denied'));
			return [];
		}
	}

	if ($isExtranetUser)
	{
		$entries = CExtranet::getMyGroupsUsersSimple(CExtranet::GetExtranetSiteID());
	}

	if (!$entryId && $request['cur_event_id'])
	{
		$entryId = (int)$request['cur_event_id'];
	}

	$codes = [];
	if (isset($request['entityList']) && is_array($request['entityList']))
	{
		$codes = Util::convertEntitiesToCodes($request['entityList']);
	}
	elseif (isset($request['codes']) && is_array($request['codes']))
	{
		$codes = $request['codes'];
	}

	if ($entryId > 0 && empty($codes))
	{
		$codes[] = 'U' . $hostId;
	}
	if ($request['add_cur_user_to_list'] === 'Y' || empty($codes))
	{
		$codes[] = 'U' . $userId;
	}

	$prevUserList = is_array($request['prevUserList']) ? $request['prevUserList'] : [];

	$dateFrom = isset($request['dateFrom']) ? $request['dateFrom'] : $request['date_from'];
	$dateTo = isset($request['dateTo']) ? $request['dateTo'] : $request['date_to'];

	return CCalendarPlanner::prepareData([
		'entry_id' => $entryId,
		'user_id' => $userId,
		'host_id' => $hostId,
		'codes' => $codes,
		'entryLocation' => trim($request['entryLocation'] ?? ""),
		'entries' => $entries,
		'date_from' => $dateFrom,
		'date_to' => $dateTo,
		'timezone' => $request['timezone'],
		'location' => trim($request['location'] ?? ""),
		'roomEventId' => (int)$request['roomEventId'],
		'initPullWatches' => true,
		'prevUserList' => $prevUserList
	]);
}