Add drop zone for favorites quick access in navigation
Signed-off-by: fnuesse <felix.nuesse@t-online.de>
This commit is contained in:
parent
4b32e1c6ab
commit
f13b3ab4ae
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
});
|
});
|
||||||
|
|
|
@ -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'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue