File tree Expand file tree Collapse file tree 7 files changed +251
-0
lines changed
Expand file tree Collapse file tree 7 files changed +251
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Created by Krzysztof Makowski <kontakt@krzysztof-makowski.pl>.
4+ * Project: EMagic
5+ * Date: 29.11.17
6+ * Time: 00:17
7+ */
8+
9+ namespace Makoso \DatagridBundle \Grid \Filter ;
10+
11+ use Makoso \DatagridBundle \Grid \Column \GridColumn ;
12+ use Makoso \DatagridBundle \Grid \Grid ;
13+ use Doctrine \ORM \QueryBuilder ;
14+
15+ class Between implements FilterInterface
16+ {
17+ public function filter (QueryBuilder $ queryBuilder , GridColumn $ gridColumn , Grid $ grid ): void
18+ {
19+ $ value = $ gridColumn ->getFilterableValue ()['value ' ];
20+ $ value2 = $ gridColumn ->getFilterableValue ()['value ' ];
21+ if ((!empty ($ value ) || $ value === 0 ) && (!empty ($ value2 ) || $ value2 === 0 ) && (is_numeric ($ value ) && is_numeric ($ value2 ))) {
22+ $ exp1 = $ queryBuilder ->expr ()->gte ($ gridColumn ->getSelect (), (float )$ value );
23+ $ exp2 = $ queryBuilder ->expr ()->lte ($ gridColumn ->getSelect (), (float )$ value2 );
24+ if ($ queryBuilder ->getDQLParts ()['where ' ] == null ) {
25+ $ queryBuilder ->where ($ exp1 );
26+ } else {
27+ $ queryBuilder ->andWhere ($ exp1 );
28+ }
29+ $ queryBuilder ->andWhere ($ exp2 );
30+ }
31+ }
32+
33+ public function getDisplayName (): string
34+ {
35+ return 'Between ' ;
36+ }
37+
38+ public function needSecondInput (): bool
39+ {
40+ return true ;
41+ }
42+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Created by Krzysztof Makowski <kontakt@krzysztof-makowski.pl>.
4+ * Project: EMagic
5+ * Date: 29.11.17
6+ * Time: 00:17
7+ */
8+
9+ namespace Makoso \DatagridBundle \Grid \Filter ;
10+
11+ use Makoso \DatagridBundle \Grid \Column \GridColumn ;
12+ use Makoso \DatagridBundle \Grid \Grid ;
13+ use Doctrine \ORM \QueryBuilder ;
14+
15+ class GreaterThan implements FilterInterface
16+ {
17+ public function filter (QueryBuilder $ queryBuilder , GridColumn $ gridColumn , Grid $ grid ): void
18+ {
19+ $ value = $ gridColumn ->getFilterableValue ()['value ' ];
20+ if ((!empty ($ value ) || $ value === 0 ) && is_numeric ($ value )) {
21+ $ exp = $ queryBuilder ->expr ()->gt ($ gridColumn ->getSelect (), (float )$ value );
22+ if ($ queryBuilder ->getDQLParts ()['where ' ] == null ) {
23+ $ queryBuilder ->where ($ exp );
24+ } else {
25+ $ queryBuilder ->andWhere ($ exp );
26+ }
27+ }
28+ }
29+
30+ public function getDisplayName (): string
31+ {
32+ return 'GreaterThan ' ;
33+ }
34+
35+ public function needSecondInput (): bool
36+ {
37+ return false ;
38+ }
39+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Created by Krzysztof Makowski <kontakt@krzysztof-makowski.pl>.
4+ * Project: EMagic
5+ * Date: 29.11.17
6+ * Time: 00:17
7+ */
8+
9+ namespace Makoso \DatagridBundle \Grid \Filter ;
10+
11+ use Makoso \DatagridBundle \Grid \Column \GridColumn ;
12+ use Makoso \DatagridBundle \Grid \Grid ;
13+ use Doctrine \ORM \QueryBuilder ;
14+
15+ class GreaterThanOrEqual implements FilterInterface
16+ {
17+ public function filter (QueryBuilder $ queryBuilder , GridColumn $ gridColumn , Grid $ grid ): void
18+ {
19+ $ value = $ gridColumn ->getFilterableValue ()['value ' ];
20+ if ((!empty ($ value ) || $ value === 0 ) && is_numeric ($ value )) {
21+ $ exp = $ queryBuilder ->expr ()->gte ($ gridColumn ->getSelect (), (float )$ value );
22+ if ($ queryBuilder ->getDQLParts ()['where ' ] == null ) {
23+ $ queryBuilder ->where ($ exp );
24+ } else {
25+ $ queryBuilder ->andWhere ($ exp );
26+ }
27+ }
28+ }
29+
30+ public function getDisplayName (): string
31+ {
32+ return 'GreaterThanOrEqual ' ;
33+ }
34+
35+ public function needSecondInput (): bool
36+ {
37+ return false ;
38+ }
39+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Created by Krzysztof Makowski <kontakt@krzysztof-makowski.pl>.
4+ * Project: EMagic
5+ * Date: 29.11.17
6+ * Time: 00:17
7+ */
8+
9+ namespace Makoso \DatagridBundle \Grid \Filter ;
10+
11+ use Makoso \DatagridBundle \Grid \Column \GridColumn ;
12+ use Makoso \DatagridBundle \Grid \Grid ;
13+ use Doctrine \ORM \QueryBuilder ;
14+
15+ class LessThan implements FilterInterface
16+ {
17+ public function filter (QueryBuilder $ queryBuilder , GridColumn $ gridColumn , Grid $ grid ): void
18+ {
19+ $ value = $ gridColumn ->getFilterableValue ()['value ' ];
20+ if ((!empty ($ value ) || $ value === 0 ) && is_numeric ($ value )) {
21+ $ exp = $ queryBuilder ->expr ()->lt ($ gridColumn ->getSelect (), (float )$ value );
22+ if ($ queryBuilder ->getDQLParts ()['where ' ] == null ) {
23+ $ queryBuilder ->where ($ exp );
24+ } else {
25+ $ queryBuilder ->andWhere ($ exp );
26+ }
27+ }
28+ }
29+
30+ public function getDisplayName (): string
31+ {
32+ return 'LessThan ' ;
33+ }
34+
35+ public function needSecondInput (): bool
36+ {
37+ return false ;
38+ }
39+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Created by Krzysztof Makowski <kontakt@krzysztof-makowski.pl>.
4+ * Project: EMagic
5+ * Date: 29.11.17
6+ * Time: 00:17
7+ */
8+
9+ namespace Makoso \DatagridBundle \Grid \Filter ;
10+
11+ use Makoso \DatagridBundle \Grid \Column \GridColumn ;
12+ use Makoso \DatagridBundle \Grid \Grid ;
13+ use Doctrine \ORM \QueryBuilder ;
14+
15+ class LessThanOrEqual implements FilterInterface
16+ {
17+ public function filter (QueryBuilder $ queryBuilder , GridColumn $ gridColumn , Grid $ grid ): void
18+ {
19+ $ value = $ gridColumn ->getFilterableValue ()['value ' ];
20+ if ((!empty ($ value ) || $ value === 0 ) && is_numeric ($ value )) {
21+ $ exp = $ queryBuilder ->expr ()->lte ($ gridColumn ->getSelect (), (float )$ value );
22+ if ($ queryBuilder ->getDQLParts ()['where ' ] == null ) {
23+ $ queryBuilder ->where ($ exp );
24+ } else {
25+ $ queryBuilder ->andWhere ($ exp );
26+ }
27+ }
28+ }
29+
30+ public function getDisplayName (): string
31+ {
32+ return 'LessThanOrEqual ' ;
33+ }
34+
35+ public function needSecondInput (): bool
36+ {
37+ return false ;
38+ }
39+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Created by Krzysztof Makowski <kontakt@krzysztof-makowski.pl>.
4+ * Project: EMagic
5+ * Date: 29.11.17
6+ * Time: 13:10
7+ */
8+
9+ namespace Makoso \DatagridBundle \Grid \Filter ;
10+
11+ use Symfony \Component \Form \Extension \Core \Type \NumberType ;
12+
13+ class NumericGroupFilter extends FilterGroup
14+ {
15+ protected $ firstInputType = NumberType::class;
16+ protected $ secondInputType = NumberType::class;
17+
18+ protected $ firstInputOptions = [
19+ 'label ' => false ,
20+ 'attr ' => [
21+ 'class ' => 'input-1 ' ,
22+ ],
23+ 'required ' => false ,
24+ 'html5 ' => true ,
25+ ];
26+
27+ protected $ secondInputOptions = [
28+ 'label ' => false ,
29+ 'attr ' => [
30+ 'class ' => 'input-2 ' ,
31+ ],
32+ 'required ' => false ,
33+ 'html5 ' => true ,
34+ ];
35+
36+ public function __construct ()
37+ {
38+ parent ::__construct ();
39+ $ this ->filters ->add (new EqualFilter ());
40+ $ this ->filters ->add (new NotEqualFilter ());
41+ $ this ->filters ->add (new Between ());
42+ $ this ->filters ->add (new GreaterThan ());
43+ $ this ->filters ->add (new GreaterThanOrEqual ());
44+ $ this ->filters ->add (new LessThan ());
45+ $ this ->filters ->add (new LessThanOrEqual ());
46+ }
47+
48+ }
Original file line number Diff line number Diff line change @@ -2,6 +2,11 @@ Enable filtering: 'Wybierz filtrowanie'
22Contains : ' Zawiera'
33Equal : ' Równe'
44NotEqual : ' Nie równe'
5+ Between : ' Pomiędzy'
6+ GreaterThan : ' Większe niż'
7+ GreaterThanOrEqual : ' Większe niż lub równe'
8+ LessThan : ' Mniejsze niż'
9+ LessThanOrEqual : ' Mniejsze niż lub równe'
510Starts with : ' Zaczyna się od:'
611Ends with : ' Kończy się na:'
712Page : ' Strona'
You can’t perform that action at this time.
0 commit comments