FullCalendar: Могу ли я узнать время начала, связанное с координатами EventClick? - PullRequest
3 голосов
/ 20 января 2011

Я пишу модуль планирования встреч, используя 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?

Спасибо

1 Ответ

0 голосов
/ 17 января 2013

Я знаю, что jsEvent содержит много информации, включая координаты события щелчка в пределах календарного слота.(См. eventClick документацию о PageX & pageY ), где говорится о координатах.

Еще одно решение, которое приходит на ум, - это переключиться на дневной вид, чтобы было легче выбрать /увидеть время, которое доступно.Этот переключатель может быть обработан даже всплывающим модальным типом.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...