Jump to >

CommentDialogHook

RB.CommentDialogHook() is used to add additional fields or information to the comment dialog. The hook is instantiated with a viewType option that expects a custom Backbone.js view class, which is your custom view for modifying the comment dialog.

The view should inherit from Backbone.View (or a subclass of this), and will take the following options:

commentDialog:
The instance of the RB.CommentDialogView(), which manages the UI of the comment dialog.
commentEditor:
The instance of the RB.CommentEditor() model, which handles logic, storage, and API access for the comment.

It will also be bound to the same element as the comment dialog, allowing you to perform queries and modifications to this.$el.

Consumers of this hook must take care to code defensively, as some of the structure of the comment dialog’s DOM elements may change in future releases.

Example

var MyCommentDialogHookView = Backbone.View.extend({
    initialize: function(options) {
        this.commentDialog = options.commentDialog;
        this.commentEditor = options.commentEditor;
    },

    render: function() {
        var $options = this.$('.comment-dlg-options'),
            $buttons = this.$('.comment-dlg-footer .buttons');

        $options.append('<li>Hi!</li>');
        $buttons.append('<button>Goodbye!</button>');
    }
});

MyProject.Extension = RB.Extension.extend({
    initialize: function() {
        RB.Extension.initialize.call(this);

        new RB.CommentDialogHook({
            extension: this,
            viewType: MyCommentDialogHookView
        });
    }
});