diff options
author | AlexKlimenkov <shurick.klimenkov@gmail.com> | 2017-01-31 18:38:36 +0300 |
---|---|---|
committer | AlexKlimenkov <shurick.klimenkov@gmail.com> | 2017-01-31 18:38:36 +0300 |
commit | ae92cf850550a9be965db867ba4bfb5651a18e5f (patch) | |
tree | bbf70ce45cc6e608def6e9a81570febe4528208b /codebase/sources/ext/dhtmlxscheduler_outerdrag.js | |
parent | 2e509c1f562c4f471d766c9b3532370f847f0839 (diff) | |
download | scheduler-ae92cf850550a9be965db867ba4bfb5651a18e5f.zip scheduler-ae92cf850550a9be965db867ba4bfb5651a18e5f.tar.gz scheduler-ae92cf850550a9be965db867ba4bfb5651a18e5f.tar.bz2 |
[update] version 4.4.0
Diffstat (limited to 'codebase/sources/ext/dhtmlxscheduler_outerdrag.js')
-rw-r--r-- | codebase/sources/ext/dhtmlxscheduler_outerdrag.js | 80 |
1 files changed, 49 insertions, 31 deletions
diff --git a/codebase/sources/ext/dhtmlxscheduler_outerdrag.js b/codebase/sources/ext/dhtmlxscheduler_outerdrag.js index 65296b2..61c2bc7 100644 --- a/codebase/sources/ext/dhtmlxscheduler_outerdrag.js +++ b/codebase/sources/ext/dhtmlxscheduler_outerdrag.js @@ -1,6 +1,6 @@ /* @license -dhtmlxScheduler v.4.3.1 +dhtmlxScheduler v.4.4.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. @@ -15,41 +15,45 @@ scheduler.attachEvent("onTemplatesReady", function() { 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) { - if (!scheduler.callEvent("onExternalDragIn", [id, sourceHtmlObject, last_event])) { - this._drag_mode = this._drag_id = null; - this.deleteEvent(id); - } - }); - - var action_data = scheduler.getActionData(last_event); - var event_data = { - start_date: new Date(action_data.date) - }; - - // custom views, need to assign section id, fix dates - if (scheduler.matrix && scheduler.matrix[scheduler._mode]) { - var view_options = scheduler.matrix[scheduler._mode]; - event_data[view_options.y_property] = action_data.section; - - var pos = scheduler._locate_cell_timeline(last_event); - event_data.start_date = view_options._trace_x[pos.x]; - event_data.end_date = scheduler.date.add(event_data.start_date, view_options.x_step, view_options.x_unit); - } - if (scheduler._props && scheduler._props[scheduler._mode]) { - event_data[scheduler._props[scheduler._mode].map_to] = action_data.section; + function on_drop(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) { + if (!scheduler.callEvent("onExternalDragIn", [id, sourceHtmlObject, last_event])) { + this._drag_mode = this._drag_id = null; + this.deleteEvent(id); } + }); + + var action_data = scheduler.getActionData(last_event); + var event_data = { + start_date: new Date(action_data.date) + }; - scheduler.addEventNow(event_data); + // custom views, need to assign section id, fix dates + if (scheduler.matrix && scheduler.matrix[scheduler._mode]) { + var view_options = scheduler.matrix[scheduler._mode]; + event_data[view_options.y_property] = action_data.section; - scheduler.detachEvent(temp); + var pos = scheduler._locate_cell_timeline(last_event); + event_data.start_date = view_options._trace_x[pos.x]; + event_data.end_date = scheduler.date.add(event_data.start_date, view_options.x_step, view_options.x_unit); + } + if (scheduler._props && scheduler._props[scheduler._mode]) { + event_data[scheduler._props[scheduler._mode].map_to] = action_data.section; + } + scheduler.addEventNow(event_data); + + scheduler.detachEvent(temp); + } + + dragger.addDragLanding(scheduler._els["dhx_cal_data"][0], { + _drag: function(sourceHtmlObject, dhtmlObject, targetHtmlObject, targetHtml) { + on_drop(sourceHtmlObject, dhtmlObject, targetHtmlObject, targetHtml); }, _dragIn: function(htmlObject, shtmlObject) { return htmlObject; @@ -58,4 +62,18 @@ scheduler.attachEvent("onTemplatesReady", function() { return this; } }); + + if(dhtmlx.DragControl) { + dhtmlx.DragControl.addDrop(scheduler._els["dhx_cal_data"][0], { + onDrop: function (source, target, d, e) { + var sourceDhtmlx = dhtmlx.DragControl.getMaster(source); + last_event = e; + on_drop(source, sourceDhtmlx, target, e.target || e.srcElement); + }, + + onDragIn: function (source, target, e) { + return target; + } + }, true); + } }); |