alloyui scheduler drag event

408 Views Asked by At

I looked at other posts and I see how to get edit, change, delete events from SchedulerEventRecorder. One thing i cant find is how to listen for drag events? I dont seem to be bale to find any docs on that. Below is my code:

 YUI().use(
  'aui-scheduler',
  function(Y) {
    var events = [
      {
        color: '#8B0000',
        repeated: true,
        content: 'Event1',
        endDate: new Date(2017, 12, 1, 16),
        startDate: new Date(2017, 12, 1, 1)
      }
    ];

    var agendaView = new Y.SchedulerAgendaView();
    var dayView = new Y.SchedulerDayView();    
    var monthView = new Y.SchedulerMonthView();
    var weekView = new Y.SchedulerWeekView();

    var eventRecorder = new Y.SchedulerEventRecorder({
        on: {
          save: function(event) {
            alert('Save Event:' + this.isNew() + ' --- ' + this.getContentNode().val()+'-----startDate='+this.get('startDate')+'-----EndDate='+this.get('endDate'));
          },
          edit: function(event) {
            alert('Edit Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
          },            
          delete: function(event) {
            alert('Delete Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
    // Note: The cancel event seems to be buggy and occurs at the wrong times, so I commented it out.
//          },
//          cancel: function(event) {
//            alert('Cancel Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
          }
        }
      });

    schedule =new Y.Scheduler(
      {       
        activeView: weekView,
        boundingBox: '#myScheduler',      
        date: new Date(2017, 12, 1),
        eventRecorder: eventRecorder,
        items: events,
        render: true,
        views: [dayView, weekView, monthView, agendaView]

      }
    );    
  }

);
2

There are 2 best solutions below

0
Jader Alcantara On

To listen any attr change put on your save callback like bellow:

 event.newSchedulerEvent.on("endDateChange",function(event){

         });

In this case i'm listening endDate.

0
Ujwaldeep Singh On

Add "drag:end" property while initializing Scheduler

new Y.Scheduler({
     activeView: ...,
     boundingBox: '#myScheduler',
     eventRecorder: ...,
     render: true,
     views: [dayView, weekView, monthView, agendaView],
     on: {
        "drag:end": function (event) {
             // DO SOMETHING HERE                   
         }
     }

 });