Предотвратить падение внешнего события в представлении месяца в планировщике

Вот проблема, которую легко увидеть в стандартной демонстрации для fullcalendar-scheduler, показывающей перетаскивание внешних событий здесь:

https://fullcalendar.io/js/fullcalendar-scheduler-1.6.2/demos/external-dragging.html

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

Проблема в том, что вы все еще можете перетащить событие в календарь в режиме просмотра недели и месяца, но нет возможности выбрать комнату в этих режимах, поэтому вы просто создаете ошибки. Попробуй это. Перейдите в режим «Месяц», перетащите событие в календарь, и оно появится там, где вы его перетащили. Теперь вернитесь к представлениям «День» или «3 дня», и событие, которое вы только что удалили, не отображается, поскольку оно не связано с действительной комнатой.

Итак, вопрос в том, как я могу отключить перетаскивание на основе представления?

Я попытался использовать dropAccept с функцией (что-то вроде if view=month return false), но dropAccept, похоже, не знает текущее представление.

Я не уверен, но я думаю, что и drop, и eventReceive вызываются, когда уже слишком поздно, а событие уже есть в календаре.


person Robert    schedule 08.07.2017    source источник


Ответы (2)


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

Вы можете настроить представление недели с учетом ресурсов, следуя этим инструкциям: https://fullcalendar.io/docs/vertical_resource_view/getting_started/, но вы ничего не можете сделать с представлением месяца (просто недостаточно места в представлении, чтобы сделать графический интерфейс работоспособным).

Сказав это, вы можете использовать getView https://fullcalendar.io/docs/views/getView/ в любое время, чтобы запросить у календаря текущее представление и использовать эту информацию, чтобы решить, следует ли запретить им перетаскивание в это представление, или вы даже можете открыть собственный дополнительный пользовательский интерфейс, чтобы попросить их выбрать ресурс, а затем добавьте ресурс вручную в данные события, прежде чем добавить его в календарь.

person ADyson    schedule 14.07.2017

Используйте настраиваемые параметры конфигурации просмотра в настройках fullcalendar:

I.e. views.week.droppable = false

person MattJam    schedule 06.06.2018