EXTENSIBILITY: allow registration of custom post menu items

This commit is contained in:
Sam 2015-05-13 10:27:57 +10:00
parent 6de7e7e161
commit e81f122a3f
1 changed files with 17 additions and 1 deletions

View File

@ -44,7 +44,7 @@ Button.prototype.render = function(buffer) {
var hiddenButtons;
export default Discourse.View.extend(StringBuffer, {
var PostMenuView = Discourse.View.extend(StringBuffer, {
tagName: 'section',
classNames: ['post-menu-area', 'clearfix'],
@ -141,6 +141,13 @@ export default Discourse.View.extend(StringBuffer, {
visibleButtons.splice(visibleButtons.length - 1, 0, this.buttonForShowMoreActions(post));
}
var callbacks = PostMenuView._registerButtonCallbacks;
if (callbacks) {
_.each(callbacks, function(callback) {
callback.apply(self, [visibleButtons]);
});
}
buffer.push('<div class="actions">');
visibleButtons.forEach(function (b) {
b.render(buffer);
@ -374,3 +381,12 @@ export default Discourse.View.extend(StringBuffer, {
}
});
PostMenuView.reopenClass({
registerButton: function(callback){
this._registerButtonCallbacks = this._registerButtonCallbacks || [];
this._registerButtonCallbacks.push(callback);
}
});
export default PostMenuView;