Skip to content

Commit 5d3f702

Browse files
committed
Merge branch '1.12' into 1.13
* 1.12: Generate changelog for v1.12.1 [Docs] Add info about available form options on filters Don't remove driver options when extending a grid configuration Fix coding standard Fix Psalm errors Fix CI Fix examples with grids as service [docs] Add missing fields options on string filter Init .gitattributes to preserve the planet
2 parents d317ced + 0ea47b9 commit 5d3f702

File tree

6 files changed

+142
-14
lines changed

6 files changed

+142
-14
lines changed

Diff for: .gitattributes

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/.gitattributes export-ignore
2+
/.github export-ignore
3+
/.gitignore export-ignore
4+
/.php_cs.dist export-ignore
5+
/docs export-ignore
6+
/ecs.php export-ignore
7+
/phpspec/bootstrap.php export-ignore
8+
/phpspec.yml.dist export-ignore
9+
/phpstan.neon export-ignore
10+
/phpunit.xml.dist export-ignore
11+
/psalm.xml export-ignore
12+
/rector.php
13+
/src/Bundle/spec export-ignore
14+
/src/Bundle/test export-ignore
15+
/src/Bundle/Tests export-ignore
16+
/src/Component/spec export-ignore
17+
/src/Component/Tests export-ignore
18+
/src/Component/phpspec.yml.dist export-ignore

Diff for: CHANGELOG.md

+12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# CHANGELOG
22

