2017-09-05 73 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調用

相關問題