From 8a6574e81a7c0d44c908ce2b4740f004124f63c8 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 13 Aug 2015 12:55:22 +0200 Subject: [PATCH 1/2] Keep right sidebar open, add Details action --- apps/files/js/filelist.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index c52e414e3a7..d8d73c8a00c 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -219,6 +219,17 @@ this._detailsView.addDetailView(new OCA.Files.MainFileInfoDetailView({fileList: this, fileActions: this.fileActions})); this._detailsView.$el.insertBefore(this.$el); this._detailsView.$el.addClass('disappear'); + + this.fileActions.registerAction({ + name: 'Details', + mime: 'all', + permissions: OC.PERMISSION_READ, + actionHandler: function(fileName, context) { + var fileInfo = self.elementToFile(context.$file); + self._updateDetailsView(fileInfo); + OC.Apps.showAppSidebar(); + } + }); } this.$el.find('#controls').prepend(this.breadcrumb.$el); @@ -366,7 +377,6 @@ } if (!fileName) { - OC.Apps.hideAppSidebar(this._detailsView.$el); this._detailsView.setFileInfo(null); if (this._currentFileModel) { this._currentFileModel.off(); @@ -384,7 +394,6 @@ this._detailsView.setFileInfo(model); this._detailsView.$el.scrollTop(0); - _.defer(OC.Apps.showAppSidebar, this._detailsView.$el); }, /** From d0cea829698294621edff40502feae90a2d3b5ef Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 2 Sep 2015 10:41:08 +0200 Subject: [PATCH 2/2] Fixed sidebar toggle entry Properly highlight the row after selecting the item. This also fixes the unit tests by changing the order of registration of file actions. --- apps/files/js/filelist.js | 44 +++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index d8d73c8a00c..3e12573c046 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -193,7 +193,19 @@ this.$container = options.scrollContainer || $(window); this.$table = $el.find('table:first'); this.$fileList = $el.find('#fileList'); + + if (_.isUndefined(options.detailsViewEnabled) || options.detailsViewEnabled) { + this._detailsView = new OCA.Files.DetailsView(); + this._detailsView.$el.insertBefore(this.$el); + this._detailsView.$el.addClass('disappear'); + } + this._initFileActions(options.fileActions); + + if (this._detailsView) { + this._detailsView.addDetailView(new OCA.Files.MainFileInfoDetailView({fileList: this, fileActions: this.fileActions})); + } + this.files = []; this._selectedFiles = {}; this._selectionSummary = new OCA.Files.FileSummary(); @@ -214,24 +226,6 @@ } this.breadcrumb = new OCA.Files.BreadCrumb(breadcrumbOptions); - if (_.isUndefined(options.detailsViewEnabled) || options.detailsViewEnabled) { - this._detailsView = new OCA.Files.DetailsView(); - this._detailsView.addDetailView(new OCA.Files.MainFileInfoDetailView({fileList: this, fileActions: this.fileActions})); - this._detailsView.$el.insertBefore(this.$el); - this._detailsView.$el.addClass('disappear'); - - this.fileActions.registerAction({ - name: 'Details', - mime: 'all', - permissions: OC.PERMISSION_READ, - actionHandler: function(fileName, context) { - var fileInfo = self.elementToFile(context.$file); - self._updateDetailsView(fileInfo); - OC.Apps.showAppSidebar(); - } - }); - } - this.$el.find('#controls').prepend(this.breadcrumb.$el); this._renderNewButton(); @@ -296,11 +290,25 @@ * @param {OCA.Files.FileActions} fileActions file actions */ _initFileActions: function(fileActions) { + var self = this; this.fileActions = fileActions; if (!this.fileActions) { this.fileActions = new OCA.Files.FileActions(); this.fileActions.registerDefaultActions(); } + + if (this._detailsView) { + this.fileActions.registerAction({ + name: 'Details', + mime: 'all', + permissions: OC.PERMISSION_READ, + actionHandler: function(fileName, context) { + self._updateDetailsView(fileName); + OC.Apps.showAppSidebar(); + } + }); + } + this._onFileActionsUpdated = _.debounce(_.bind(this._onFileActionsUpdated, this), 100); this.fileActions.on('registerAction', this._onFileActionsUpdated); this.fileActions.on('setDefault', this._onFileActionsUpdated);