防止调度程序中月视图上的外部事件丢失

时间:2017-07-08 19:25:31

标签: fullcalendar-scheduler

这是一个在fullcalendar-scheduler的标准演示中很容易看到的问题,在这里显示外部事件拖放:

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

将活动正确地放置在日历上需要从最左边抓取一个事件并将其放到正确的房间和时间。但是,房间不会显示在周视图或月视图中。

问题是您仍然可以在周视图和月视图中将事件拖到日历上,但是无法在这些视图中选择房间,因此您只是创建错误。试试这个。进入月视图,将事件拖到日历上,它会显示在您放置它的位置。现在回到白天或3天的视图,因为它与有效的房间无关,所以您刚刚删除的事件不可见。

所以,问题是,如何根据视图禁用拖放?

我尝试使用dropAccept和一个函数(如果view = month返回false),但dropAccept似乎不知道当前视图。

我不是肯定的,但我认为drop和eventReceive都是在太晚之后调用的,并且事件已经在日历上了。

2 个答案:

答案 0 :(得分:0)

通过在这些视图上执行此操作,您不会因此而创建错误,而只是添加一个没有与之关联的资源的事件。因此,它不会显示在资源感知视图中。请记住,调度程序只是主fullCalendar产品的附加组件,因此存在的视图(包括月份和周)是主要产品的一部分,因此不具有资源感知能力,因为资源概念不具备存在于该产品中。

您可以按照以下说明进行周视图资源感知:https://fullcalendar.io/docs/vertical_resource_view/getting_started/,但您无法对月视图做任何事情(视图中没有足够的空间使GUI可用)。

话虽如此,您可以随时使用getView https://fullcalendar.io/docs/views/getView/方法向日历询问当前视图是什么,并使用该信息来决定是否阻止它们拖动到该视图上,或者您甚至可以弹出添加一些额外的UI以请求他们选择资源,然后手动将资源添加到事件数据中,然后再将其添加到日历中。

答案 1 :(得分:0)

在fullcalendar设置中使用custom view config options

即。 views.week.droppable = false