2017-09-05 47 views
0

開始日からイベントをfullCalendarで注文するにはどうすればよいですか?開始日と終了日でFullcalendarのイベントを注文する

例:

  • 最初の終了日 すなわちで注文して、2つのイベントが同じ開始日を持っている場合は、後で、後で
  • になります開始する上に表示し、1になる開始するイベント 先に終了するイベントが最初に表示され、その後に終了するイベントが表示されます。

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:_ "最初に最初に表示されるイベント" _。これは既にデフォルトの動作です。 _ "2つのイベントの開始日が同じ場合、終了日別に注文します。つまり、先に終了したイベントが最初に表示され、その後に終了するイベントが表示されます。これには直接のサポートはありません。あなたの最善の選択肢は、あなたのイベントフィードの希望の順序でそれらを返すことです。 – ADyson

+0

カレンダーでイベントの順序が変更されていません。 イベントフィードの順序を変更しましたが、カレンダーにもイベントが表示されています。開始日のみによると、fullcalendar.jsにも変更が必要ですか? – chapter17

+0

どのビュータイプを使用していますか?実際には自分自身をテストすることから、私はそれがあなたが望むものとは逆のことを見ることができます(少なくとも月表示で) - 実際には、最新の終了日を持つもので注文してからそこから降順でhttp://jsfiddle.net/sbxpv25p/14/を参照してください。これを変更する方法についてはドキュメントで何も見ることができないので、fullCalendarのソースコードを変更するか、管理者に機能要求を提出してオプションとして追加する必要があります。これはGithub経由で行われます。 – ADyson

答えて

1

私はそれへの解決策を見つけました。

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.jsで関数を変更しました私のフルカレンダーの電話で

関連する問題