diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index db85caf65f..187ede8c0b 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -91,6 +91,12 @@ */ initialized: false, + /** + * Wheater the file list was already shown once + * @type boolean + */ + shown: false, + /** * Number of files per page * @@ -557,7 +563,10 @@ * Event handler when leaving previously hidden state */ _onShow: function(e) { - this.reload(); + if (this.shown) { + this.reload(); + } + this.shown = true; }, /** diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 934aa054fb..6b403e7fa8 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -1509,6 +1509,12 @@ describe('OCA.Files.FileList tests', function() { }); it('reloads the list when leaving hidden state', function() { var reloadStub = sinon.stub(fileList, 'reload'); + + // First show should not trigger + $('#app-content-files').trigger(new $.Event('show')); + expect(reloadStub.calledOnce).toEqual(false); + + // Second show should! $('#app-content-files').trigger(new $.Event('show')); expect(reloadStub.calledOnce).toEqual(true); reloadStub.restore();