Fix some errors thrown on the JS console when dragging text in the Query Tool. Fixes #4552

This commit is contained in:
Aditya Toshniwal
2019-08-02 11:28:57 +01:00
committed by Dave Page
parent 0cfd76c279
commit 99a8b70e00
3 changed files with 30 additions and 17 deletions

View File

@@ -134,11 +134,15 @@ export class Tree {
let dropDetailsFunc = this.getDraggable(data._type);
if(dropDetailsFunc != null) {
/* addEventListener is used here because import jquery.drag.event
* overrides the dragstart event set using element.on('dragstart')
* This will avoid conflict.
*/
item.find('.aciTreeItem')
.attr('draggable', true)
.on('dragstart', (e)=> {
.attr('draggable', true)[0]
.addEventListener('dragstart', (e)=> {
let dropDetails = dropDetailsFunc(data, item);
let origEvent = e.originalEvent;
if(typeof dropDetails == 'string') {
dropDetails = {
@@ -160,16 +164,16 @@ export class Tree {
}
}
origEvent.dataTransfer.setData('text', JSON.stringify(dropDetails));
e.dataTransfer.setData('text', JSON.stringify(dropDetails));
/* Required by Firefox */
if(origEvent.dataTransfer.dropEffect) {
origEvent.dataTransfer.dropEffect = 'move';
if(e.dataTransfer.dropEffect) {
e.dataTransfer.dropEffect = 'move';
}
/* setDragImage is not supported in IE. We leave it to
* its default look and feel
*/
if(origEvent.dataTransfer.setDragImage) {
if(e.dataTransfer.setDragImage) {
let dragItem = $(`
<div class="drag-tree-node">
<span>${_.escape(dropDetails.text)}</span>
@@ -179,7 +183,7 @@ export class Tree {
$('body .drag-tree-node').remove();
$('body').append(dragItem);
origEvent.dataTransfer.setDragImage(dragItem[0], 0, 0);
e.dataTransfer.setDragImage(dragItem[0], 0, 0);
}
});
}