annotate core/modules/toolbar/js/views/MenuVisualView.es6.js @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 1fec387a4317
rev   line source
Chris@0 1 /**
Chris@0 2 * @file
Chris@0 3 * A Backbone view for the collapsible menus.
Chris@0 4 */
Chris@0 5
Chris@0 6 (function ($, Backbone, Drupal) {
Chris@0 7 Drupal.toolbar.MenuVisualView = Backbone.View.extend(/** @lends Drupal.toolbar.MenuVisualView# */{
Chris@0 8
Chris@0 9 /**
Chris@0 10 * Backbone View for collapsible menus.
Chris@0 11 *
Chris@0 12 * @constructs
Chris@0 13 *
Chris@0 14 * @augments Backbone.View
Chris@0 15 */
Chris@0 16 initialize() {
Chris@0 17 this.listenTo(this.model, 'change:subtrees', this.render);
Chris@0 18 },
Chris@0 19
Chris@0 20 /**
Chris@0 21 * @inheritdoc
Chris@0 22 */
Chris@0 23 render() {
Chris@0 24 const subtrees = this.model.get('subtrees');
Chris@0 25 // Add subtrees.
Chris@0 26 for (const id in subtrees) {
Chris@0 27 if (subtrees.hasOwnProperty(id)) {
Chris@0 28 this.$el
Chris@0 29 .find(`#toolbar-link-${id}`)
Chris@0 30 .once('toolbar-subtrees')
Chris@0 31 .after(subtrees[id]);
Chris@0 32 }
Chris@0 33 }
Chris@0 34 // Render the main menu as a nested, collapsible accordion.
Chris@0 35 if ('drupalToolbarMenu' in $.fn) {
Chris@0 36 this.$el
Chris@0 37 .children('.toolbar-menu')
Chris@0 38 .drupalToolbarMenu();
Chris@0 39 }
Chris@0 40 },
Chris@0 41 });
Chris@0 42 }(jQuery, Backbone, Drupal));