paragraphs_collection-8.x-1.x-dev/js/overview.admin.js

js/overview.admin.js
/**
 * @file
 * Paragraphs Collection overview behaviors.
 */

(function ($, Drupal, once) {

  "use strict";

  /**
   * Filters the overview table by input search filters.
   *
   * Target table:        .table-filter[data-table]
   * Text search input:   input.table-filter-text
   * Group search select: select.table-filter-group-select
   * Source text:         .table-filter-text-source
   * Source group:        .table-filter-group-source
   *
   * @type {Drupal~behavior}
   */
  Drupal.behaviors.tableFilterByText = {
    attach: function (context, settings) {
      var $filters = $(once('table-filter', '.table-filter'));
      var $table = $($filters.attr('data-table'));
      var $text_input = $(once('table-filter-text', 'input.table-filter-text'));
      var $group_select = $(once('table-filter-group-select', 'select.table-filter-group-select'));
      var $rows;

      function filterItemList() {
        var group_value;
        if (typeof $group_select.val() !== 'undefined') {
          group_value = $group_select.val().toLowerCase();
        }
        var text_value = $text_input.val().toLowerCase();

        function showItemRow(index, row) {
          var $row = $(row);
          var $group_sources = $row.find('.table-filter-group-source');
          var $text_sources = $row.find('.table-filter-text-source');
          var group_array = $group_sources.map(function() {
            return $(this).text().toLowerCase();
          }).get();

          if (group_value && group_array.indexOf(group_value) == -1) {
            $row.hide();
            return;
          }
          if (text_value && $text_sources.text().toLowerCase().indexOf(text_value) == -1) {
            $row.hide();
            return;
          }
          $row.show();
        }

        $rows.each(showItemRow);
      }

      if ($table.length) {
        $rows = $table.find('tbody tr');
        $text_input.on('keyup', filterItemList);
        $group_select.on('change', filterItemList);
      }
    }
  };

}(jQuery, Drupal, once));

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

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