/** * A source for events for the all day section of {@link Ext.calendar.view.Days}. * * @private */Ext.define('Ext.calendar.dd.DaysAllDaySource', { extend: 'Ext.drag.Source', requires: [ 'Ext.calendar.dd.WeeksProxy', 'Ext.calendar.util.Dom' ], activateOnLongPress: 'touch', config: { proxy: { type: 'calendar-weeks', width: 200 }, view: null }, describe: function(info) { var view = this.getView(), event = view.getEvent(info.eventTarget); info.event = event; info.widget = view.getEventWidget(event); info.setData('calendar-event-allday', event); info.view = view; }, beforeDragStart: function(info) { return this.getView().handleChangeStart('drag', info.event); }, updateView: function(view) { if (view) { this.setHandle('.' + view.$eventCls); this.setElement(view.allDayContent); } }, destroy: function() { this.setView(null); this.callParent(); }, privates: { setup: function(info) { var view, event, positions; this.callParent([info]); view = info.view; event = info.event; positions = Ext.calendar.util.Dom.extractPositions(view.backgroundCells, 'getX'); info.index = Ext.calendar.util.Dom.getIndexPosition(positions, info.cursor.current.x); info.positions = positions; info.span = view.getEventDaysSpanned(event); } }});