diff options
author | Morris Jobke <hey@morrisjobke.de> | 2018-11-23 08:51:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-23 08:51:22 +0100 |
commit | c6232291a08f17ba2c13642c9c469977d7fb69ee (patch) | |
tree | 8449c701a331a2a83b50bde724d113f5d019ce7b /apps/files | |
parent | b2891507004ff80b12812e0775fc39285c840d26 (diff) | |
parent | e3d90efdbb6a4f8c0030c52c74b8baea00f32146 (diff) | |
download | nextcloud-server-c6232291a08f17ba2c13642c9c469977d7fb69ee.tar.gz nextcloud-server-c6232291a08f17ba2c13642c9c469977d7fb69ee.zip |
Merge pull request #12598 from nextcloud/stable14-12577-fix-rendering-of-the-sidebar-in-files-app
[stable14] Fix rendering of the sidebar in Files app
Diffstat (limited to 'apps/files')
-rw-r--r-- | apps/files/js/detailsview.js | 10 | ||||
-rw-r--r-- | apps/files/js/filelist.js | 26 |
2 files changed, 25 insertions, 11 deletions
diff --git a/apps/files/js/detailsview.js b/apps/files/js/detailsview.js index aed1736693a..7e2a5f0e8a9 100644 --- a/apps/files/js/detailsview.js +++ b/apps/files/js/detailsview.js @@ -117,16 +117,6 @@ * Renders this details view */ render: function() { - // remove old instances - var $appSidebar = $('#app-sidebar'); - if ($appSidebar.length === 0) { - this.$el.insertAfter($('#app-content')); - } else { - if ($appSidebar[0] !== this.el) { - $appSidebar.replaceWith(this.$el) - } - } - var templateVars = { closeLabel: t('files', 'Close') }; diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 7d4dc76daf0..93a695e9696 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -568,12 +568,36 @@ } this._currentFileModel = model; + + this._replaceDetailsViewElementIfNeeded(); + this._detailsView.setFileInfo(model); - this._detailsView.render(); this._detailsView.$el.scrollTop(0); }, /** + * Replaces the current details view element with the details view + * element of this file list. + * + * Each file list has its own DetailsView object, and each one has its + * own root element, but there can be just one details view/sidebar + * element in the document. This helper method replaces the current + * details view/sidebar element in the document with the element from + * the DetailsView object of this file list. + */ + _replaceDetailsViewElementIfNeeded: function() { + var $appSidebar = $('#app-sidebar'); + if ($appSidebar.length === 0) { + this._detailsView.$el.insertAfter($('#app-content')); + } else if ($appSidebar[0] !== this._detailsView.el) { + // "replaceWith()" can not be used here, as it removes the old + // element instead of just detaching it. + this._detailsView.$el.insertBefore($appSidebar); + $appSidebar.detach(); + } + }, + + /** * Event handler for when the window size changed */ _onResize: function() { |