Skip to content

Commit 1454b1b

Browse files
committed
Cleanup static-filters and look & feel of filters
1 parent 99756fe commit 1454b1b

4 files changed

Lines changed: 40 additions & 42 deletions

File tree

Component/Grid/GridViewModel.php

Lines changed: 8 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Loki\AdminComponents\Grid\Column\Column;
66
use Loki\AdminComponents\Grid\Filter\FilterFactory;
7+
use Loki\AdminComponents\Grid\Filter\StaticFilterInterface;
78
use Magento\Framework\Data\OptionSourceInterface;
89
use Magento\Framework\DataObject;
910
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
@@ -95,20 +96,20 @@ public function applyStaticFilters(): void
9596

9697
$filters = [];
9798
foreach ($staticFilters as $staticFilter) {
98-
if ($staticFilter instanceof FilterInterface) {
99+
if ($staticFilter instanceof StaticFilterInterface) {
99100
$filters[] = [
100-
'field' => $staticFilter->getField(),
101+
'field' => $staticFilter->getCode(),
101102
'value' => $staticFilter->getValue(),
102103
'condition_type' => $staticFilter->getConditionType(),
103104
];
104105
continue;
105106
}
106107

107-
$filter = [];
108-
$filter['field'] = $staticFilter['field'];
109-
$filter['value'] = $staticFilter['value'];
110-
$filter['condition_type'] = $staticFilter['condition_type'];
111-
$filters[] = $filter;
108+
$filters[] = [
109+
'field' => $staticFilter['field'],
110+
'value' => $staticFilter['value'],
111+
'condition_type' => $staticFilter['condition_type'],
112+
];
112113
}
113114

114115
$this->getState()->setFilters($filters);
@@ -318,40 +319,6 @@ public function getGridFilterValues(): array
318319
return $gridFilterValues;
319320
}
320321

321-
/**
322-
* @return Field[]
323-
*/
324-
public function getFilterFields(): array
325-
{
326-
$filters = (array)$this->getBlock()->getData('grid_filters');
327-
if (empty($filters)) {
328-
return [];
329-
}
330-
331-
$fields = [];
332-
foreach ($filters as $filterCode => $filter) {
333-
$filter['code'] = $filterCode;
334-
335-
if (isset($filter['options']) && false === $filter['options'] instanceof OptionSourceInterface) {
336-
$filter['options'] = $this->objectManager->get($filter['options']);
337-
}
338-
339-
if (isset($filter['options']) && false === $filter['options'] instanceof OptionSourceInterface) {
340-
throw new RuntimeException('Filter uses wrong options class');
341-
}
342-
343-
$field = $this->fieldFactory->createWithBlock(
344-
$filter,
345-
);
346-
347-
$field->getBlock()->addData($filter);
348-
$field->getBlock()->setField($field);
349-
$fields[] = $field;
350-
}
351-
352-
return $fields;
353-
}
354-
355322
public function getCellActions(DataObject $item): array
356323
{
357324
if (false === $this->allowActions()) {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Loki\AdminComponents\Grid\Filter;
5+
6+
interface StaticFilterInterface extends FilterInterface
7+
{
8+
public function getValue(): string;
9+
}

view/adminhtml/templates/grid/filters.phtml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@ declare(strict_types=1);
33

44
/** @version 0.3.2 */
55

6+
use Magento\Framework\Escaper;
67
use Magento\Framework\View\Element\Template;
78
use Loki\AdminComponents\Component\Grid\GridViewModel;
89
use Loki\Components\Util\Block\TemplateRenderer;
910

1011
/** @var Template $block */
1112
/** @var GridViewModel $viewModel */
13+
/** @var Escaper $escaper */
1214
/** @var TemplateRenderer $templateRenderer */
1315

1416
$viewModel = $block->getViewModel();
1517
$gridFilters = $viewModel->getGridFilters();
18+
$gridFilterValues = $viewModel->getGridFilterValues();
1619
if (empty($gridFilters)) {
1720
return;
1821
}
@@ -25,6 +28,25 @@ if (empty($gridFilters)) {
2528
</div>
2629
</div>
2730

31+
<div class="admin__data-grid-filters-current _show">
32+
<div class="admin__current-filters-title-wrap">
33+
<span class="admin__current-filters-title">
34+
<?= $escaper->escapeHtml(__('Active filters:')) ?>
35+
</span>
36+
</div>
37+
<div class="admin__current-filters-list-wrap">
38+
<ul class="admin__current-filters-list" data-role="filter-list">
39+
<?php foreach ($gridFilterValues as $gridFilterName => $gridFilterValue): ?>
40+
<li>
41+
<span class="label"><?= $gridFilterName ?></span>: <span class="preview"><?= $gridFilterValue ?></span>
42+
</li>
43+
<?php endforeach; ?>
44+
</ul>
45+
</div>
46+
</div>
47+
48+
49+
2850
<div x-cloak x-show="showFilters" class="admin__data-grid-filters-wrap _show">
2951
<fieldset class="admin__fieldset admin__data-grid-filters">
3052
<?php foreach ($gridFilters as $gridFilter): ?>

view/adminhtml/templates/script/component-partial/filters-component-partial.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use Magento\Framework\View\Element\Template;
1010
<script>
1111
const LokiAdminFiltersComponentPartial = {
1212
filters: [],
13-
showFilters: true,
13+
showFilters: false,
1414
toggleFilters() {
1515
this.showFilters = !this.showFilters;
1616
},

0 commit comments

Comments
 (0)