2017-09-05 69 views
0

如何在开始日期之前订购fullCalendar中的活动?通过开始日期和结束日期在Fullcalendar中订购活动

例子:

  • 其中最先启动将显示在顶部,然后其中一个起步较晚稍后会
  • 如果两个事件具有相同的开始日期,然后,通过结束日期 即责令其事件 先结束的事件将首先显示,然后是稍后结束的事件。

Calendar Display Events Order

var args = jQuery.parseJSON(emCalendarArgs); 
var Jobj = args.events; 

// Setup FullCalendar 

(function() { 
    //var language = jQuery('#pg_lang').val(); 
    //alert(language+ 'dsfsd'); 
    var date = new Date(); 
    var d = date.getDate(); 
    var m = date.getMonth(); 
    var y = date.getFullYear(); 
    var language = langg; 
    var mn_text, week_text, day_text, list_text; 

    //alert(mn_text); 
    var args = jQuery.parseJSON(emCalendarArgs); 
    var Jobj = args.events; 
    console.log(Jobj); 
    jQuery('#events-full-calendar').fullCalendar({ 

    allDaySlot: false, 
    editable: true, 
    lang: 'he', 
    handleWindowResize: true, 
    eventOrder: 'start,end', 
    header: { 
     left: 'today prev,next', 
     center: 'title', 
     right: 'month,basicWeek,basicDay' 
    }, 
    buttonText: { 
     month: mn_text, 
     week: week_text, 
     day: day_text 
    }, 
    eventLimit: { 
     'month': 3, // adjust to 4 only for months 
     'default': false // display all events for other views 
    }, 
    axisFormat: 'HH:mm', 
    timeFormat: { 
     agenda: 'H:mm{ - h:mm}' 
    }, 
    slotEventOverlap: false, 
    events: Jobj, 
    timeFormat: 'H:mm', 
    }); 
}()); 
+0

假设我们不是在谈论议程意见,在网格系统使所有这一切我rrelevant:_“首先出现的事件将显示在最上面”_。这已经是默认行为。 _“如果两个事件的开始日期相同,则按结束日期排序,即先结束的事件先显示,然后事件结束。”_。这没有直接的支持。您最好的选择是在事件Feed中按照所需的顺序返回它们。 – ADyson

+0

日历中的事件顺序仍未更改。 我改变了事件饲料的顺序,我想如何,但仍然日历显示的事件只根据开始日期,是否还需要在fullcalendar.js所需的任何更改? – chapter17

+0

您正在使用哪种视图类型?实际上,通过对自己进行一些测试,我可以看到它与你想要的相反(至少在月视图中) - 事实上,它似乎是以具有最新结束日期的那一个为先命令,然后从那里以降序排列。请参阅http://jsfiddle.net/sbxpv25p/14/。我在文档中看不到有关如何更改此内容的任何内容,因此可能需要修改fullCalendar源代码,或者向维护人员提交功能请求以将其添加为选项。我相信这是通过Github完成的。 – ADyson

回答

1

我找到了一个解决的办法。对于任何其他人寻找解决这个,我改变了fullcalendar.js功能:

compareSegs: function(seg1, seg2) { return seg1.eventStartMS - seg2.eventStartMS || // earlier events go first seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1) compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs); } 

到:

compareSegs: function(seg1, seg2) { 
     if(this.view.name=="basicWeek" || this.view.name=="month" || this.view.name=="basicDay"){ // ordering events by color in ListView 
     return seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1) 
      compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs); 
     } 
     else{ 
      return seg1.eventStartMS - seg2.eventStartMS || // earlier events go first 
         seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first 
         seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1) 
         compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs); 
     } 
    } 

和fullcalendar功能下面的代码使用

eventOrder: 'start, end' 

在我fullcalendar调用

相关问题