Add drop zone for favorites quick access in navigation

Signed-off-by: fnuesse <felix.nuesse@t-online.de>
This commit is contained in:
fnuesse 2018-12-07 18:33:05 +01:00 committed by Daniel Calviño Sánchez
parent 4b32e1c6ab
commit f13b3ab4ae
3 changed files with 48 additions and 0 deletions

View File

@ -120,6 +120,9 @@
.nav-icon-deletedshares { .nav-icon-deletedshares {
@include icon-color('unshare', 'files', $color-black); @include icon-color('unshare', 'files', $color-black);
} }
.nav-icon-favorites-starred {
@include icon-color('star-dark', 'actions', $color-yellow, 2, true);
}
#app-navigation .nav-files a.nav-icon-files { #app-navigation .nav-files a.nav-icon-files {
width: auto; width: auto;

View File

@ -360,6 +360,10 @@
this.$fileList.on('click','td.filename>a.name, td.filesize, td.date', _.bind(this._onClickFile, this)); this.$fileList.on('click','td.filename>a.name, td.filesize, td.date', _.bind(this._onClickFile, this));
this.$fileList.on("droppedOnFavorites", function (event, file) {
self.fileActions.triggerAction('Favorite', self.getModelForFile(file), self);
});
this.$fileList.on('droppedOnTrash', function (event, filename, directory) { this.$fileList.on('droppedOnTrash', function (event, filename, directory) {
self.do_delete(filename, directory); self.do_delete(filename, directory);
}); });

View File

@ -224,6 +224,47 @@
var list = quickAccessMenu.getElementsByTagName('li'); var list = quickAccessMenu.getElementsByTagName('li');
this.QuickSort(list, 0, list.length - 1); this.QuickSort(list, 0, list.length - 1);
} }
var favoritesListElement = $(quickAccessMenu).parent();
favoritesListElement.droppable({
over: function (event, ui) {
favoritesListElement.addClass('dropzone-background');
},
out: function (event, ui) {
favoritesListElement.removeClass('dropzone-background');
},
activate: function (event, ui) {
var element = favoritesListElement.find('a').first();
element.addClass('nav-icon-favorites-starred').removeClass('nav-icon-favorites');
},
deactivate: function (event, ui) {
var element = favoritesListElement.find('a').first();
element.addClass('nav-icon-favorites').removeClass('nav-icon-favorites-starred');
},
drop: function (event, ui) {
favoritesListElement.removeClass('dropzone-background');
var $selectedFiles = $(ui.draggable);
if (ui.helper.find('tr').size() === 1) {
var $tr = $selectedFiles.closest('tr');
if ($tr.attr("data-favorite")) {
return;
}
$selectedFiles.trigger('droppedOnFavorites', $tr.attr('data-file'));
} else {
// FIXME: besides the issue described for dropping on
// the trash bin, for favoriting it is not possible to
// use the data from the helper; due to some bugs the
// tags are not always added to the selected files, and
// thus that data can not be accessed through the helper
// to prevent triggering the favorite action on an
// already favorited file (which would remove it from
// favorites).
OC.Notification.showTemporary(t('files', 'You can only favorite a single file or folder at a time'));
}
}
});
}, },
/** /**