annotate core/modules/contextual/js/contextual.toolbar.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 * Attaches behaviors for the Contextual module's edit toolbar tab.
Chris@0 4 */
Chris@0 5
Chris@17 6 (function($, Drupal, Backbone) {
Chris@0 7 const strings = {
Chris@17 8 tabbingReleased: Drupal.t(
Chris@17 9 'Tabbing is no longer constrained by the Contextual module.',
Chris@17 10 ),
Chris@17 11 tabbingConstrained: Drupal.t(
Chris@17 12 'Tabbing is constrained to a set of @contextualsCount and the edit mode toggle.',
Chris@17 13 ),
Chris@0 14 pressEsc: Drupal.t('Press the esc key to exit.'),
Chris@0 15 };
Chris@0 16
Chris@0 17 /**
Chris@0 18 * Initializes a contextual link: updates its DOM, sets up model and views.
Chris@0 19 *
Chris@0 20 * @param {HTMLElement} context
Chris@0 21 * A contextual links DOM element as rendered by the server.
Chris@0 22 */
Chris@0 23 function initContextualToolbar(context) {
Chris@0 24 if (!Drupal.contextual || !Drupal.contextual.collection) {
Chris@0 25 return;
Chris@0 26 }
Chris@0 27
Chris@0 28 const contextualToolbar = Drupal.contextualToolbar;
Chris@17 29 contextualToolbar.model = new contextualToolbar.StateModel(
Chris@17 30 {
Chris@17 31 // Checks whether localStorage indicates we should start in edit mode
Chris@17 32 // rather than view mode.
Chris@17 33 // @see Drupal.contextualToolbar.VisualView.persist
Chris@17 34 isViewing:
Chris@17 35 localStorage.getItem('Drupal.contextualToolbar.isViewing') !==
Chris@17 36 'false',
Chris@17 37 },
Chris@17 38 {
Chris@17 39 contextualCollection: Drupal.contextual.collection,
Chris@17 40 },
Chris@17 41 );
Chris@0 42
Chris@0 43 const viewOptions = {
Chris@0 44 el: $('.toolbar .toolbar-bar .contextual-toolbar-tab'),
Chris@14 45 model: contextualToolbar.model,
Chris@0 46 strings,
Chris@0 47 };
Chris@0 48 new contextualToolbar.VisualView(viewOptions);
Chris@0 49 new contextualToolbar.AuralView(viewOptions);
Chris@0 50 }
Chris@0 51
Chris@0 52 /**
Chris@0 53 * Attaches contextual's edit toolbar tab behavior.
Chris@0 54 *
Chris@0 55 * @type {Drupal~behavior}
Chris@0 56 *
Chris@0 57 * @prop {Drupal~behaviorAttach} attach
Chris@0 58 * Attaches contextual toolbar behavior on a contextualToolbar-init event.
Chris@0 59 */
Chris@0 60 Drupal.behaviors.contextualToolbar = {
Chris@0 61 attach(context) {
Chris@0 62 if ($('body').once('contextualToolbar-init').length) {
Chris@0 63 initContextualToolbar(context);
Chris@0 64 }
Chris@0 65 },
Chris@0 66 };
Chris@0 67
Chris@0 68 /**
Chris@0 69 * Namespace for the contextual toolbar.
Chris@0 70 *
Chris@0 71 * @namespace
Chris@0 72 */
Chris@0 73 Drupal.contextualToolbar = {
Chris@0 74 /**
Chris@0 75 * The {@link Drupal.contextualToolbar.StateModel} instance.
Chris@0 76 *
Chris@0 77 * @type {?Drupal.contextualToolbar.StateModel}
Chris@0 78 */
Chris@0 79 model: null,
Chris@0 80 };
Chris@17 81 })(jQuery, Drupal, Backbone);