2012-12-18 2 views
1

저는 Rails 응용 프로그램에서 arshaw.com/fullcalendar/를 사용하고 있습니다. 정말 좋습니다!Rails Fullcalendar allday drag가 작동하지 않습니다.

사용자가 이벤트를 다른 날로 이동 (끌기) 할 때 eventDrop을 사용하여 이벤트 테이블을 업데이트합니다. 이것은 시작 및 종료 시간이있는 이벤트를 끌 때 유용합니다. 그러나 allday 이벤트를 끌면 테이블을 업데이트하지 않습니다.

이 내 테이블 갱신 코드 :

eventDrop: (event, dayDelta, minuteDelta, allDay, revertFunc) -> 
    updateEvent(event); 

    eventResize: (event, dayDelta, minuteDelta, revertFunc) -> 
    updateEvent(event); 


updateEvent = (the_event) -> 
    $.update "/events/" + the_event.id, 
    event: 
     title: the_event.title, 
     starts_at: "" + the_event.start, 
     ends_at: "" + the_event.end, 
     description: the_event.description 

어떤 아이디어?

감사합니다.

답변

0

간단한 해결 방법은 작은 해킹 (해킹이 마음에 들지 않지만 이건 필요하다고 생각합니다)입니다.

다음
select: function (start, end, allDay, jsEvent, view) 
    { 
     var title = prompt('event title:'); 

     if (title) 
     { 
      var allDay = allDay ? true : false; 
      if (allDay) 
      { // this ensures that allDay tasks have end time if they're to be changed to non allDay tasks 
       end.setHours(end.getHours() + 1); 
      } 

      createEvent(
      { 
       title: title, 
       start: start, 
       end: end, 
       allDay: allDay 
      }); 
     } 
     $calendar.fullCalendar('unselect'); 
    }, 

가 CreateEvent에 함수의 :

내가이 일을, 올 데이 이벤트 생성시, 나는 모든 이벤트는 항상 종료 시간을 확인하고, 해당 이벤트, 프로그램 (1 시간 시작 후)에 대한 종료 시간을 추가

function createEvent(event) 
{ 
    $spinner.show(); 
    $.create(
     "/tasks", 
     { 
      "task": 
      { 
       name: event.title, 
       starts_at: "" + event.start, 
       ends_at: "" + event.end, 
       all_day: event.allDay 
      } 
     }, 
     function (response) 
     { 
      $spinner.hide(); 
      var id = response.id; 
      $calendar.fullCalendar('renderEvent', 
      { 
       id: id, 
       title: event.title, 
       start: event.start, 
       end: event.end, 
       allDay: event.allDay ? true : false 
      }, 
      true // make the event "stick" 
      ); 
     } 
    ); 
} 
관련 문제