/** A modal view for handling moving of posts to a new topic @class MoveSelectedView @extends Discourse.ModalBodyView @namespace Discourse @module Discourse **/ Discourse.MoveSelectedView = Discourse.ModalBodyView.extend({ templateName: 'modal/move_selected', title: Em.String.i18n('topic.move_selected.title'), saving: false, selectedCount: (function() { if (!this.get('selectedPosts')) return 0; return this.get('selectedPosts').length; }).property('selectedPosts'), buttonDisabled: (function() { if (this.get('saving')) return true; return this.blank('topicName'); }).property('saving', 'topicName'), buttonTitle: (function() { if (this.get('saving')) return Em.String.i18n('saving'); return Em.String.i18n('topic.move_selected.title'); }).property('saving'), movePosts: function() { var postIds, _this = this; this.set('saving', true); postIds = this.get('selectedPosts').map(function(p) { return p.get('id'); }); Discourse.Topic.movePosts(this.get('topic.id'), this.get('topicName'), postIds).then(function(result) { if (result.success) { $('#discourse-modal').modal('hide'); Em.run.next(function() { Discourse.URL.routeTo(result.url); }); } else { _this.flash(Em.String.i18n('topic.move_selected.error')); return _this.set('saving', false); } }, function() { _this.flash(Em.String.i18n('topic.move_selected.error')); return _this.set('saving', false); }); return false; } });