diff --git a/apps/systemtags/js/filesplugin.js b/apps/systemtags/js/filesplugin.js index db97b91a072..229d64da9d5 100644 --- a/apps/systemtags/js/filesplugin.js +++ b/apps/systemtags/js/filesplugin.js @@ -31,7 +31,16 @@ return; } - fileList.registerDetailView(new OCA.SystemTags.SystemTagsInfoView()); + var systemTagsInfoView = new OCA.SystemTags.SystemTagsInfoView(); + fileList.registerDetailView(systemTagsInfoView); + + _.each(fileList.getRegisteredDetailViews(), function(detailView) { + if (detailView instanceof OCA.Files.MainFileInfoDetailView) { + systemTagsInfoView.setMainFileInfoView(detailView); + + return; + } + }); } }; diff --git a/apps/systemtags/js/systemtagsinfoview.js b/apps/systemtags/js/systemtagsinfoview.js index f98c4b046e4..ce5de2048ab 100644 --- a/apps/systemtags/js/systemtagsinfoview.js +++ b/apps/systemtags/js/systemtagsinfoview.js @@ -63,6 +63,13 @@ this._toggleHandle = $('').addClass('tag-label').text(t('systemtags', 'Tags')); this._toggleHandle.prepend($('').addClass('icon icon-tag')); + + this._toggleHandle.on('click', function () { + self.$el.toggleClass('hidden'); + if (!self.$el.hasClass('hidden')) { + self.$el.find('.systemTagsInputField').select2('open'); + } + }); }, /** @@ -112,6 +119,15 @@ this.selectedTagsCollection.remove(tagId); }, + setMainFileInfoView: function(mainFileInfoView) { + this.listenTo(mainFileInfoView, 'pre-render', function() { + this._toggleHandle.detach(); + }); + this.listenTo(mainFileInfoView, 'post-render', function() { + mainFileInfoView.$el.find('.file-details').append(this._toggleHandle); + }); + }, + setFileInfo: function(fileInfo) { var self = this; if (!this._rendered) { @@ -147,15 +163,6 @@ this.$el.append(this._inputView.$el); this._inputView.render(); - - $('#app-sidebar').find('.mainFileInfoView .file-details').append(this._toggleHandle); - this._toggleHandle.off('click'); - this._toggleHandle.on('click', function () { - self.$el.toggleClass('hidden'); - if (!self.$el.hasClass('hidden')) { - self.$el.find('.systemTagsInputField').select2('open'); - } - }); }, remove: function() {