Commit 5d3df0cc authored by Anwoon's avatar Anwoon
Browse files

Feature #3092175 - Added EntityListSortableFilter and EntityListExtraDisplay

parent a28482fe
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@ filter_entity_list_display:
  regions:
    header:
      label: Header
    sortable_filters:
      label: Sortable Filters
    filters:
      label: Filters
    before_items:
+9 −0
Original line number Diff line number Diff line
@@ -7,3 +7,12 @@ region-table:
    - core/drupal
    - core/drupalSettings
    - core/jquery.once

sortable-filters:
  version: VERSION
  js:
    js/sortable-filters.js: {}
  dependencies:
    - core/jquery
    - core/drupal
    - core/once
+3 −0
Original line number Diff line number Diff line
@@ -64,6 +64,9 @@ function entity_list_theme($existing, $type, $theme, $path) {
    'entity_list_filters' => [
      'render element' => 'form',
    ],
    'entity_list_sortable_filters' => [
      'render element' => 'form',
    ],
  ];
}

+3 −0
Original line number Diff line number Diff line
@@ -8,6 +8,9 @@ services:
  plugin.manager.entity_list_filter:
    class: Drupal\entity_list\Plugin\EntityListFilterManager
    parent: default_plugin_manager
  plugin.manager.entity_list_sortable_filter:
    class: Drupal\entity_list\Plugin\EntityListSortableFilterManager
    parent: default_plugin_manager
  plugin.manager.entity_list_extra_display:
    class: Drupal\entity_list\Plugin\EntityListExtraDisplayManager
    parent: default_plugin_manager

js/sortable-filters.js

0 → 100644
+24 −0
Original line number Diff line number Diff line
/**
 * @file
 * Custom behavior for sortable filters.
 */

(function ($, Drupal, once) {
  'use strict';
  Drupal.behaviors.sortableFilters = {

    attach: function (context) {
      once("sortable-filter", "body", context).forEach(function () {
        $('.sortable-filters').each(function (key, elem) {
          $(elem).change(function (e) {
            var $elem = $(this);
            var urlParams = new URLSearchParams(window.location.search);
            urlParams.set($elem.attr('data-field-name'), $elem.val());
            window.location.search = urlParams;
          })
        })
      });
    }

  }
})(jQuery, Drupal, once);
Loading