From 40f5aafa9f592b2e0826d32848032f53081a669e Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 15 Aug 2017 12:46:06 +0200 Subject: [PATCH 1/3] Fix getting drop target when dragging from file manager Related to jquery.fileupload upgrade, the event has moved --- apps/files/js/filelist.js | 2 +- apps/files/tests/js/filelistSpec.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 94368c712937..defb4f5b6f40 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -2702,7 +2702,7 @@ return false; } - var dropTarget = $(e.originalEvent.target); + var dropTarget = $(e.originalEvent.delegatedEvent.target); // check if dropped inside this container and not another one if (dropTarget.length && !self.$el.is(dropTarget) // dropped on list directly diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index e7b0adf2f861..2f6c151f7c1d 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -2649,7 +2649,9 @@ describe('OCA.Files.FileList tests', function() { function dropOn($target, data) { var eventData = { originalEvent: { - target: $target + delegatedEvent: { + target: $target + } } }; uploader.trigger('drop', eventData, data || {}); From 8e30bb8644ce65b31ed11d9decc81a97093b70cb Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 31 Aug 2017 15:24:48 +0200 Subject: [PATCH 2/3] Always pass requesttoken on uploads --- apps/files/js/file-upload.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index 050c333793c0..190934bcf2fb 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -251,6 +251,7 @@ OC.FileUpload.prototype = { this.data.headers['Authorization'] = 'Basic ' + btoa(userName + ':' + (password || '')); } + this.data.headers['requesttoken'] = OC.requestToken; var chunkFolderPromise; if ($.support.blobSlice From 8a692781365245fa6aee925b01e8ffddad9642f8 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 31 Aug 2017 15:25:02 +0200 Subject: [PATCH 3/3] Progress bar must disappear at the of upload When uploading multiple files into a target folder, sometimes the progress bar does not disappear. --- apps/files/js/file-upload.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index 190934bcf2fb..cae1dbdd1481 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -1196,11 +1196,15 @@ OC.Uploader.prototype = _.extend({ fileupload.on('fileuploaddone', function(e, data) { var upload = self.getUpload(data); upload.done().then(function() { - // don't hide if there are more files to process - if (!self.isProcessing()) { - self._hideProgressBar(); - } self.trigger('done', e, upload); + // defer because sometimes the current upload is still in pending + // state but frees itself afterwards + _.defer(function() { + // don't hide if there are more files to process + if (!self.isProcessing()) { + self._hideProgressBar(); + } + }); }).fail(function(status, response) { var message = response.message; self._hideProgressBar();