Поскольку функция selectOverlap проходит только через перекрывающееся событие, а не через выделение, сложно настроить, как для обработки создания события.
В моем случае мы работаем над системой календаря / дневника с фоновыми событиями, показывающими смены сотрудников, и событиями, показывающими их индивидуальные бронирования.
На этом этапе, кроме фоновых событий, абсолютно никакие события не должны перекрывать друг друга.
Однако ... вдобавок к этому - затем мы накладываем "события на весь день" - что может быть любым количеством вещей, но для примера, скажем, это "дни рождения сотрудников" - поэтому у вас может быть несколько события сегодня, но в разделе всего дня будет мероприятие, показывающее чей-то день рождения.
Я проверяю eventOverlap
и делаю некоторые другие проверки для eventDrop
и eventResize
, которые обрабатывают разные конфликты, но они работают только для существующих событий, перемещаемых или изменяемых в размере. Я хотел бы сделать то же самое при создании события, которое происходит во время выбора. Чтобы запретить выбор пробелов, в которых уже есть события, я использую пример функции из документации selectOverlap
:
function(event) {
return event.rendering === 'background';
}
Это работает фантастически. Однако, если я попытаюсь создать новое мероприятие на весь день, оно будет «перекрывать» любые другие события, существующие в этот день, и не пройдет эту проверку. Я надеялся, что смогу использовать объект выбора, чтобы проверить его на allDay=true
, но функция передает только существующее событие, и нет возможности проверить выбранный раздел.
Здесь вы можете увидеть очень упрощенную демонстрацию:
https://codepen.io/anon/pen/NQrxOO
Попробуйте создать мероприятие на весь день в день, в котором уже есть события.
Есть лучший способ сделать это? Вместо этого я могу полностью удалить selectOverlap
и делать все в select callback, но мне нужно по сути, дублируйте проверки на перекрытие только для того, чтобы эта работа работала, и я чувствую, что это кажется излишним для чего-то, что должно быть относительно простым.
Возможно ли получить не только перекрывающийся объект события, но и объект выбора при выполнении функции selectOverlap
?