io-8.x-1.x-dev/modules/io_browser/js/src/io-browser.tabs.js

modules/io_browser/js/src/io-browser.tabs.js
/**
 * @file
 * Provides IO Browser utilitiy functions.
 */

(function ($, Drupal, _d, _win) {

  'use strict';

  Drupal.ioBrowser = Drupal.ioBrowser || {};

  var _nick = 'ib';
  var _root = '.' + _nick;
  var _formTabs = 'form--tabs';
  var _idTabs = 'ib-tabs';
  var _onTabs = _formTabs + '--on';
  var _element = _root + '.' + _formTabs + ':not(.' + _onTabs + ')';
  var _selEbTabs = '.eb-tabs';
  var _tabsTimer;

  /**
   * IO Browser utility functions.
   *
   * @param {HTMLElement} form
   *   The Entity Browser form HTML element.
   */
  function fnTabs(form) {
    var me = Drupal.ioBrowser;
    var $form = $(form);
    var pos = $form.data('tabsPos');
    var $tabs = $(_selEbTabs, form);

    // It seems taking time to build JS tabs.
    if (pos) {
      if ($tabs.length) {
        $tabs.prependTo('#edit-' + pos);
      }
      else {
        _win.clearTimeout(_tabsTimer);
        _tabsTimer = _win.setTimeout(function () {
          $(_selEbTabs, form).prependTo('#edit-' + pos);
        }, 800);
      }
    }

    // Adds loading indicator whenever a tab is clicked.
    $form.on('click', '.eb-tabs a:not(.is-active)', me.loading);
    $form.on('click mousedown', '.ib__header input', me.loading);
    $form.addClass(_onTabs);
  }

  /**
   * Attaches IO Browser tabs behavior to HTML element.
   *
   * @type {Drupal~behavior}
   */
  Drupal.behaviors.ioBrowserTabs = {
    attach: function (context) {
      _d.once(fnTabs, _idTabs, _element, context);
    },
    detach: function (context, setting, trigger) {
      if (trigger === 'unload') {
        _d.once.removeSafely(_idTabs, _element, context);
      }
    }
  };

})(jQuery, Drupal, dBlazy, this);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc