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));