Я пишу модуль планирования встреч, используя FullCalendar.Таким образом, основная цель состоит в том, чтобы использовать два типа событий:
- Назначение - для фактического запланированного назначения
- Доступно - для доступного временного интервала
Я изменил FullCalendar так, чтобы события типа Встречи отображались определенным цветом, а события Доступного типа - другим цветом.
Основная цель - разрешить кому-либо
- просматривать доступные временные интервалы
- выбрать всеили часть этого временного интервала для планирования события типа Встреча
- возможность запретить перекрывающиеся Встречи
- ничего не делать каждый раз, когда пользователь щелкает вне Доступного временного интервала
Сначала отображаются доступные события, затем Встречасобытия типа last.
Я изменил fullcalendar так, чтобы перекрывающиеся события не отображались бок о бок, а вместо этого события Appointment лежали поверх доступных событий.
Внутри eventClick Сначала я проверяютип события.Если это событие Appointment, то я хотел бы просто отредактировать это выбранное событие Appointment.
Если это событие Available, тогда я хотел бы создать новое событие типа Appointment.
Если это просто событие dayClick, тогда игнорировать
Первоначально я бы вызвал функцию: CreateEvent для Select
и вызвал UpdateClick для eventClick
следующим образом:
select : CreateEvent,
eventClick : UpdateClick,
Тефункции открывают диалоговое окно, в котором они могут либо добавлять, либо редактировать событие.
Поскольку я хочу, чтобы они могли только планировать встречу в существующем слоте «Доступные события», я подумал, что, возможно, я мог бы вызвать те же процедуры, как показано ниже:
eventClick: function(calEvent, jsEvent, view) {
if (calEvent.type=='AVAILABLE') {
CreateEvent; // schedule new appt.
} else if (calEvent.type=='APPOINTMENT') {
UpdateClick; // edit existing appt.
}
}
Проблема с этим кодом заключается в том, что подпрограмма: CreateEvent требует времени начала и окончания.
function CreateEvent(start, end, allDay) {
$('#calendar').fullCalendar('unselect');
var id = $(formStart + formEnd);
$(id).dialog( {
title : 'Create',
modal : true,
autoOpen : true,
width : "340px",
resizable : false,
close : function(event, ui) {
$(id).html('');
},
buttons : {
"Ok" : function() {
title = document.getElementById('titleId').value;
$(id).dialog("close");
ev = {
title : title,
start : start.getTime() / 1000,
end : end.getTime() / 1000,
allDay : allDay
};
if (!title) {
return;
}
serverSave(ev);
},
"Cancel" : function() {
$(id).dialog("close");
}
}
});}
Я не хочу использовать начало и конец события, так как это будет полный доступный интервал времени.При планировании встречи они могут использовать только часть этого Доступного временного интервала.
Итак, знаете ли вы, как преобразовать фактическую координату Y указателя мыши в начальное время встречи?
И/ Или
Видите ли вы гораздо более простой способ управления расписанием встреч такого типа с помощью FullCalendar?
Спасибо