diff options
author | Vincent Petry <pvince81@owncloud.com> | 2016-05-13 17:12:36 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2016-05-13 17:12:36 +0200 |
commit | 88da2966b49e378fa458e5da6dfa6feedd415b21 (patch) | |
tree | 52a18d0908eb52a91fc18ddf53ea37388eaa45a0 /apps | |
parent | ddea34f95918151529e18988e188ba913bed2c8f (diff) | |
parent | 48430d4481456425422163ed5a46e9e0fcd35ecd (diff) | |
download | nextcloud-server-88da2966b49e378fa458e5da6dfa6feedd415b21.tar.gz nextcloud-server-88da2966b49e378fa458e5da6dfa6feedd415b21.zip |
Merge pull request #22341 from owncloud/pellaeon-pr-breadcrumb-filelist-overlap-drop
Handle case when breadcrumb and filelist item overlap and both receive a drop
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files/js/breadcrumb.js | 6 | ||||
-rw-r--r-- | apps/files/js/filelist.js | 13 |
2 files changed, 19 insertions, 0 deletions
diff --git a/apps/files/js/breadcrumb.js b/apps/files/js/breadcrumb.js index 364475e4a4f..58ac9924ef7 100644 --- a/apps/files/js/breadcrumb.js +++ b/apps/files/js/breadcrumb.js @@ -39,6 +39,8 @@ } if (options.onDrop) { this.onDrop = options.onDrop; + this.onOver = options.onOver; + this.onOut = options.onOut; } if (options.getCrumbUrl) { this.getCrumbUrl = options.getCrumbUrl; @@ -60,6 +62,8 @@ breadcrumbs: [], onClick: null, onDrop: null, + onOver: null, + onOut: null, /** * Sets the directory to be displayed as breadcrumb. @@ -127,6 +131,8 @@ if (this.onDrop) { this.$el.find('.crumb:not(.last)').droppable({ drop: this.onDrop, + over: this.onOver, + out: this.onOut, tolerance: 'pointer' }); } diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 9395112bce3..ef29a4844bf 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -271,6 +271,12 @@ // if dropping on folders is allowed, then also allow on breadcrumbs if (this._folderDropOptions) { breadcrumbOptions.onDrop = _.bind(this._onDropOnBreadCrumb, this); + breadcrumbOptions.onOver = function() { + self.$el.find('td.filename.ui-droppable').droppable('disable'); + } + breadcrumbOptions.onOut = function() { + self.$el.find('td.filename.ui-droppable').droppable('enable'); + } } this.breadcrumb = new OCA.Files.BreadCrumb(breadcrumbOptions); @@ -785,6 +791,13 @@ } this.move(_.pluck(files, 'name'), targetPath); + + // re-enable td elements to be droppable + // sometimes the filename drop handler is still called after re-enable, + // it seems that waiting for a short time before re-enabling solves the problem + setTimeout(function() { + self.$el.find('td.filename.ui-droppable').droppable('enable'); + }, 10); }, /** |