skinr-8.x-2.0-alpha2/skinr_ui/js/skinr_ui.listing.js

skinr_ui/js/skinr_ui.listing.js
(function ($, Drupal) {

  "use strict";

  /**
   * Filters the skin listing tables by a text input search string.
   *
   * Text search input: input.skin-filter-text
   * Target table:      input.skin-filter-text[data-table]
   * Source text:       .skin-table-filter-text-source
   */
  Drupal.behaviors.skinTableFilterByText = {
    attach: function (context, settings) {
      var $input = $('input.skin-filter-text').once('skin-filter-text');
      var $table = $($input.attr('data-table'));
      var $rows;

      function filterSkinList(e) {
        var query = $(e.target).val().toLowerCase();

        function showSkinRow(index, row) {
          var $row = $(row);
          var $sources = $row.find('.skin-table-filter-text-source');
          var textMatch = $sources.text().toLowerCase().indexOf(query) !== -1;
          $row.closest('tr').toggle(textMatch);
        }

        // Filter if the length of the query is at least 2 characters.
        if (query.length >= 2) {
          $rows.each(showSkinRow);
        }
        else {
          $rows.show();
        }
      }

      if ($table.length) {
        $rows = $table.find('tbody tr');
        $input.on('keyup', filterSkinList);
      }
    }
  };

}(jQuery, Drupal));

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

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