Commit a28482fe authored by Anwoon's avatar Anwoon
Browse files

Feature #3092175 - Refactor entity list filter and create entity list extra display for new filters

parent ac319485
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -21,10 +21,10 @@ filter_entity_list_display:
  category: 'Entity List Display'
  default_region: content
  regions:
    filters:
      label: Filters
    header:
      label: Header
    filters:
      label: Filters
    before_items:
      label: Before
    content:
+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_extra_display:
    class: Drupal\entity_list\Plugin\EntityListExtraDisplayManager
    parent: default_plugin_manager
  service.content_filter:
    class: Drupal\entity_list\Service\ContentFilterService
    arguments: ['@entity_field.manager']
+0 −43
Original line number Diff line number Diff line
@@ -9,14 +9,12 @@

    attach: function (context) {
      $(context).find('[data-region-table]').once('regionTable').each(function (index, element) {
        // var tableDrag =
        var table = this.findTable(element);
        if (table) {
          var tableDrag = Drupal.tableDrag[table.attr('id')];
          if (tableDrag) {
            tableDrag.onDrop = this.onDrop;
            tableDrag.row.prototype.onSwap = this.onSwap;
            tableDrag.row.prototype.isValidSwap = this.isValidSwap;
          }
        }

@@ -49,47 +47,6 @@
      }
    },

    /**
     * Lets override isValidSwap function for filter element.
     */
    isValidSwap: function (row) {
      var $row = $(row);
      var $element = $(this.element);

      var checkDataType = $row.attr('data-type') !== 'filter' && $row.attr('data-region') === undefined;
      var checkDataRegion = $row.attr('data-region') !== 'filters' && $row.attr('data-type') === undefined;

      if (($element.attr('data-type') === 'filter' && (checkDataType || checkDataRegion))) {
        return false;
      }

      if (this.indentEnabled) {
        var prevRow;
        var nextRow;

        if (this.direction === 'down') {
          prevRow = row;
          nextRow = $row.next('tr').get(0);
        } else {
          prevRow = $row.prev('tr').get(0);
          nextRow = row;
        }


        this.interval = this.validIndentInterval(prevRow, nextRow);

        if (this.interval.min > this.interval.max) {
          return false;
        }
      }

      if (this.table.tBodies[0].rows[0] === row && $row.is(':not(.draggable)')) {
        return false;
      }

      return true;
    },

    /**
     * Refreshes placeholder rows in empty regions while a row is being dragged.
     *
+34 −0
Original line number Diff line number Diff line
<?php

namespace Drupal\entity_list\Annotation;

use Drupal\Component\Annotation\Plugin;

/**
 * Defines a Entity list extra display item annotation object.
 *
 * @see \Drupal\entity_list\Plugin\EntityListExtraDisplayDisplayManager
 * @see plugin_api
 *
 * @Annotation
 */
class EntityListExtraDisplay extends Plugin {


  /**
   * The plugin ID.
   *
   * @var string
   */
  public $id;

  /**
   * The label of the plugin.
   *
   * @var \Drupal\Core\Annotation\Translation
   *
   * @ingroup plugin_translatable
   */
  public $label;

}
+4 −4
Original line number Diff line number Diff line
@@ -149,10 +149,10 @@ class EntityListFilterController extends ControllerBase {
    $entity_list = EntityList::load($entity_list_id);

    if ($entity_list) {
      $display = $entity_list->get('display');
      if (isset($display['layout_items'][$filter_id])) {
        unset($display['layout_items'][$filter_id]);
        $entity_list->set('display', $display);
      $filter = $entity_list->get('filter');
      if (isset($filter['filters_exposed']['layout_items'][$filter_id])) {
        unset($filter['filters_exposed']['layout_items'][$filter_id]);
        $entity_list->set('filter', $filter);
        $entity_list->save();
      }
    }
Loading