Fixed selection summary calculation issue

This commit is contained in:
Vincent Petry 2014-04-10 20:07:02 +02:00
parent c29e8b0bae
commit a15b68c10f
2 changed files with 27 additions and 3 deletions

View file

@ -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();
},

View file

@ -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();