FullCalendar显示本周事件下的最后几周事件
我正在开发一个应用程序来管理随叫随到的日历,使用FullCalendar来呈现它。 大多数活动为期一周,从星期二上午8:00开始,到下周二上午8:00结束。 另一个事件,大概是一个不同的人随时待命,将会跟随那个事件。
在走廊可用性测试期间,有人评论说月历视图很难阅读,因为前几周的活动不在堆栈顶部,而是低于该周开始的活动。 当被观看时,眼睛感觉到它应该下行1行来查看剩余的时间线,因为上周发生的事件在那里,而不是下移到下一周。
我调查了我认为的问题:
function segCmp(a, b) {
return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
}
为一行排序事件,但在计算中使用事件的长度。 由于本周的活动持续时间较长,因此总是排在最前面。 为了测试,我将开始日期更改为星期三,以便持续时间更近。 这导致事件呈现我期望的状态,最后几周的事件在顶部,本周在底部。
我认为如果比较中的其中一个事件没有在那一周开始,那么只能根据开始时间进行比较。 我修改的功能是:
function segCmp(a, b) {
if (a.isStart == false || b.isStart == false) {
return (a.event.start - b.event.start);
}
return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
}
这解决了我的问题,渲染现在看起来不错 - 并通过走廊测试。 我不知道这是否会对其他领域产生影响。 我看了其他的观点(月,周,日),他们似乎都在正确渲染。 我对FullCalendar不够熟悉,无法就此提出错误或功能请求,或者甚至将其视为错误。
我想知道我修改的内容是否正确,或者修复这个问题不是一个更好的修改。
谢谢!
下面我有json结果显示的内容:
[{"title":"Person 1 - OnCall (OSS On Call)","id":12,"allDay":false,"start":"2010-11-30T15:00:00.0000000Z","end":"2010-12-07T15:00:00.0000000Z","editable":false,"className":"fc-event-title-calendar","url":"/TimeManagement/Edit/12"},
{"title":"Person 2 - OnCall (OSS On Call)","id":13,"allDay":false,"start":"2010-12-07T15:00:00.0000000Z","end":"2010-12-14T15:00:00.0000000Z","editable":false,"className":"fc-event-title-calendar","url":"/TimeManagement/Edit/13"},
{"title":"Person 3 - OnCall (OSS On Call)","id":14,"allDay":false,"start":"2010-12-14T15:00:00.0000000Z","end":"2010-12-21T15:00:00.0000000Z","editable":false,"className":"fc-event-title-calendar","url":"/TimeManagement/Edit/14"},
{"title":"Person 4 - OnCall (OSS On Call)","id":15,"allDay":false,"start":"2010-12-21T15:00:00.0000000Z","end":"2010-12-28T15:00:00.0000000Z","editable":false,"className":"fc-event-title-calendar","url":"/TimeManagement/Edit/15"},
{"title":"Person 5 - OnCall (OSS On Call)","id":16,"allDay":false,"start":"2010-12-28T15:00:00.0000000Z","end":"2011-01-04T15:00:00.0000000Z","editable":false,"className":"fc-event-title-calendar","url":"/TimeManagement/Edit/16"},
{"title":"Person 6 - OnCall (OSS On Call)","id":17,"allDay":false,"start":"2011-01-04T15:00:00.0000000Z","end":"2011-01-11T15:00:00.0000000Z","editable":false,"className":"fc-event-title-calendar","url":"/TimeManagement/Edit/17"},
{"title":"Christmas","id":2,"allDay":true,"start":"2010-12-25T07:00:00.0000000Z","end":null,"editable":false,"className":"fc-event-title-calendar","url":"/TimeManagement/Edit/2"},
{"title":"New Years Eve","id":3,"allDay":true,"start":"2010-12-31T07:00:00.0000000Z","end":null,"editable":false,"className":"fc-event-title-calendar","url":"/TimeManagement/Edit/3"},
{"title":"New Years Day","id":4,"allDay":true,"start":"2011-01-01T07:00:00.0000000Z","end":null,"editable":false,"className":"fc-event-title-calendar","url":"/TimeManagement/Edit/4"}]
听起来你正试图解决这个问题:http://code.google.com/p/fullcalendar/issues/detail?id=510
我不认为你的模组会导致任何不良行为,当你有两个事件都包装到第二行时,它将会中断,保证它们保持相同的顺序。 一个防弹解决方案需要一点点进一步的工作,希望在某个时候解决这个问题。
链接地址: http://www.djcxy.com/p/81233.html上一篇: FullCalendar displaying last weeks events below this weeks events