From 2b0fbf7b89b3b7dc6a1382169ee4899a17e12bc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20N=C3=BCsse?= Date: Tue, 28 Aug 2018 18:21:46 +0200 Subject: [PATCH 1/4] Added Trash-Dropzone to easily dispose of files and folders MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Felix Nüsse --- apps/files/js/filelist.js | 8 ++++++++ apps/files/js/navigation.js | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 154209ca97..c6e603e0c9 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -342,6 +342,14 @@ this.$fileList.on('click','td.filename>a.name, td.filesize, td.date', _.bind(this._onClickFile, this)); + $.event.trigger({type: "droppedOnTrash"}); + + var self=this; + this.$fileList.on("droppedOnTrash", function (event, filename, directory) { + //self.fileActions.triggerAction('Favorite', self.getModelForFile(file), self); + self.do_delete(filename, directory) + }); + this.$fileList.on('change', 'td.selection>.selectCheckBox', _.bind(this._onClickFileCheckbox, this)); this.$el.on('show', _.bind(this._onShow, this)); this.$el.on('urlChanged', _.bind(this._onUrlChanged, this)); diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js index 9fc2180c92..d8b249411f 100644 --- a/apps/files/js/navigation.js +++ b/apps/files/js/navigation.js @@ -64,6 +64,23 @@ _setupEvents: function () { this.$el.on('click', 'li a', _.bind(this._onClickItem, this)) this.$el.on('click', 'li button', _.bind(this._onClickMenuButton, this)); + + $(".nav-trashbin").droppable({ + drop: function( event, ui ) { + + var $selectedFiles = $(ui.draggable); + + if (ui.helper.find("tr").size()===1) { + var $tr = $selectedFiles.closest('tr'); + $selectedFiles.trigger("droppedOnTrash", $tr.attr("data-file"), $tr.attr('data-dir')); + }else{ + var item = ui.helper.find("tr"); + for(var i=0; i Date: Wed, 29 Aug 2018 11:53:43 +0200 Subject: [PATCH 2/4] Added Dropzone-Highlighting to Trash MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Felix Nüsse --- apps/files/css/files.scss | 3 +++ apps/files/js/navigation.js | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/apps/files/css/files.scss b/apps/files/css/files.scss index bd57f1907f..77e39d87af 100644 --- a/apps/files/css/files.scss +++ b/apps/files/css/files.scss @@ -102,6 +102,9 @@ .nav-icon-trashbin { @include icon-color('delete', 'files', $color-black); } +.nav-icon-trashbin-starred { + @include icon-color('delete', 'files', #ff0000); +} .nav-icon-deletedshares { @include icon-color('unshare', 'files', $color-black); } diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js index d8b249411f..1fed29471f 100644 --- a/apps/files/js/navigation.js +++ b/apps/files/js/navigation.js @@ -65,7 +65,23 @@ this.$el.on('click', 'li a', _.bind(this._onClickItem, this)) this.$el.on('click', 'li button', _.bind(this._onClickMenuButton, this)); - $(".nav-trashbin").droppable({ + var favListElement=$(".nav-trashbin"); + console.log(favListElement); + favListElement.droppable({ + over: function( event, ui ) { + favListElement.addClass('dropzone-background') + }, + out: function( event, ui ) { + favListElement.removeClass('dropzone-background'); + }, + activate: function( event, ui ) { + var elem=favListElement.find("a").first(); + elem.addClass('nav-icon-trashbin-starred').removeClass('nav-icon-trashbin'); + }, + deactivate: function( event, ui ) { + var elem=favListElement.find("a").first(); + elem.addClass('nav-icon-trashbin').removeClass('nav-icon-trashbin-starred'); + }, drop: function( event, ui ) { var $selectedFiles = $(ui.draggable); From 91d1154ee043246fca5d9e492c7e67e442d76013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20N=C3=BCsse?= Date: Wed, 29 Aug 2018 11:59:20 +0200 Subject: [PATCH 3/4] Fixed highlightdelay on first drag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Felix Nüsse --- apps/files/js/navigation.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js index 1fed29471f..8f2d84d207 100644 --- a/apps/files/js/navigation.js +++ b/apps/files/js/navigation.js @@ -66,7 +66,9 @@ this.$el.on('click', 'li button', _.bind(this._onClickMenuButton, this)); var favListElement=$(".nav-trashbin"); - console.log(favListElement); + + //this div is required to prefetch the icon, otherwise it takes a second to show up + favListElement.append("") favListElement.droppable({ over: function( event, ui ) { favListElement.addClass('dropzone-background') From df7e016104f284c29f9c8571d548b64008f1a626 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20N=C3=BCsse?= Date: Wed, 29 Aug 2018 12:00:10 +0200 Subject: [PATCH 4/4] Refactored Variablename to trashElement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Felix Nüsse --- apps/files/js/navigation.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js index 8f2d84d207..b3648fedc6 100644 --- a/apps/files/js/navigation.js +++ b/apps/files/js/navigation.js @@ -65,23 +65,23 @@ this.$el.on('click', 'li a', _.bind(this._onClickItem, this)) this.$el.on('click', 'li button', _.bind(this._onClickMenuButton, this)); - var favListElement=$(".nav-trashbin"); + var trashElement=$(".nav-trashbin"); //this div is required to prefetch the icon, otherwise it takes a second to show up - favListElement.append("") - favListElement.droppable({ + trashElement.append("") + trashElement.droppable({ over: function( event, ui ) { - favListElement.addClass('dropzone-background') + trashElement.addClass('dropzone-background') }, out: function( event, ui ) { - favListElement.removeClass('dropzone-background'); + trashElement.removeClass('dropzone-background'); }, activate: function( event, ui ) { - var elem=favListElement.find("a").first(); + var elem=trashElement.find("a").first(); elem.addClass('nav-icon-trashbin-starred').removeClass('nav-icon-trashbin'); }, deactivate: function( event, ui ) { - var elem=favListElement.find("a").first(); + var elem=trashElement.find("a").first(); elem.addClass('nav-icon-trashbin').removeClass('nav-icon-trashbin-starred'); }, drop: function( event, ui ) {