aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2018-11-23 08:51:22 +0100
committerGitHub <noreply@github.com>2018-11-23 08:51:22 +0100
commitc6232291a08f17ba2c13642c9c469977d7fb69ee (patch)
tree8449c701a331a2a83b50bde724d113f5d019ce7b /apps/files
parentb2891507004ff80b12812e0775fc39285c840d26 (diff)
parente3d90efdbb6a4f8c0030c52c74b8baea00f32146 (diff)
downloadnextcloud-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.js10
-rw-r--r--apps/files/js/filelist.js26
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() {