1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /**
- * @file
- * A Backbone view for the aural feedback of the toolbar.
- */
- (function (Backbone, Drupal) {
- 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
- * Options for the view.
- * @param {object} options.strings
- * Various strings to use in the view.
- */
- initialize(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
- * The toolbar model in question.
- * @param {string} orientation
- * The new value of the orientation attribute in the model.
- */
- onOrientationChange(model, orientation) {
- Drupal.announce(Drupal.t('Tray orientation changed to @orientation.', {
- '@orientation': orientation,
- }));
- },
- /**
- * Announces a changed active tray.
- *
- * @param {Drupal.toolbar.ToolbarModel} model
- * The toolbar model in question.
- * @param {HTMLElement} tray
- * The new value of the tray attribute in the model.
- */
- onActiveTrayChange(model, tray) {
- const relevantTray = (tray === null) ? model.previous('activeTray') : tray;
- // Current activeTray and previous activeTray are empty, no state change
- // to announce.
- if (!relevantTray) {
- return;
- }
- const action = (tray === null) ? Drupal.t('closed') : Drupal.t('opened');
- const trayNameElement = relevantTray.querySelector('.toolbar-tray-name');
- let 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));
|