Loading entity_list.layouts.yml +2 −2 Original line number Diff line number Diff line Loading @@ -21,10 +21,10 @@ filter_entity_list_display: category: 'Entity List Display' default_region: content regions: header: label: Header filters: label: Filters header: label: Header before_items: label: Before content: Loading entity_list.module +3 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,9 @@ function entity_list_theme($existing, $type, $theme, $path) { 'list_id' => '', ], ], 'entity_list_filters' => [ 'render element' => 'form', ], ]; } Loading js/region-table.js +42 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ if (tableDrag) { tableDrag.onDrop = this.onDrop; tableDrag.row.prototype.onSwap = this.onSwap; tableDrag.row.prototype.isValidSwap = this.isValidSwap; } } Loading Loading @@ -48,6 +49,47 @@ } }, /** * 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. * Loading src/Controller/EntityListFilterController.php +1 −1 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ class EntityListFilterController extends ControllerBase { $bundles = $request->query->get('bundles'); $entity_type_id = $request->query->get('entity_type_id'); $filters_used = $request->query->get('filters_used'); $filters_used = $request->query->get('filters_used') ?? []; $terms_filters = $request->query->get('terms_filters'); $entity_list_id = $request->query->get('entity_list_id'); Loading src/Form/EntityListFilterForm.php +2 −29 Original line number Diff line number Diff line Loading @@ -59,45 +59,18 @@ class EntityListFilterForm extends FormBase { $form = []; $form['#method'] = 'GET'; $form['form-wrapper'] = [ '#type' => 'fieldset', '#title' => $this->t('Filter'), ]; $form['#theme'] = 'entity_list_filters'; foreach ($filters as $key => $filter) { /** @var EntityListFilterBase $instance */ if (isset($parameters[$filter]['settings']['plugin'])) { $instance = $this->entityListFilterManager->createInstance($parameters[$filter]['settings']['plugin']); if (!empty($instance->buildFilter($parameters[$filter], $entity_list))) { $form['form-wrapper'] = array_merge($form['form-wrapper'], $instance->buildFilter($parameters[$filter], $entity_list)); $form = array_merge($form, $instance->buildFilter($parameters[$filter], $entity_list)); } } } $form['form-wrapper']['fieldset-submit'] = [ '#type' => 'fieldset', '#title' => $this->t('Submit'), '#title_display' => 'invisible', ]; $form['form-wrapper']['fieldset-submit']['submit'] = [ '#type' => 'submit', '#value' => $this->t('Filter'), ]; $options = [ 'attributes' => [ 'class' => ['reset-link'], ], ]; $current_link = Link::createFromRoute($this->t('Reset'), '<current>', [], $options); $form['form-wrapper']['fieldset-submit']['reset'] = [ '#markup' => $current_link->toString(), ]; return $form; } Loading Loading
entity_list.layouts.yml +2 −2 Original line number Diff line number Diff line Loading @@ -21,10 +21,10 @@ filter_entity_list_display: category: 'Entity List Display' default_region: content regions: header: label: Header filters: label: Filters header: label: Header before_items: label: Before content: Loading
entity_list.module +3 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,9 @@ function entity_list_theme($existing, $type, $theme, $path) { 'list_id' => '', ], ], 'entity_list_filters' => [ 'render element' => 'form', ], ]; } Loading
js/region-table.js +42 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ if (tableDrag) { tableDrag.onDrop = this.onDrop; tableDrag.row.prototype.onSwap = this.onSwap; tableDrag.row.prototype.isValidSwap = this.isValidSwap; } } Loading Loading @@ -48,6 +49,47 @@ } }, /** * 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. * Loading
src/Controller/EntityListFilterController.php +1 −1 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ class EntityListFilterController extends ControllerBase { $bundles = $request->query->get('bundles'); $entity_type_id = $request->query->get('entity_type_id'); $filters_used = $request->query->get('filters_used'); $filters_used = $request->query->get('filters_used') ?? []; $terms_filters = $request->query->get('terms_filters'); $entity_list_id = $request->query->get('entity_list_id'); Loading
src/Form/EntityListFilterForm.php +2 −29 Original line number Diff line number Diff line Loading @@ -59,45 +59,18 @@ class EntityListFilterForm extends FormBase { $form = []; $form['#method'] = 'GET'; $form['form-wrapper'] = [ '#type' => 'fieldset', '#title' => $this->t('Filter'), ]; $form['#theme'] = 'entity_list_filters'; foreach ($filters as $key => $filter) { /** @var EntityListFilterBase $instance */ if (isset($parameters[$filter]['settings']['plugin'])) { $instance = $this->entityListFilterManager->createInstance($parameters[$filter]['settings']['plugin']); if (!empty($instance->buildFilter($parameters[$filter], $entity_list))) { $form['form-wrapper'] = array_merge($form['form-wrapper'], $instance->buildFilter($parameters[$filter], $entity_list)); $form = array_merge($form, $instance->buildFilter($parameters[$filter], $entity_list)); } } } $form['form-wrapper']['fieldset-submit'] = [ '#type' => 'fieldset', '#title' => $this->t('Submit'), '#title_display' => 'invisible', ]; $form['form-wrapper']['fieldset-submit']['submit'] = [ '#type' => 'submit', '#value' => $this->t('Filter'), ]; $options = [ 'attributes' => [ 'class' => ['reset-link'], ], ]; $current_link = Link::createFromRoute($this->t('Reset'), '<current>', [], $options); $form['form-wrapper']['fieldset-submit']['reset'] = [ '#markup' => $current_link->toString(), ]; return $form; } Loading