3+
## v1.12.1 (2024-01-05)
4+
5+
#### Details
6+
7+
- [#277](https://github.com/Sylius/SyliusGridBundle/issues/277) Fix the build ([@loic425](https://github.com/loic425))
8+
- [#281](https://github.com/Sylius/SyliusGridBundle/issues/281) Init .gitattributes to preserve the planet ([@loic425](https://github.com/loic425))
9+
- [#280](https://github.com/Sylius/SyliusGridBundle/issues/280) [docs] Add missing fields options on string filter ([@loic425](https://github.com/loic425))
10+
- [#298](https://github.com/Sylius/SyliusGridBundle/issues/298) Fix CI ([@loic425](https://github.com/loic425))
11+
- [#317](https://github.com/Sylius/SyliusGridBundle/issues/317) Fix coding standard ([@loic425](https://github.com/loic425))
12+
- [#315](https://github.com/Sylius/SyliusGridBundle/issues/315) [Docs] Add info about available form options ([@loic425](https://github.com/loic425))
13+
- [#316](https://github.com/Sylius/SyliusGridBundle/issues/316) Don't remove driver options when extending a grid configuration ([@loic425](https://github.com/loic425))
14+
315
## v1.12.0 (2022-10-31)
416

517
#### Details

Diff for: docs/filters.md

+104-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ String
1111

1212
Simplest filter type. It can filter by one or multiple fields.
1313

14+
**Filter by one field**
15+
1416
<details open><summary>Yaml</summary>
1517

1618
```yaml
@@ -105,6 +107,98 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
105107

106108
</details>
107109

110+
**Filter by multiple fields**
111+
112+
<details open><summary>Yaml</summary>
113+
114+
```yaml
115+
sylius_grid:
116+
grids:
117+
app_user:
118+
filters:
119+
search:
120+
type: string
121+
options:
122+
fields: [username, email, firstName, lastName]
123+
```
124+
125+
</details>
126+
127+
<details open><summary>PHP</summary>
128+
129+
```php
130+
<?php
131+
132+
use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
133+
use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
134+
use Sylius\Bundle\GridBundle\Builder\GridBuilder;
135+
use Sylius\Bundle\GridBundle\Config\GridConfig;
136+
137+
return static function (GridConfig $grid): void {
138+
$grid->addGrid(GridBuilder::create('app_user', '%app.model.user.class%')
139+
->addFilter(
140+
Filter::create('username', 'string')
141+
->setOptions(['fields' => ['username', 'email', 'firstName', 'lastName']])
142+
)
143+
144+
// can be simplified using StringFilter
145+
->addFilter(
146+
StringFilter::create('username', ['username', 'email', 'firstName', 'lastName'])
147+
)
148+
)
149+
};
150+
```
151+
152+
OR
153+
154+
```php
155+
<?php
156+
# src/Grid/UserGrid.php
157+
158+
declare(strict_types=1);
159+
160+
namespace App\Grid;
161+
162+
use App\Entity\User;
163+
use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
164+
use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
165+
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
166+
use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
167+
use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface;
168+
169+
final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
170+
{
171+
public static function getName(): string
172+
{
173+
return 'app_user';
174+
}
175+
176+
public function buildGrid(GridBuilderInterface $gridBuilder): void
177+
{
178+
$gridBuilder
179+
->addFilter(
180+
Filter::create('username', 'string')
181+
->setOptions(['fields' => ['username', 'email', 'firstName', 'lastName']])
182+
)
183+
184+
// can be simplified using StringFilter
185+
->addFilter(
186+
StringFilter::create('username', ['username', 'email', 'firstName', 'lastName'])
187+
)
188+
;
189+
}
190+
191+
public function getResourceClass(): string
192+
{
193+
return User::class;
194+
}
195+
}
196+
```
197+
198+
</details>
199+
200+
**Search options**
201+
108202
The filter allows the user to select following search options:
109203

110204
- contains
@@ -410,6 +504,9 @@ sylius_grid:
410504
type: entity
411505
form_options:
412506
class: "%app.model.channel.class%"
507+
# You can pass any form options available in Entity Type
508+
# See https://symfony.com/doc/current/reference/forms/types/entity.html
509+
multiple: true
413510
customer:
414511
type: entity
415512
form_options:
@@ -432,7 +529,12 @@ return static function (GridConfig $grid): void {
432529
$grid->addGrid(GridBuilder::create('app_user', '%app.model.user.class%')
433530
->addFilter(
434531
Filter::create('channel', 'entity')
435-
->setFormOptions(['class' => '%app.model.channel.class%'])
532+
->setFormOptions([
533+
'class' => '%app.model.channel.class%'
534+
// You can pass any form options available in Entity Type
535+
// See https://symfony.com/doc/current/reference/forms/types/entity.html
536+
'multiple' => true,
537+
])
436538
)
437539
->addFilter(
438540
Filter::create('customer', 'entity')
@@ -442,6 +544,7 @@ return static function (GridConfig $grid): void {
442544
// can be simplified using EntityFilter
443545
->addFilter(
444546
EntityFilter::create('channel', '%app.model.channel.class%')
547+
->addFormOption('multiple', true)
445548
)
446549
->addFilter(
447550
EntityFilter::create('customer', '%app.model.customer.class%')

Diff for: ecs.php

-4
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,9 @@
22

33
use PhpCsFixer\Fixer\ClassNotation\VisibilityRequiredFixer;
44
use PhpCsFixer\Fixer\Comment\HeaderCommentFixer;
5-
use PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer;
65
use PhpCsFixer\Fixer\Phpdoc\NoSuperfluousPhpdocTagsFixer;
76
use SlevomatCodingStandard\Sniffs\Commenting\InlineDocCommentDeclarationSniff;
8-
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
97
use Symplify\EasyCodingStandard\Config\ECSConfig;
10-
use Symplify\EasyCodingStandard\ValueObject\Option;
118

129
return static function (ECSConfig $ecsConfig): void {
1310
$ecsConfig->paths([
@@ -33,7 +30,6 @@
3330
$ecsConfig->skip([
3431
InlineDocCommentDeclarationSniff::class . '.MissingVariable',
3532
VisibilityRequiredFixer::class => ['*Spec.php'],
36-
MethodArgumentSpaceFixer::class => ['*/BoardGameBlog/*'],
3733
'**/var/*',
3834
]);
3935
};

Diff for: src/Bundle/Builder/GridBuilder.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,7 @@ public function toArray(): array
210210
{
211211
$output = [
212212
'driver' => [
213-
'name' => $this->driver,
214-
'options' => $this->driverConfiguration,
213+
'name' => $this->driver,
215214
],
216215
'removals' => $this->removals,
217216
];
@@ -220,6 +219,10 @@ public function toArray(): array
220219
$output['provider'] = $this->provider;
221220
}
222221

222+
if (count($this->driverConfiguration) > 0) {
223+
$output['driver']['options'] = $this->driverConfiguration;
224+
}
225+
223226
if (count($this->fields) > 0) {
224227
$output['fields'] = array_map(function (FieldInterface $field) { return $field->toArray(); }, $this->fields);
225228
}

Diff for: src/Bundle/Form/DataTransformer/DateTimeFilterTransformer.php

+3-7
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,16 @@ public function __construct(string $type)
3434
$this->type = $type;
3535
}
3636

37-
/**
38-
* @param mixed|array $value
39-
*/
37+
/** @param mixed|array $value */
4038
public function transform(mixed $value): array
4139
{
4240
return $value;
4341
}
4442

45-
/**
46-
* @param mixed|array $value
47-
*/
43+
/** @param mixed|array $value */
4844
public function reverseTransform(mixed $value): array
4945
{
50-
if (!$value['date']['year']) {
46+
if (!($value['date']['year'] ?? false)) {
5147
return $value;
5248
}
5349

0 commit comments

Comments
 (0)