From e01314f338c8ad9330b2894d882139a049994932 Mon Sep 17 00:00:00 2001 From: Jared Hancock Date: Mon, 11 Feb 2019 20:30:27 -0600 Subject: [PATCH] filedrop: Fix file drag and drop This fixes an issue introduced in the upgrade to jQuery three. The filedrop field was not updated correctly and drag and drop files was broken. Additionally, this handles cases where files are dragged over the box but not dropped. The style of the box is correctly reset after the drag leaves the box. --- js/filedrop.field.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/js/filedrop.field.js b/js/filedrop.field.js index 42b94e70fb..ab5559af31 100644 --- a/js/filedrop.field.js +++ b/js/filedrop.field.js @@ -11,6 +11,7 @@ progressUpdated: $.proxy(this.progressUpdated, this), speedUpdated: $.proxy(this.speedUpdated, this), dragOver: $.proxy(this.dragOver, this), + dragLeave: $.proxy(this.dragLeave, this), drop: $.proxy(this.drop, this), beforeSend: $.proxy(this.beforeSend, this), beforeEach: $.proxy(this.beforeEach, this), @@ -29,6 +30,9 @@ }; FileDropbox.prototype = { + dragLeave: function(e) { + this.$element.removeAttr('style'); + }, drop: function(e) { this.$element.removeAttr('style'); }, @@ -361,9 +365,9 @@ function drop(e) { if( opts.drop.call(this, e) === false ) return false; - if(!e.dataTransfer) + if(!e.originalEvent.dataTransfer) return; - files = e.dataTransfer.files; + files = e.originalEvent.dataTransfer.files; if (files === null || files === undefined || files.length === 0) { opts.error(errors[0]); return false;