diff options
author | Vincent Petry <pvince81@owncloud.com> | 2016-02-15 14:58:44 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2016-02-15 14:58:44 +0100 |
commit | d565290d16ac708a3ae561d564484acc0fac0610 (patch) | |
tree | 638c6e817178ebdeae1dd1cd125fb60004653a34 | |
parent | 46b39c3465e2db9ba26b23d8d0dfca6cc670aaea (diff) | |
download | nextcloud-server-d565290d16ac708a3ae561d564484acc0fac0610.tar.gz nextcloud-server-d565290d16ac708a3ae561d564484acc0fac0610.zip |
Close file detail sidebar when selecting/unselecting files
Interacting with the checkboxes, also "Select all" will automatically
close the sidebar now.
-rw-r--r-- | apps/files/js/filelist.js | 14 | ||||
-rw-r--r-- | apps/files/tests/js/filelistSpec.js | 31 |
2 files changed, 36 insertions, 9 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 1a6f38d3d7c..dd03b0c895a 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -510,8 +510,9 @@ delete this._selectedFiles[$tr.data('id')]; this._selectionSummary.remove(data); } - if (this._detailsView && this._selectionSummary.getTotal() === 1 && !this._detailsView.$el.hasClass('disappear')) { - this._updateDetailsView(_.values(this._selectedFiles)[0].name); + if (this._detailsView && !this._detailsView.$el.hasClass('disappear')) { + // hide sidebar + this._updateDetailsView(null); } this.$el.find('.select-all').prop('checked', this._selectionSummary.getTotal() === this.files.length); }, @@ -591,8 +592,9 @@ this._selectFileEl($tr, state); this._lastChecked = $tr; this.updateSelectionSummary(); - if (state) { - this._updateDetailsView($tr.attr('data-file')); + if (this._detailsView && !this._detailsView.$el.hasClass('disappear')) { + // hide sidebar + this._updateDetailsView(null); } }, @@ -613,6 +615,10 @@ } } this.updateSelectionSummary(); + if (this._detailsView && !this._detailsView.$el.hasClass('disappear')) { + // hide sidebar + this._updateDetailsView(null); + } }, /** diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 0091a9ee6e4..ed56011866e 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -86,7 +86,7 @@ describe('OCA.Files.FileList tests', function() { '<table id="filestable">' + '<thead><tr>' + '<th id="headerName" class="hidden column-name">' + - '<input type="checkbox" id="select_all_files" class="select-all">' + + '<input type="checkbox" id="select_all_files" class="select-all checkbox">' + '<a class="name columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' + '<span id="selectedActionsList" class="selectedActions hidden">' + '<a href class="download"><img src="actions/download.svg">Download</a>' + @@ -1969,14 +1969,35 @@ describe('OCA.Files.FileList tests', function() { expect($tr.hasClass('highlighted')).toEqual(true); expect(fileList._detailsView.getFileInfo().id).toEqual(1); }); - it('keeps the last highlighted file when unselecting file using checkbox', function() { + it('removes last highlighted file when selecting via checkbox', function() { var $tr = fileList.findFileEl('One.txt'); + + // select + $tr.find('td.filename>a.name').click(); $tr.find('input:checkbox').click(); - expect($tr.hasClass('highlighted')).toEqual(true); + expect($tr.hasClass('highlighted')).toEqual(false); + + // deselect + $tr.find('td.filename>a.name').click(); $tr.find('input:checkbox').click(); + expect($tr.hasClass('highlighted')).toEqual(false); - expect($tr.hasClass('highlighted')).toEqual(true); - expect(fileList._detailsView.getFileInfo().id).toEqual(1); + expect(fileList._detailsView.getFileInfo()).toEqual(null); + }); + it('removes last highlighted file when selecting all files via checkbox', function() { + var $tr = fileList.findFileEl('One.txt'); + + // select + $tr.find('td.filename>a.name').click(); + fileList.$el.find('.select-all.checkbox').click(); + expect($tr.hasClass('highlighted')).toEqual(false); + + // deselect + $tr.find('td.filename>a.name').click(); + fileList.$el.find('.select-all.checkbox').click(); + expect($tr.hasClass('highlighted')).toEqual(false); + + expect(fileList._detailsView.getFileInfo()).toEqual(null); }); it('closes sidebar whenever the currently highlighted file was removed from the list', function() { var $tr = fileList.findFileEl('One.txt'); |