From b72434d0248aa29440b72a379796443918734230 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Sun, 11 Oct 2015 23:18:08 +0530 Subject: [PATCH] FEATURE: add 'change ownership' button in post admin wrench --- .../javascripts/discourse/components/post-menu.js.es6 | 9 ++++++++- .../discourse/controllers/change-owner.js.es6 | 5 ++++- .../javascripts/discourse/controllers/topic.js.es6 | 5 +++++ app/assets/javascripts/discourse/templates/post.hbs | 1 + config/locales/client.en.yml | 1 + 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/components/post-menu.js.es6 b/app/assets/javascripts/discourse/components/post-menu.js.es6 index 1cfa0114ba9..765539245a7 100644 --- a/app/assets/javascripts/discourse/components/post-menu.js.es6 +++ b/app/assets/javascripts/discourse/components/post-menu.js.es6 @@ -364,7 +364,9 @@ const PostMenuComponent = Ember.Component.extend(StringBuffer, { rebakePostIcon = iconHTML('cog'), rebakePostText = I18n.t('post.controls.rebake'), unhidePostIcon = iconHTML('eye'), - unhidePostText = I18n.t('post.controls.unhide'); + unhidePostText = I18n.t('post.controls.unhide'), + changePostOwnerIcon = iconHTML('user'), + changePostOwnerText = I18n.t('post.controls.change_owner'); const html = '
' + '

' + I18n.t('admin_title') + '

' + @@ -373,6 +375,7 @@ const PostMenuComponent = Ember.Component.extend(StringBuffer, { (Discourse.User.currentProp('staff') ? '
  • ' + postTypeIcon + postTypeText + '
  • ' : '') + '
  • ' + rebakePostIcon + rebakePostText + '
  • ' + (post.hidden ? '
  • ' + unhidePostIcon + unhidePostText + '
  • ' : '') + + (Discourse.User.currentProp('admin') ? '
  • ' + changePostOwnerIcon + changePostOwnerText + '
  • ' : '') + '' + '
    '; @@ -404,6 +407,10 @@ const PostMenuComponent = Ember.Component.extend(StringBuffer, { this.sendAction("unhidePost", this.get("post")); }, + clickChangePostOwner() { + this.sendAction("changePostOwner", this.get("post")); + }, + buttonForShowMoreActions() { return new Button('showMoreActions', 'show_more', 'ellipsis-h'); }, diff --git a/app/assets/javascripts/discourse/controllers/change-owner.js.es6 b/app/assets/javascripts/discourse/controllers/change-owner.js.es6 index 211e27a7efe..532b21a0bbb 100644 --- a/app/assets/javascripts/discourse/controllers/change-owner.js.es6 +++ b/app/assets/javascripts/discourse/controllers/change-owner.js.es6 @@ -42,7 +42,10 @@ export default Ember.Controller.extend(SelectedPostsCount, ModalFunctionality, { Discourse.Topic.changeOwners(this.get('topicController.model.id'), saveOpts).then(function() { // success self.send('closeModal'); - self.get('topicController').send('toggleMultiSelect'); + self.get('topicController').send('deselectAll'); + if (self.get('topicController.multiSelect')) { + self.get('topicController').send('toggleMultiSelect'); + } Em.run.next(() => { DiscourseURL.routeTo(self.get("topicController.model.url")); }); }, function() { // failure diff --git a/app/assets/javascripts/discourse/controllers/topic.js.es6 b/app/assets/javascripts/discourse/controllers/topic.js.es6 index 8a6c7b22872..46da28e3fca 100644 --- a/app/assets/javascripts/discourse/controllers/topic.js.es6 +++ b/app/assets/javascripts/discourse/controllers/topic.js.es6 @@ -442,6 +442,11 @@ export default Ember.Controller.extend(SelectedPostsCount, BufferedContent, { unhidePost(post) { post.unhide(); + }, + + changePostOwner(post) { + this.get('selectedPosts').addObject(post); + this.send('changeOwner'); } }, diff --git a/app/assets/javascripts/discourse/templates/post.hbs b/app/assets/javascripts/discourse/templates/post.hbs index 51f10eac799..c9af35d1618 100644 --- a/app/assets/javascripts/discourse/templates/post.hbs +++ b/app/assets/javascripts/discourse/templates/post.hbs @@ -110,6 +110,7 @@ togglePostType="togglePostType" rebakePost="rebakePost" unhidePost="unhidePost" + changePostOwner="changePostOwner" toggleWhoLiked="toggleWhoLiked" toggleWhoLikedTarget=view}} diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 1b1daeed990..53c76cb12be 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -1420,6 +1420,7 @@ en: revert_to_regular: "Remove Staff Color" rebake: "Rebuild HTML" unhide: "Unhide" + change_owner: "Change Ownership" actions: flag: 'Flag'