aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authornoveens <noveen.sachdeva@research.iiit.ac.in>2017-03-01 17:27:48 +0530
committerMorris Jobke <hey@morrisjobke.de>2017-03-02 21:43:44 -0600
commit93f9db4d59ec7795fe998d45ae8b49f3581231c0 (patch)
treea760aae2cff3b4b9f37ba441b96797939c73a069 /apps
parent53195b156c68082f1e02e45ba2a266c15ef1bcaa (diff)
downloadnextcloud-server-93f9db4d59ec7795fe998d45ae8b49f3581231c0.tar.gz
nextcloud-server-93f9db4d59ec7795fe998d45ae8b49f3581231c0.zip
filelist only refreshed if directory changes
check introduced at another method comment added to explain one check comment added to explain one check unit tests added small fixes in unit tests missing semicolon added Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Diffstat (limited to 'apps')
-rw-r--r--apps/files/js/filelist.js5
-rw-r--r--apps/files/tests/js/filelistSpec.js18
2 files changed, 23 insertions, 0 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 3a59da53517..1f4b8f0ec68 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -557,6 +557,11 @@
*/
_onUrlChanged: function(e) {
if (e && _.isString(e.dir)) {
+ var currentDir = this.getCurrentDirectory();
+ // this._currentDirectory is NULL when fileList is first initialised
+ if( (this._currentDirectory || this.$el.find('#dir').val()) && currentDir === e.dir) {
+ return;
+ }
this.changeDirectory(e.dir, false, true);
}
},
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index c5a75be7c62..f3c04c48cb3 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -3005,4 +3005,22 @@ describe('OCA.Files.FileList tests', function() {
testMountType(123, 'external-root', 'external', 'external');
});
});
+ describe('file list should not refresh if url does not change', function() {
+ var fileListStub;
+
+ beforeEach(function() {
+ fileListStub = sinon.stub(OCA.Files.FileList.prototype, 'changeDirectory');
+ });
+ afterEach(function() {
+ fileListStub.restore();
+ });
+ it('File list must not be refreshed', function() {
+ $('#app-content-files').trigger(new $.Event('urlChanged', {dir: '/subdir'}));
+ expect(fileListStub.notCalled).toEqual(true);
+ });
+ it('File list must be refreshed', function() {
+ $('#app-content-files').trigger(new $.Event('urlChanged', {dir: '/'}));
+ expect(fileListStub.notCalled).toEqual(false);
+ });
+ });
});