summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/js/filelist.js8
-rw-r--r--apps/files/tests/js/filelistSpec.js28
2 files changed, 34 insertions, 2 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index c53fa4f3d66..d32c3ba7c9e 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -923,7 +923,8 @@
tr,
fileData,
newTrs = [],
- isAllSelected = this.isAllSelected();
+ isAllSelected = this.isAllSelected(),
+ showHidden = this._filesConfig.get('showhidden');
if (index >= this.files.length) {
return false;
@@ -947,7 +948,10 @@
}
newTrs.push(tr);
index++;
- count--;
+ // only count visible rows
+ if (showHidden || !tr.hasClass('hidden-file')) {
+ count--;
+ }
}
// trigger event for newly added rows
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index 15dab3b9882..d8fc3907d78 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -1120,6 +1120,34 @@ describe('OCA.Files.FileList tests', function() {
expect(fileList.files.length).toEqual(65);
expect($('#fileList tr').length).toEqual(20);
});
+ it('renders the full first page despite hidden rows', function() {
+ filesConfig.set('showhidden', false);
+ var files = _.map(generateFiles(0, 23), function(data) {
+ return _.extend(data, {
+ name: '.' + data.name
+ });
+ });
+ // only hidden files + one visible
+ files.push(testFiles[0]);
+ fileList.setFiles(files);
+ expect(fileList.files.length).toEqual(25);
+ // render 24 hidden elements + the visible one
+ expect($('#fileList tr').length).toEqual(25);
+ });
+ it('renders the full first page despite hidden rows', function() {
+ filesConfig.set('showhidden', true);
+ var files = _.map(generateFiles(0, 23), function(data) {
+ return _.extend(data, {
+ name: '.' + data.name
+ });
+ });
+ // only hidden files + one visible
+ files.push(testFiles[0]);
+ fileList.setFiles(files);
+ expect(fileList.files.length).toEqual(25);
+ // render 20 first hidden elements as visible
+ expect($('#fileList tr').length).toEqual(20);
+ });
it('renders the second page when scrolling down (trigger nextPage)', function() {
// TODO: can't simulate scrolling here, so calling nextPage directly
fileList._nextPage(true);