calendar · calendar 25.197.0 Заметное

calendar 25.197.0: тип события call_sync и чат, который создаётся сам

3 мин чтения

У события календаря появился собственный тип, и первый его пользователь — синхронизированные созвоны: при создании такого события автоматически поднимается чат с гостевой ссылкой. Ломающих изменений нет, все правки сигнатур совместимы.

EVENT_TYPE: событие теперь знает, откуда оно

CreateEventCommand::__construct получил необязательный последний аргумент ?string $eventType = null и геттер getEventType(); обработчик пишет значение в поле EVENT_TYPE. В словаре Dictionary::EVENT_TYPE добавлен 'call_sync' => '#call_sync#'.

Смысл — отличать события, созданные сценарием, от событий, которые пользователь завёл руками. До этого приходилось опознавать их по косвенным признакам (названию, описанию, наличию ссылки), а это всегда хрупко.

Важно, как тип попадает в систему: в формах compacteventform и eventeditform появилось скрытое поле event_type, а CalendarEntryAjax принимает его только из белого списка Dictionary::EVENT_TYPE. Произвольную строку с клиента не проставить — правильный подход, учитывая, что тип управляет автоматикой.

Чат для созвона создаётся сам

Новый подписчик CreateCallSyncChat (__invoke, getEventClasses) подписан на AfterCalendarEventCreated и AfterCalendarEventEdited. Срабатывает он только при getSpecialLabel() === Dictionary::EVENT_TYPE['call_sync'] — то есть на обычные встречи не реагирует.

Зависимости: im (GuestLinkService, GuestChatLink) и intranet (Secretary). Константа GUEST_LINK_URL_MARKER = '#cal-sync-guest'.

Складывается общая картина: событие типа call_sync → чат → гостевая ссылка, по которой внешний участник заходит без учётной записи. Гостевые ссылки в этом же батче переделали в im 26.700.0 — там как раз завезли отдельную область авторизации гостя и очистку неактивных. Стоит смотреть на эти два релиза вместе.

Ещё два новых экшена

  • CalendarAjax::getStandaloneCompactFormDataAction() — данные компактной формы, только для личного календаря текущего пользователя (type=user). Ограничение зашито в экшен, чужой календарь через него не открыть.
  • SharingAjax::enableAndGetSharingConfigAction() — включает sharing, если он был выключен, и сразу возвращает ссылку, настройки календаря и пользователя. Экономит шаг «сначала включите шаринг в настройках»: раньше это были два действия пользователя, теперь одно.

Под первый экшен сделано JS-расширение calendar.compacteventform-launcher (CompactFormLauncher) — компактную форму создания события теперь можно поднять из любого места интерфейса, не таща за собой весь календарь. Плюс контролы user-sharing.js и user-sharing-controller.js.

Что делать

  • Если делаете свою интеграцию созвонов — используйте EVENT_TYPE вместо распознавания событий по названию.
  • Собственные типы событий добавлять придётся через Dictionary::EVENT_TYPE: белый список в CalendarEntryAjax отсечёт всё остальное.
  • Планируете встраивать быстрое создание события — посмотрите на CompactFormLauncher прежде чем писать свою форму.

Читайте дальше

calendar 25.195.0 Заметное Свежее

calendar 25.195.0: активность БП считает минуты встреч и перестала терять последний день

Точечный релиз вокруг одной активности бизнес-процессов — «Получить информацию из календаря». Она научилась отдавать списки заголовков и суммарные минуты встреч, а заодно у неё поправили границу выборки. Публичного PHP API релиз не меняет.

3 мин
calendar 25.200.0 Ломающее Свежее

calendar 25.200.0: таймзона пользователя переехала в b_user.TIME_ZONE — и это ломающий релиз

Самый «ломающий» календарный релиз батча. Часовой пояс пользователя перестал быть настройкой календаря и стал полем пользователя, из-за чего у AJAX-экшена сохранения настроек изменилась сигнатура. Плюс вырезаны два метода `SynchronizationFeature`. Обновление стоит смотреть внимательно, если вы что-т...

4 мин
calendar 26.0.0 Заметное Свежее

calendar 26.0.0: потолок повторов RRULE, права на удалённые sharing-события и разбор ошибок REST

Релиз про повторяющиеся события и права. Появился жёсткий лимит на количество повторов, у удалённых событий по общей ссылке — отдельная проверка доступа, а REST перестал терять ошибки между вызовами. Публичные сигнатуры не удалялись, но пара изменений в поведении заметна.

4 мин
calendar 26.0.100 Заметное Свежее

calendar 26.0.100: почему у людей пропадали встречи при синхронизации с Google и iCloud

Маленький релиз с большими последствиями — исправлена потеря данных при импорте календаря. Если внешний сервис отдавал неполную страницу событий, Битрикс считал недостающие экземпляры удалёнными и вычищал их у себя. Публичного API изменение не трогает, но поставить его стоит всем, у кого работает си...

3 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти