move_xblock_breadcrumb.js 1.37 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
/**
 * MoveXBlockBreadcrumb show breadcrumbs to move back to parent.
 */
define([
    'jquery', 'backbone', 'underscore', 'gettext',
    'edx-ui-toolkit/js/utils/html-utils',
    'edx-ui-toolkit/js/utils/string-utils',
    'text!templates/move-xblock-breadcrumb.underscore'
],
function($, Backbone, _, gettext, HtmlUtils, StringUtils, MoveXBlockBreadcrumbViewTemplate) {
    'use strict';

    var MoveXBlockBreadcrumb = Backbone.View.extend({
        el: '.breadcrumb-container',

        events: {
            'click .parent-nav-button': 'handleBreadcrumbButtonPress'
        },

        initialize: function() {
            this.template = HtmlUtils.template(MoveXBlockBreadcrumbViewTemplate);
            this.listenTo(Backbone, 'move:childrenRendered', this.render);
        },

        render: function(options) {
            HtmlUtils.setHtml(
                this.$el,
28
                this.template(options)
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
            );
            Backbone.trigger('move:breadcrumbRendered');
            return this;
        },

        /**
         * Event handler for breadcrumb button press.
         *
         * @param {Object} event
         */
        handleBreadcrumbButtonPress: function(event) {
            Backbone.trigger(
                'move:breadcrumbButtonPressed',
                $(event.target).data('parentIndex')
            );
        }
    });

    return MoveXBlockBreadcrumb;
});