diff options
author | Vincent Petry <pvince81@owncloud.com> | 2017-04-20 14:59:08 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2017-04-26 13:51:44 +0200 |
commit | 3f36548a6d7c67857bf8fed1de7a81828e4c14a3 (patch) | |
tree | 57c8b8a180049376d93006147782f3df7dff26b3 | |
parent | 5b5c3a1773dab4960d41aafc4150859a308311b7 (diff) | |
download | nextcloud-server-3f36548a6d7c67857bf8fed1de7a81828e4c14a3.tar.gz nextcloud-server-3f36548a6d7c67857bf8fed1de7a81828e4c14a3.zip |
Reload file list when leaving hidden state
Whenever a file list is already initialized and was hidden when
switching to another file list in the navigation bar, if the user comes
back to this list it gets redisplayed. At this point the list needs to
be refreshed to be able to reflect any potential file changes done from
the other lists.
-rw-r--r-- | apps/files/js/filelist.js | 8 | ||||
-rw-r--r-- | apps/files/tests/js/filelistSpec.js | 6 |
2 files changed, 14 insertions, 0 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 0fcb10a21ee..6b5b5a2daef 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -327,6 +327,7 @@ this.$fileList.on('click','td.filename>a.name, td.filesize, td.date', _.bind(this._onClickFile, this)); this.$fileList.on('change', 'td.filename>.selectCheckBox', _.bind(this._onClickFileCheckbox, this)); + this.$el.on('show', _.bind(this._onShow, this)); this.$el.on('urlChanged', _.bind(this._onUrlChanged, this)); this.$el.find('.select-all').click(_.bind(this._onClickSelectAll, this)); this.$el.find('.download').click(_.bind(this._onClickDownloadSelected, this)); @@ -553,6 +554,13 @@ }, /** + * Event handler when leaving previously hidden state + */ + _onShow: function(e) { + this.reload(); + }, + + /** * Event handler for when the URL changed */ _onUrlChanged: function(e) { diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index ee73914f166..934aa054fb6 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -1507,6 +1507,12 @@ describe('OCA.Files.FileList tests', function() { $('#app-content-files').trigger(new $.Event('urlChanged', {view: 'files', dir: '/somedir'})); expect(fileList.getCurrentDirectory()).toEqual('/somedir'); }); + it('reloads the list when leaving hidden state', function() { + var reloadStub = sinon.stub(fileList, 'reload'); + $('#app-content-files').trigger(new $.Event('show')); + expect(reloadStub.calledOnce).toEqual(true); + reloadStub.restore(); + }); it('refreshes breadcrumb after update', function() { var setDirSpy = sinon.spy(fileList.breadcrumb, 'setDirectory'); fileList.changeDirectory('/anothersubdir'); |