• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

contributte / datagrid / 8780667983

13 Mar 2024 12:24PM UTC coverage: 34.102%. Remained the same
8780667983

push

github

web-flow
[7.x] Next (#1060)

* PHP 8.0

* Translator: switch from ITranslator to Translator (#973)

* [7.x] Bootstrap 5 + PHP 8 + vanilla javascript (#1021)

* Bootstrap 5

* Bootstrap 5 (docs)

* Bootstrap 5

* form-control -> form-select

* Bump bootstrap-select for Bootstrap 5 support

* Removed `input-sm` from Bootstrap 3

See https://getbootstrap.com/docs/4.0/migration/#forms-1

* Bootstrap 5: When selectpicker, replace form-select classes with form-control and refresh it

* Hide `underline` also for `dropdown-item`. And merged into one CSS rule.

* Update the filterMultiSelect initialization

* Text-align: left -> start

Co-authored-by: Radim Vaculík <radim.vaculik@gmail.com>
Co-authored-by: Jaroslav Líbal <jaroslav.libal@neatous.cz>

* [7.x] phpstan-deprecation-rules (#1061)

* Fix sort

* Add method for setting custom Action href, v6.x (#853)

* [7.x] Nextras ORM 4 support, closes #984

* Fix ElasticsearchDataSource.php data source (#1041)

* Error: Typed property Ublaboo\DataGrid\InlineEdit\InlineEdit::$itemID must not be accessed before initialization

* composer: allow-plugins: php-http/discovery

* ItemDetailForm: $httpPost: Typed property must not be accessed...

* phpstan: revert  --memory-limit=4G

* NetteDatabaseSelectionHelper: Context -> Explorer, getSupplementalDriver -> getDriver

* Update README.md

* Templates: fix variables

* data-bs-toggle attribute for multiaction button (#1072)

* dependabot.yml (#1078)

* Allow nette/utils:4.0 (#1077)

* Add onColumnShow and onColumnHide event methods (#1076)

* Add onColumnShow and onColumnHide event methods

* Add native type array

* Removed duplicity

* Return value of BackedEnum when reading Doctrine entity property. (#1081)

* Return value of BackedEnum when reading array value (#1083)

* Added method to check if filter is on default values; Closes #1082 (#1084)

* ublaboo -> contributte (#1067) (#1075)

* Delete depe... (continued)

117 of 435 new or added lines in 54 files covered. (26.9%)

1455 existing lines in 67 files now uncovered.

1124 of 3296 relevant lines covered (34.1%)

0.34 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

66.67
/src/DataSource/FilterableDataSource.php
1
<?php declare(strict_types = 1);
2

3
namespace Contributte\Datagrid\DataSource;
4

5
use Contributte\Datagrid\Filter\Filter;
6
use Contributte\Datagrid\Filter\FilterDate;
7
use Contributte\Datagrid\Filter\FilterDateRange;
8
use Contributte\Datagrid\Filter\FilterMultiSelect;
9
use Contributte\Datagrid\Filter\FilterRange;
10
use Contributte\Datagrid\Filter\FilterSelect;
11
use Contributte\Datagrid\Filter\FilterText;
12
use Nette\Utils\ArrayHash;
13

14
abstract class FilterableDataSource
15
{
16

17
        /**
18
         * {@inheritDoc}
19
         *
20
         * @param array<Filter> $filters
21
         */
22
        public function filter(array $filters): void
1✔
23
        {
24
                foreach ($filters as $filter) {
1✔
25
                        if ($filter->isValueSet()) {
1✔
26
                                if ($filter->getConditionCallback() !== null) {
1✔
UNCOV
27
                                        $value = $filter->getValue();
×
28

UNCOV
29
                                        if (is_array($value)) {
×
UNCOV
30
                                                $value = ArrayHash::from($filter->getValue());
×
31
                                        }
32

UNCOV
33
                                        ($filter->getConditionCallback())($this->getDataSource(), $value);
×
34
                                } else {
35
                                        if ($filter instanceof FilterText) {
1✔
36
                                                $this->applyFilterText($filter);
1✔
37
                                        } elseif ($filter instanceof FilterMultiSelect) {
1✔
UNCOV
38
                                                $this->applyFilterMultiSelect($filter);
×
39
                                        } elseif ($filter instanceof FilterSelect) {
1✔
40
                                                $this->applyFilterSelect($filter);
1✔
41
                                        } elseif ($filter instanceof FilterDate) {
1✔
UNCOV
42
                                                $this->applyFilterDate($filter);
×
43
                                        } elseif ($filter instanceof FilterDateRange) {
1✔
UNCOV
44
                                                $this->applyFilterDateRange($filter);
×
45
                                        } elseif ($filter instanceof FilterRange) {
1✔
46
                                                $this->applyFilterRange($filter);
1✔
47
                                        }
48
                                }
49
                        }
50
                }
51
        }
1✔
52

53
        abstract protected function getDataSource(): mixed;
54

55
        abstract protected function applyFilterDate(FilterDate $filter): void;
56

57
        abstract protected function applyFilterDateRange(FilterDateRange $filter): void;
58

59
        abstract protected function applyFilterRange(FilterRange $filter): void;
60

61
        abstract protected function applyFilterText(FilterText $filter): void;
62

63
        abstract protected function applyFilterMultiSelect(FilterMultiSelect $filter): void;
64

65
        abstract protected function applyFilterSelect(FilterSelect $filter): void;
66

67
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc