odoo/addons/web_calendar/static/lib/dhtmlxScheduler/sources/ext/dhtmlxscheduler_outerdrag.js

51 lines
1.9 KiB
JavaScript

/*
This software is allowed to use under GPL or you need to obtain Commercial or Enterise License
to use it in non-GPL project. Please contact sales@dhtmlx.com for details
*/
//lame old code doesn't provide raw event object
scheduler.attachEvent("onTemplatesReady", function(){
var dragger = (new dhtmlDragAndDropObject());
var old = dragger.stopDrag;
var last_event;
dragger.stopDrag = function(e){
last_event = e||event;
return old.apply(this, arguments);
};
dragger.addDragLanding(scheduler._els["dhx_cal_data"][0],{
_drag:function(sourceHtmlObject,dhtmlObject,targetHtmlObject,targetHtml){
if (scheduler.checkEvent("onBeforeExternalDragIn") && !scheduler.callEvent("onBeforeExternalDragIn", [sourceHtmlObject,dhtmlObject,targetHtmlObject,targetHtml,last_event]))
return;
var temp = scheduler.attachEvent("onEventCreated", function(id,e){
if (!scheduler.callEvent("onExternalDragIn", [id, sourceHtmlObject, e])){
this._drag_mode = this._drag_id = null;
this.deleteEvent(id);
}
});
if (scheduler.matrix && scheduler.matrix[scheduler._mode])
scheduler.dblclick_dhx_matrix_cell(last_event);
else {
var div = document.createElement('div');
div.className = 'dhx_month_body';
var eventCopy = {};
for (var i in last_event) eventCopy[i] = last_event[i];
eventCopy.target = eventCopy.srcElement = div;
scheduler._on_dbl_click(eventCopy);
}
scheduler.detachEvent(temp);
},
_dragIn:function(htmlObject,shtmlObject){
return htmlObject;
},
_dragOut:function(htmlObject){
return this;
}
});
});