- Модуль: 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
]);
}