Я ищу способ добавить свободные временные интервалы в полный календарь, которые отображаются с 16:00 до 20:00 каждый день. Чтобы их можно было выбрать для регистрации в событии, но не показывать время, когда есть события, которые я получаю с помощью вызова JSON.
Пока что вызов для получения дат из базы данных работает нормально, но не уверен, как заполнить серые поля, чтобы пользователь мог щелкнуть и добавить событие. Я использую лайтбокс для этого.
Пока это код (но он создает событие, даже если оно есть в обратном вызове JSON):
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: true,
eventClick: function(event) {
var url='api.php?getclassinfo=1&class_id='+event.id;
$.getJSON(url,function(json){
$('#class_id').val(json.id);
$('#class_name').val(json.name);
$('#class_time').val(json.time);
var output='';
for (var i in json.day) {
output = output+json.day[i]+',';
}
});
return false;
},
//events: 'api.php?getdates=1&class_room='+class_room
eventSources:
[
'api.php?getdates=1&class_room='+class_room,
MyEvents
]
});
function MyEvents(start,end, callback) {
var events = [];
// Setup the meeting on the this weeks "monday"
var meeting = new Date(start.getFullYear(),
start.getMonth(),
start.getDate(),
16, 00, 00);
meeting.setDate((meeting.getDate() - meeting.getDay()) + 1);
i=0;
while (meeting <= end) {
events.push({
id: meeting.valueOf(),
title: "Free space",
start: newdate,
allDay: false,
backgroundColor: "#EEEEEE",
borderColor: "#EEEEEE",
textColor: "#AAAAAA"
});
// increase by one week
meeting.setDate(meeting.getDate() + 1);
i=i+1;
}
callback(events);
}