annotate core/modules/toolbar/js/views/MenuVisualView.es6.js @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
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@17 6 (function($, Backbone, Drupal) {
Chris@17 7 Drupal.toolbar.MenuVisualView = Backbone.View.extend(
Chris@17 8 /** @lends Drupal.toolbar.MenuVisualView# */ {
Chris@17 9 /**
Chris@17 10 * Backbone View for collapsible menus.
Chris@17 11 *
Chris@17 12 * @constructs
Chris@17 13 *
Chris@17 14 * @augments Backbone.View
Chris@17 15 */
Chris@17 16 initialize() {
Chris@17 17 this.listenTo(this.model, 'change:subtrees', this.render);
Chris@17 18 },
Chris@0 19
Chris@17 20 /**
Chris@17 21 * @inheritdoc
Chris@17 22 */
Chris@17 23 render() {
Chris@17 24 const subtrees = this.model.get('subtrees');
Chris@17 25 // Add subtrees.
Chris@17 26 Object.keys(subtrees || {}).forEach(id => {
Chris@17 27 this.$el
Chris@17 28 .find(`#toolbar-link-${id}`)
Chris@17 29 .once('toolbar-subtrees')
Chris@17 30 .after(subtrees[id]);
Chris@17 31 });
Chris@17 32 // Render the main menu as a nested, collapsible accordion.
Chris@17 33 if ('drupalToolbarMenu' in $.fn) {
Chris@17 34 this.$el.children('.toolbar-menu').drupalToolbarMenu();
Chris@17 35 }
Chris@17 36 },
Chris@0 37 },
Chris@17 38 );
Chris@17 39 })(jQuery, Backbone, Drupal);