2015-08-17 17:00:26 -07:00
/ * *
* @ file
* A Backbone view for the aural feedback of the toolbar .
* /
( function ( Backbone , Drupal ) {
"use strict" ;
Drupal . toolbar . ToolbarAuralView = Backbone . View . extend ( /** @lends Drupal.toolbar.ToolbarAuralView# */ {
/ * *
* Backbone view for the aural feedback of the toolbar .
*
* @ constructs
*
* @ augments Backbone . View
*
* @ param { object } options
2015-09-04 13:20:09 -07:00
* Options for the view .
2015-08-17 17:00:26 -07:00
* @ param { object } options . strings
2015-09-04 13:20:09 -07:00
* Various strings to use in the view .
2015-08-17 17:00:26 -07:00
* /
initialize : function ( options ) {
this . strings = options . strings ;
this . listenTo ( this . model , 'change:orientation' , this . onOrientationChange ) ;
this . listenTo ( this . model , 'change:activeTray' , this . onActiveTrayChange ) ;
} ,
/ * *
* Announces an orientation change .
*
* @ param { Drupal . toolbar . ToolbarModel } model
2015-09-04 13:20:09 -07:00
* The toolbar model in question .
2015-08-17 17:00:26 -07:00
* @ param { string } orientation
* The new value of the orientation attribute in the model .
* /
onOrientationChange : function ( model , orientation ) {
Drupal . announce ( Drupal . t ( 'Tray orientation changed to @orientation.' , {
'@orientation' : orientation
} ) ) ;
} ,
/ * *
* Announces a changed active tray .
*
* @ param { Drupal . toolbar . ToolbarModel } model
2015-09-04 13:20:09 -07:00
* The toolbar model in question .
2015-08-17 17:00:26 -07:00
* @ param { HTMLElement } tray
* The new value of the tray attribute in the model .
* /
onActiveTrayChange : function ( model , tray ) {
var relevantTray = ( tray === null ) ? model . previous ( 'activeTray' ) : tray ;
var action = ( tray === null ) ? Drupal . t ( 'closed' ) : Drupal . t ( 'opened' ) ;
var trayNameElement = relevantTray . querySelector ( '.toolbar-tray-name' ) ;
var text ;
if ( trayNameElement !== null ) {
text = Drupal . t ( 'Tray "@tray" @action.' , {
'@tray' : trayNameElement . textContent , '@action' : action
} ) ;
}
else {
text = Drupal . t ( 'Tray @action.' , { '@action' : action } ) ;
}
Drupal . announce ( text ) ;
}
} ) ;
} ( Backbone , Drupal ) ) ;