禁用Drag和Drog,如果它是FullCalendar中的月视图

时间:2016-01-13 17:29:10

标签: jquery view fullcalendar

我正在使用FULLCALENDAR库来分配外部任务。 我需要解决两件不同的事情:

1)我只需要在月视图中禁用“拖放”功能。

2)在月视图中:我需要在日历中拖放的任务/事件不能作为allDay放置。相反,它应该被安排在上午9点至下午5点的营业时间。

这是我在第2点的尝试,使用businessHours

private void createCustomer(Token token) {
    Map<String, Object> params = new HashMap<>();
    params.put("token", token.getId());

https://jsfiddle.net/gonzalesc/7ycL8wed/

更新:

对不起,在我看来,在第1点对此进行了详细解释。 我需要“外部事件”无法仅在月视图中拖入日历。

2 个答案:

答案 0 :(得分:3)

FullCalendar Docs

中的结帐视图特定选项

一个简单的例子:

$('#calendar').fullCalendar({
    header: { center: 'month,agendaWeek' }, // buttons for switching between views

    views: {
        month: { 
            editable: false
        }
    }
});

关于您的第二个要求,如果您根本不想要全天活动,则可以删除所有视图的广告位和全天默认值:

 $('#calendar').fullCalendar({
    ...
    allDaySlot: false
    ...
 });

编辑:

此外,仅在所有视图中显示9:00 - 5:00时段:

$('#calendar').fullCalendar({
    ...
    minTime: "09:00:00",
    maxTime: "17:00:00",
    ...
});

编辑:

您可以在初始化时指定外部事件的开始时间。这将确定当天在非议程视图中将其放入日历的时间:

$(this).data('event', {
    title: $.trim($(this).text()), 
    stick: true, 
    start:'09:00'
});

Fiddle

答案 1 :(得分:0)

好的,第1点已经解决了。谢谢@scottysmalls

$('#calendar').fullCalendar({
header: { center: 'month,agendaWeek' },

views: {
    month: { 
        editable: false,
        droppable: false
    }
}});

我认为我们即将解决这一点2,但我不知道这是条件是月度观点。

$(this).data('event', {
title: $.trim($(this).text()), 
stick: true, 
start:'09:00',
end: '17:00'
});