fullcalendar v2 リソース カレンダーを実装しました。私が修正できないのは、日に基づいて動的なminTimeとmaxTimeを設定することです。毎日、仕事のタイミングが異なります。
月曜日 10:00~14:00
火曜日 16:00~24:00 ...
この方法でカレンダーを初期化しました:
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,resourceDay'
},
defaultView: 'resourceDay',
titleFormat: {'day':'dddd, MMMM D'},
minTime: "08:00",
maxTime: "20:00",
scrollTime: moment().format('H:m'),
eventLimit: true, // allow "more" link when too many events
resources:[
resource1,resource2
],
slotDuration: '00:15:00',
allDaySlot: false,
lazyFetching: false,
droppable: true,
defaultTimedEventDuration: '00:30:00',
selectable: true,
selectHelper: true,
unselectAuto: 'true',
timeFormat: {'agenda':'hh:mm A','':'hh:mm A'},
// Calender Method-1: AJAX events will loaded from this code
events:function(start, end, timezone,callback) {
$.ajax({
url: "http://www.domainn.com/dashboard/index",
dataType: 'json',
type:'POST',
// async: false, //blocks window close
data: {
start: start.unix(),
end: end.unix(),
viewtype: $('#calendar').fullCalendar('getView').name,
},
success:function(response){
var calendarOptions = $('#calendar').fullCalendar('getView').calendar.options;
// console.log(calendarOptions);
calendarOptions.minTime = response.timings.start;
calendarOptions.maxTime = response.timings.end;
$('#calendar').fullCalendar('destroy');
$("#calendar").fullCalendar(
$.extend(calendarOptions, {
events:response.resources
})
);
}
});
},
eventRender: function (event, element) {
// code here
},
// other events follows.....
});
このajax呼び出しから、その日に基づいて、その特定の日の動的な作業タイミングを取得し、それを設定しようとしています
response.timings.start
response.timings.end
しかし、これらのオプションを使用してから別の日に変更/goingToしても、イベントは取得されません! 基本的に同じ関数を無限ループで呼び出し続けます。
多くのオプションを試しましたが、うまくいきませんでした。どんなヘルプ/ガイドも大歓迎です。ありがとう。