2015-08-17 17:00:26 -07:00
/ * *
* @ file
* Attaches behaviors for the Contextual module ' s edit toolbar tab .
* /
( function ( $ , Drupal , Backbone ) {
2015-10-21 21:44:50 -07:00
'use strict' ;
2015-08-17 17:00:26 -07:00
var strings = {
tabbingReleased : Drupal . t ( 'Tabbing is no longer constrained by the Contextual module.' ) ,
tabbingConstrained : Drupal . t ( 'Tabbing is constrained to a set of @contextualsCount and the edit mode toggle.' ) ,
pressEsc : Drupal . t ( 'Press the esc key to exit.' )
} ;
/ * *
* Initializes a contextual link : updates its DOM , sets up model and views .
*
* @ param { HTMLElement } context
* A contextual links DOM element as rendered by the server .
* /
function initContextualToolbar ( context ) {
if ( ! Drupal . contextual || ! Drupal . contextual . collection ) {
return ;
}
var contextualToolbar = Drupal . contextualToolbar ;
var model = contextualToolbar . model = new contextualToolbar . StateModel ( {
// Checks whether localStorage indicates we should start in edit mode
// rather than view mode.
2015-09-04 13:20:09 -07:00
// @see Drupal.contextualToolbar.VisualView.persist
2015-08-17 17:00:26 -07:00
isViewing : localStorage . getItem ( 'Drupal.contextualToolbar.isViewing' ) !== 'false'
} , {
contextualCollection : Drupal . contextual . collection
} ) ;
var viewOptions = {
el : $ ( '.toolbar .toolbar-bar .contextual-toolbar-tab' ) ,
model : model ,
strings : strings
} ;
new contextualToolbar . VisualView ( viewOptions ) ;
new contextualToolbar . AuralView ( viewOptions ) ;
}
/ * *
* Attaches contextual ' s edit toolbar tab behavior .
*
* @ type { Drupal ~ behavior }
2015-09-04 13:20:09 -07:00
*
* @ prop { Drupal ~ behaviorAttach } attach
* Attaches contextual toolbar behavior on a contextualToolbar - init event .
2015-08-17 17:00:26 -07:00
* /
Drupal . behaviors . contextualToolbar = {
attach : function ( context ) {
if ( $ ( 'body' ) . once ( 'contextualToolbar-init' ) . length ) {
initContextualToolbar ( context ) ;
}
}
} ;
/ * *
2015-09-04 13:20:09 -07:00
* Namespace for the contextual toolbar .
*
2015-08-17 17:00:26 -07:00
* @ namespace
* /
Drupal . contextualToolbar = {
/ * *
* The { @ link Drupal . contextualToolbar . StateModel } instance .
*
* @ type { ? Drupal . contextualToolbar . StateModel }
* /
model : null
} ;
} ) ( jQuery , Drupal , Backbone ) ;