filter_checkboxes-8.x-1.x-dev/js/filter-checkboxes.js

js/filter-checkboxes.js
(function ($, Drupal) {

  /**
   * Behavior for disallowing non-latin chars.
   */
  Drupal.behaviors.checkboxesFilter = {
    timer: null,
    attach: function (context, settings) {
      var $checkboxesElement = $('.checkboxes-filter-element');
      var currentElement = $(this);

      $checkboxesElement.once('checkboxes-filter').each(function() {
        $(this).prepend(
          $('<input type="text" class="form-text" placeholder="' + Drupal.t('Filter') + '">').on('blur', function () {
            var $this = $(this);
            if (Drupal.behaviors.checkboxesFilter.timer) {
              clearTimeout(Drupal.behaviors.checkboxesFilter.timer);
            }

            Drupal.behaviors.checkboxesFilter.timer = setTimeout(function () {
              Drupal.behaviors.checkboxesFilter.filter($this.val(), currentElement)
            }, 100)
          }).on('keyup', function () {
            if (Drupal.behaviors.checkboxesFilter.timer) {
              clearTimeout(Drupal.behaviors.checkboxesFilter.timer);
            }

            Drupal.behaviors.checkboxesFilter.timer = setTimeout(function () {
              Drupal.behaviors.checkboxesFilter.filter($(this).val(), currentElement)
            }, 100)
          })
        );
      });
    },

    filter: function (filterText, $element) {
      var checkboxes = $('div.form-item.form-type-checkbox', $element).addClass('hidden');

      checkboxes.filter(function () {
        if (filterText === '') {
          return true;
        }

        var element = $(this);
        var label = element.find('label');
        var labelText = label.html();

        var result = labelText.toUpperCase().indexOf(filterText.toUpperCase()) !== -1;
        if (result === false) {
          $element.closest('div.form-item.form-type-checkbox').addClass('hidden');
        }

        return result;
      }).removeClass('hidden');
    }
  };

})(jQuery, Drupal);

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

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