diff --git a/app/Grid/BookGrid.php b/app/Grid/BookGrid.php index 2a7ce288..b7f259de 100644 --- a/app/Grid/BookGrid.php +++ b/app/Grid/BookGrid.php @@ -20,22 +20,18 @@ use Sylius\Bundle\GridBundle\Builder\Action\DeleteAction; use Sylius\Bundle\GridBundle\Builder\Action\ShowAction; use Sylius\Bundle\GridBundle\Builder\Action\UpdateAction; -use Sylius\Bundle\GridBundle\Builder\ActionGroup\BulkActionGroup; -use Sylius\Bundle\GridBundle\Builder\ActionGroup\ItemActionGroup; -use Sylius\Bundle\GridBundle\Builder\ActionGroup\MainActionGroup; use Sylius\Bundle\GridBundle\Builder\Field\EnumField; use Sylius\Bundle\GridBundle\Builder\Field\StringField; use Sylius\Bundle\GridBundle\Builder\Filter\EnumFilter; use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter; use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface; -use Sylius\Bundle\GridBundle\Grid\AbstractGrid; use Sylius\Component\Grid\Attribute\AsGrid; #[AsGrid( resourceClass: Book::class, name: 'app_book', )] -final class BookGrid extends AbstractGrid +final class BookGrid { public function __invoke(GridBuilderInterface $gridBuilder): void { @@ -60,28 +56,22 @@ public function __invoke(GridBuilderInterface $gridBuilder): void ->setLabel('app.ui.category') ->setSortable(true), ) - ->addActionGroup( - MainActionGroup::create( - CreateAction::create(), - Action::create(name: 'export', type: 'export') - ->setOptions([ - 'link' => [ - 'route' => 'app_admin_book_export', - ], - ]), - ), + ->withMainActions( + CreateAction::create(), + Action::create(name: 'export', type: 'export') + ->setOptions([ + 'link' => [ + 'route' => 'app_admin_book_export', + ], + ]), ) - ->addActionGroup( - ItemActionGroup::create( - ShowAction::create(), - UpdateAction::create(), - DeleteAction::create(), - ), + ->withItemActions( + ShowAction::create(), + UpdateAction::create(), + DeleteAction::create(), ) - ->addActionGroup( - BulkActionGroup::create( - DeleteAction::create(), - ), + ->withBulkActions( + DeleteAction::create(), ) ; } diff --git a/app/Grid/ConferenceGrid.php b/app/Grid/ConferenceGrid.php index e140b02e..a1c38cf4 100644 --- a/app/Grid/ConferenceGrid.php +++ b/app/Grid/ConferenceGrid.php @@ -18,26 +18,21 @@ use Sylius\Bundle\GridBundle\Builder\Action\CreateAction; use Sylius\Bundle\GridBundle\Builder\Action\DeleteAction; use Sylius\Bundle\GridBundle\Builder\Action\UpdateAction; -use Sylius\Bundle\GridBundle\Builder\ActionGroup\BulkActionGroup; -use Sylius\Bundle\GridBundle\Builder\ActionGroup\ItemActionGroup; -use Sylius\Bundle\GridBundle\Builder\ActionGroup\MainActionGroup; use Sylius\Bundle\GridBundle\Builder\Field\DateTimeField; use Sylius\Bundle\GridBundle\Builder\Field\StringField; use Sylius\Bundle\GridBundle\Builder\Filter\BooleanFilter; use Sylius\Bundle\GridBundle\Builder\Filter\DateFilter; use Sylius\Bundle\GridBundle\Builder\Filter\ExistsFilter; use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface; -use Sylius\Bundle\GridBundle\Grid\AbstractGrid; -use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface; +use Sylius\Component\Grid\Attribute\AsGrid; -final class ConferenceGrid extends AbstractGrid implements ResourceAwareGridInterface +#[AsGrid( + resourceClass: Conference::class, + name: 'app_admin_conference', +)] +final class ConferenceGrid { - public static function getName(): string - { - return 'app_admin_conference'; - } - - public function buildGrid(GridBuilderInterface $gridBuilder): void + public function __invoke(GridBuilderInterface $gridBuilder): void { $gridBuilder ->addOrderBy('startsAt', 'desc') @@ -69,40 +64,29 @@ public function buildGrid(GridBuilderInterface $gridBuilder): void ->setLabel('app.ui.ends_at') ->setSortable(true), ) - ->addActionGroup( - MainActionGroup::create( - CreateAction::create(), - ), + ->withMainActions( + CreateAction::create(), ) - ->addActionGroup( - ItemActionGroup::create( - Action::create('show_talks', 'show') - ->setIcon('tabler:list-letters') - ->setLabel('app.ui.show_talks') - ->setOptions([ - 'link' => [ - 'route' => 'app_admin_talk_index', - 'parameters' => [ - 'criteria' => [ - 'conference' => 'resource.id', - ], + ->withItemActions( + Action::create('show_talks', 'show') + ->setIcon('tabler:list-letters') + ->setLabel('app.ui.show_talks') + ->setOptions([ + 'link' => [ + 'route' => 'app_admin_talk_index', + 'parameters' => [ + 'criteria' => [ + 'conference' => 'resource.id', ], ], - ]), - UpdateAction::create(), - DeleteAction::create(), - ), + ], + ]), + UpdateAction::create(), + DeleteAction::create(), ) - ->addActionGroup( - BulkActionGroup::create( - DeleteAction::create(), - ), + ->withBulkActions( + DeleteAction::create(), ) ; } - - public function getResourceClass(): string - { - return Conference::class; - } } diff --git a/app/Grid/SpeakerGrid.php b/app/Grid/SpeakerGrid.php index 5efb36a9..d9c40613 100644 --- a/app/Grid/SpeakerGrid.php +++ b/app/Grid/SpeakerGrid.php @@ -18,21 +18,17 @@ use Sylius\Bundle\GridBundle\Builder\Action\CreateAction; use Sylius\Bundle\GridBundle\Builder\Action\DeleteAction; use Sylius\Bundle\GridBundle\Builder\Action\UpdateAction; -use Sylius\Bundle\GridBundle\Builder\ActionGroup\BulkActionGroup; -use Sylius\Bundle\GridBundle\Builder\ActionGroup\ItemActionGroup; -use Sylius\Bundle\GridBundle\Builder\ActionGroup\MainActionGroup; use Sylius\Bundle\GridBundle\Builder\Field\StringField; use Sylius\Bundle\GridBundle\Builder\Field\TwigField; use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter; use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface; -use Sylius\Bundle\GridBundle\Grid\AbstractGrid; use Sylius\Component\Grid\Attribute\AsGrid; #[AsGrid( resourceClass: Speaker::class, name: 'app_speaker', )] -final class SpeakerGrid extends AbstractGrid +final class SpeakerGrid { public function __invoke(GridBuilderInterface $gridBuilder): void { @@ -55,34 +51,28 @@ public function __invoke(GridBuilderInterface $gridBuilder): void ->setLabel('app.ui.company_name') ->setSortable(true), ) - ->addActionGroup( - MainActionGroup::create( - CreateAction::create(), - ), + ->withMainActions( + CreateAction::create(), ) - ->addActionGroup( - ItemActionGroup::create( - Action::create('show_talks', 'show') - ->setIcon('tabler:list-letters') - ->setLabel('app.ui.show_talks') - ->setOptions([ - 'link' => [ - 'route' => 'app_admin_talk_index', - 'parameters' => [ - 'criteria' => [ - 'speaker' => 'resource.id', - ], + ->withItemActions( + Action::create('show_talks', 'show') + ->setIcon('tabler:list-letters') + ->setLabel('app.ui.show_talks') + ->setOptions([ + 'link' => [ + 'route' => 'app_admin_talk_index', + 'parameters' => [ + 'criteria' => [ + 'speaker' => 'resource.id', ], ], - ]), - UpdateAction::create(), - DeleteAction::create(), - ), + ], + ]), + UpdateAction::create(), + DeleteAction::create(), ) - ->addActionGroup( - BulkActionGroup::create( - DeleteAction::create(), - ), + ->withBulkActions( + DeleteAction::create(), ) ; } diff --git a/app/Grid/TalkGrid.php b/app/Grid/TalkGrid.php index b2b754e7..85c425cb 100644 --- a/app/Grid/TalkGrid.php +++ b/app/Grid/TalkGrid.php @@ -32,17 +32,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter; use Sylius\Bundle\GridBundle\Builder\Filter\SelectFilter; use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface; -use Sylius\Bundle\GridBundle\Grid\AbstractGrid; -use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface; +use Sylius\Component\Grid\Attribute\AsGrid; -final class TalkGrid extends AbstractGrid implements ResourceAwareGridInterface +#[AsGrid(resourceClass: Talk::class, name: 'app_admin_talk')] +final class TalkGrid { - public static function getName(): string - { - return 'app_admin_talk'; - } - - public function buildGrid(GridBuilderInterface $gridBuilder): void + public function __invoke(GridBuilderInterface $gridBuilder): void { $gridBuilder ->addOrderBy('startsAt') diff --git a/symfony.lock b/symfony.lock index 1ef48015..283feadd 100644 --- a/symfony.lock +++ b/symfony.lock @@ -2,15 +2,6 @@ "babdev/pagerfanta-bundle": { "version": "v4.4.0" }, - "doctrine/annotations": { - "version": "2.0", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "1.10", - "ref": "64d8583af5ea57b7afa4aba4b159907f3a148b05" - } - }, "doctrine/deprecations": { "version": "1.1", "recipe": {