From: Vincent Petry Date: Thu, 10 Apr 2014 18:07:02 +0000 (+0200) Subject: Fixed selection summary calculation issue X-Git-Tag: v7.0.0alpha2~339^2~2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a15b68c10fa7401dc4b30a173c80084bf114dde9;p=nextcloud-server.git Fixed selection summary calculation issue --- diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 723a22f24e8..f9916b647b2 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -194,6 +194,7 @@ window.FileList = { this.$fileList.find('td.filename input:checkbox').prop('checked', checked) .closest('tr').toggleClass('selected', checked); this._selectedFiles = {}; + this._selectionSummary.clear(); if (checked) { for (var i = 0; i < this.files.length; i++) { var fileData = this.files[i]; @@ -201,9 +202,6 @@ window.FileList = { this._selectionSummary.add(fileData); } } - else { - this._selectionSummary.clear(); - } this.updateSelectionSummary(); }, diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index be285a7b636..da209220cca 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -1118,6 +1118,32 @@ describe('FileList tests', function() { expect($('#select_all').prop('checked')).toEqual(false); expect(_.pluck(FileList.getSelectedFiles(), 'name').length).toEqual(3); }); + it('Updates the selection summary when doing a few manipulations with "Select all"', function() { + $('#select_all').click(); + expect($('#select_all').prop('checked')).toEqual(true); + + var $tr = FileList.findFileEl('One.txt'); + // unselect one + $tr.find('input:checkbox').click(); + + expect($('#select_all').prop('checked')).toEqual(false); + expect(_.pluck(FileList.getSelectedFiles(), 'name').length).toEqual(3); + + // select all + $('#select_all').click(); + expect($('#select_all').prop('checked')).toEqual(true); + expect(_.pluck(FileList.getSelectedFiles(), 'name').length).toEqual(4); + + // unselect one + $tr.find('input:checkbox').click(); + expect($('#select_all').prop('checked')).toEqual(false); + expect(_.pluck(FileList.getSelectedFiles(), 'name').length).toEqual(3); + + // re-select it + $tr.find('input:checkbox').click(); + expect($('#select_all').prop('checked')).toEqual(true); + expect(_.pluck(FileList.getSelectedFiles(), 'name').length).toEqual(4); + }); it('Auto-selects files on next page when "select all" is checked', function() { FileList.setFiles(generateFiles(0, 41)); $('#select_all').click();