summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2017-06-09 08:57:34 +0200
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2017-06-09 09:02:14 +0200
commit9e767b46ec24cf9ff559339950fdfd2f7f6bd1bf (patch)
tree8effe97f9ecff13e2e206b885a709552f9f04c4b
parent599274f5096d04f63b95bd97b521963ef14a4ae1 (diff)
downloadnextcloud-server-9e767b46ec24cf9ff559339950fdfd2f7f6bd1bf.tar.gz
nextcloud-server-9e767b46ec24cf9ff559339950fdfd2f7f6bd1bf.zip
Fix toggle element being removed when MainFileInfoView is rendered again
The toggle element was added to the MainFileInfoView element when SystemTagsInfoView was rendered. However, if the MainFileInfoView was rendered again after that the toggle element was removed. Therefore, instead of adding it when SystemTagsInfoView is rendered, the toggle element has to be added when MainFileInfoView triggers its "post-render" event. Note, however, that when MainFileInfoView is rendered all the events are removed from its child elements. As the toggle uses a "click" event either the event has to be added back or the element has to be detached before the MainFileInfoView is rendered. Fixes #4944 Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
-rw-r--r--apps/systemtags/js/filesplugin.js11
-rw-r--r--apps/systemtags/js/systemtagsinfoview.js25
2 files changed, 26 insertions, 10 deletions
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 = $('<span>').addClass('tag-label').text(t('systemtags', 'Tags'));
this._toggleHandle.prepend($('<span>').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() {