diff --git a/apps/files/css/files.scss b/apps/files/css/files.scss index bd57f1907f512..4800de9879eb2 100644 --- a/apps/files/css/files.scss +++ b/apps/files/css/files.scss @@ -88,6 +88,11 @@ .nav-icon-favorites { @include icon-color('star-dark', 'actions', $color-black, 2, true); } + +.nav-icon-favorites-starred { + @include icon-color('star-dark', 'actions', $color-yellow, 2, true); +} + .nav-icon-sharingin, .nav-icon-sharingout, .nav-icon-shareoverview { @@ -693,7 +698,11 @@ table.dragshadow td.size { .breadcrumb .canDrop > a, #filestable tbody tr.canDrop { - background-color: rgb(179, 230, 255); + background-color: rgba( $color-primary, .3 ); +} + +.dropzone-background { + background-color: rgba( $color-primary, .3 ); } diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 154209ca9754b..11eabd69a1be2 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -342,6 +342,12 @@ this.$fileList.on('click','td.filename>a.name, td.filesize, td.date', _.bind(this._onClickFile, this)); + $.event.trigger({type: "droppedOnFavorites"}); + var self=this; + this.$fileList.on("droppedOnFavorites", function (event, file) { + self.fileActions.triggerAction('Favorite', self.getModelForFile(file), self); + }); + 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/files.js b/apps/files/js/files.js index 094fb81d78b89..67162e9d49144 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -392,7 +392,8 @@ var createDragShadow = function(event) { var newtr = $('') .attr('data-dir', dir) .attr('data-file', elem.name) - .attr('data-origin', elem.origin); + .attr('data-origin', elem.origin) + .attr('data-favorite', elem.tags.includes("_$!!$_")); newtr.append($('').text(elem.name).css('background-size', 32)); newtr.append($('').text(OC.Util.humanFileSize(elem.size))); tbody.append(newtr); diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js index 9fc2180c923f4..e3f3820cdad89 100644 --- a/apps/files/js/navigation.js +++ b/apps/files/js/navigation.js @@ -187,6 +187,37 @@ var list = quickAccessMenu.getElementsByTagName('li'); this.QuickSort(list, 0, list.length - 1); } + + var favListElement=$(quickAccessMenu).parent(); + favListElement.append("") + 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-favorites-starred').removeClass('nav-icon-favorites'); + }, + deactivate: function( event, ui ) { + var elem=favListElement.find("a").first(); + elem.addClass('nav-icon-favorites').removeClass('nav-icon-favorites-starred'); + }, + drop: function( event, ui ) { + 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{ + OC.Notification.showTemporary(t('files', 'You can only add single Folders to the Favorites')); + } + } + }); }, /** diff --git a/core/css/icons.scss b/core/css/icons.scss index ca2a179d48fea..05f50491b5234 100644 --- a/core/css/icons.scss +++ b/core/css/icons.scss @@ -282,13 +282,13 @@ img, object, video, button, textarea, input, select, div[contenteditable='true'] &:focus { @include icon-color('star', 'actions', $color-black, 1, true); } - @include icon-color('star-dark', 'actions', 'FC0', 1, true); + @include icon-color('star-dark', 'actions', $color-yellow, 1, true); } .icon-star { &:hover, &:focus { - @include icon-color('star-dark', 'actions', 'FC0', 1, true); + @include icon-color('star-dark', 'actions', $color-yellow, 1, true); } } diff --git a/core/css/variables.scss b/core/css/variables.scss index f5b97c9b8795d..3b7a36e271725 100644 --- a/core/css/variables.scss +++ b/core/css/variables.scss @@ -52,6 +52,7 @@ $color-success: #46ba61; // used for svg $color-white: #fff; $color-black: #000; +$color-yellow: #FC0; // rgb(118, 118, 118) / #767676 // min. color contrast for normal text on white background according to WCAG AA