Mercurial > hg > isophonics-drupal-site
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/toolbar/js/views/MenuVisualView.es6.js Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,42 @@ +/** + * @file + * A Backbone view for the collapsible menus. + */ + +(function ($, Backbone, Drupal) { + Drupal.toolbar.MenuVisualView = Backbone.View.extend(/** @lends Drupal.toolbar.MenuVisualView# */{ + + /** + * Backbone View for collapsible menus. + * + * @constructs + * + * @augments Backbone.View + */ + initialize() { + this.listenTo(this.model, 'change:subtrees', this.render); + }, + + /** + * @inheritdoc + */ + render() { + const subtrees = this.model.get('subtrees'); + // Add subtrees. + for (const id in subtrees) { + if (subtrees.hasOwnProperty(id)) { + this.$el + .find(`#toolbar-link-${id}`) + .once('toolbar-subtrees') + .after(subtrees[id]); + } + } + // Render the main menu as a nested, collapsible accordion. + if ('drupalToolbarMenu' in $.fn) { + this.$el + .children('.toolbar-menu') + .drupalToolbarMenu(); + } + }, + }); +}(jQuery, Backbone, Drupal));