diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 4f57804..150f299 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -18,8 +18,8 @@ class Configuration implements ConfigurationInterface */ public function getConfigTreeBuilder() { - $treeBuilder = new TreeBuilder(); - $rootNode = $treeBuilder->root('kitpages_data_grid'); + $treeBuilder = new TreeBuilder('kitpages_data_grid'); + $rootNode = $treeBuilder->getRootNode(); $this->addGridConfiguration($rootNode); $this->addPaginatorConfiguration($rootNode); @@ -44,7 +44,7 @@ private function addGridConfiguration(ArrayNodeDefinition $node) ->end() ->scalarNode('default_twig') ->cannotBeEmpty() - ->defaultValue('KitpagesDataGridBundle:Grid:grid.html.twig') + ->defaultValue('@KitpagesDataGrid/Grid/grid.html.twig') ->end() ->end() ->end() @@ -62,7 +62,7 @@ private function addPaginatorConfiguration(ArrayNodeDefinition $node) ->children() ->scalarNode('default_twig') ->cannotBeEmpty() - ->defaultValue('KitpagesDataGridBundle:Paginator:paginator.html.twig') + ->defaultValue('@KitpagesDataGrid/Paginator/paginator.html.twig') ->end() ->scalarNode('item_count_in_page') ->cannotBeEmpty() diff --git a/Event/AbstractEvent.php b/Event/AbstractEvent.php index 214efb3..0f532b2 100644 --- a/Event/AbstractEvent.php +++ b/Event/AbstractEvent.php @@ -1,7 +1,7 @@ isDefaultPrevented; } - public function stopPropagation() + public function stopPropagation(): void { $this->isPropagationStopped = true; } - public function isPropagationStopped() + public function isPropagationStopped(): bool { return $this->isPropagationStopped; } diff --git a/Event/AfterApplyFilter.php b/Event/AfterApplyFilter.php new file mode 100644 index 0000000..420f020 --- /dev/null +++ b/Event/AfterApplyFilter.php @@ -0,0 +1,8 @@ +data = $event->data; + $this->isDefaultPrevented = $event->isDefaultPrevented; + $this->isPropagationStopped = $event->isPropagationStopped; + } + } } diff --git a/Event/OnApplyFilter.php b/Event/OnApplyFilter.php new file mode 100644 index 0000000..09171ee --- /dev/null +++ b/Event/OnApplyFilter.php @@ -0,0 +1,8 @@ +set('value', $value); $event->set('row', $row); $event->set('field', $field); - $this->dispatcher->dispatch(KitpagesDataGridEvents::ON_DISPLAY_GRID_VALUE_CONVERSION, $event); + $this->dispatcher->dispatch(new OnDisplayGridValueConversion($event)); if (!$event->isDefaultPrevented()) { $value = $event->get('value'); @@ -135,7 +138,7 @@ public function displayGridValue($row, Field $field) $event->set('returnValue', $returnValue); } - $this->dispatcher->dispatch(KitpagesDataGridEvents::AFTER_DISPLAY_GRID_VALUE_CONVERSION, $event); + $this->dispatcher->dispatch(new AfterDisplayGridValueConversion($event)); $returnValue = $event->get('returnValue'); // auto escape ? (if null, return null, without autoescape...) diff --git a/Grid/GridConfig.php b/Grid/GridConfig.php index 225d8ec..334afb1 100644 --- a/Grid/GridConfig.php +++ b/Grid/GridConfig.php @@ -4,6 +4,7 @@ use Doctrine\ORM\QueryBuilder; use Kitpages\DataGridBundle\Paginator\PaginatorConfig; +use SebastianBergmann\CodeCoverage\Driver\Selector; class GridConfig { diff --git a/Grid/GridManager.php b/Grid/GridManager.php index c62c37c..488a78b 100644 --- a/Grid/GridManager.php +++ b/Grid/GridManager.php @@ -1,6 +1,14 @@ set("grid", $grid); $event->set("gridQueryBuilder", $gridQueryBuilder); $event->set("request", $request); - $this->dispatcher->dispatch(KitpagesDataGridEvents::ON_GET_GRID_QUERY, $event); + $this->dispatcher->dispatch(new OnGetGridQuery($event)); if (!$event->isDefaultPrevented()) { // execute request @@ -131,7 +139,7 @@ public function getGrid( $event->set("query", $query); } - $this->dispatcher->dispatch(KitpagesDataGridEvents::AFTER_GET_GRID_QUERY, $event); + $this->dispatcher->dispatch(new AfterGetGridQuery($event)); // hack : recover query from the event so the developper can build a new grid // from the gridQueryBuilder in the listener and reinject it in the event. @@ -156,7 +164,7 @@ protected function applyFilter(QueryBuilder $queryBuilder, Grid $grid, $filter) $event->set("grid", $grid); $event->set("gridQueryBuilder", $queryBuilder); $event->set("filter", $filter); - $this->dispatcher->dispatch(KitpagesDataGridEvents::ON_APPLY_FILTER, $event); + $this->dispatcher->dispatch(new OnApplyFilter($event)); if (!$event->isDefaultPrevented()) { $fieldList = $grid->getGridConfig()->getFieldList(); @@ -173,7 +181,7 @@ protected function applyFilter(QueryBuilder $queryBuilder, Grid $grid, $filter) } $grid->setFilterValue($filter); } - $this->dispatcher->dispatch(KitpagesDataGridEvents::AFTER_APPLY_FILTER, $event); + $this->dispatcher->dispatch(new AfterApplyFilter($event)); } protected function applySelector(QueryBuilder $queryBuilder, Grid $grid, $selectorField, $selectorValue) @@ -186,7 +194,7 @@ protected function applySelector(QueryBuilder $queryBuilder, Grid $grid, $select $event->set("gridQueryBuilder", $queryBuilder); $event->set("selectorField", $selectorField); $event->set("selectorValue", $selectorValue); - $this->dispatcher->dispatch(KitpagesDataGridEvents::ON_APPLY_SELECTOR, $event); + $this->dispatcher->dispatch(new OnApplySelector($event)); if (!$event->isDefaultPrevented()) { $queryBuilder->andWhere($selectorField." = :selectorValue"); @@ -195,7 +203,7 @@ protected function applySelector(QueryBuilder $queryBuilder, Grid $grid, $select $grid->setSelectorField($selectorField); $grid->setSelectorValue($selectorValue); } - $this->dispatcher->dispatch(KitpagesDataGridEvents::AFTER_APPLY_SELECTOR, $event); + $this->dispatcher->dispatch(new AfterApplySelector($event)); } protected function applySort(QueryBuilder $gridQueryBuilder, Grid $grid, $sortField, $sortOrder) @@ -208,7 +216,7 @@ protected function applySort(QueryBuilder $gridQueryBuilder, Grid $grid, $sortFi $event->set("gridQueryBuilder", $gridQueryBuilder); $event->set("sortField", $sortField); $event->set("sortOrder", $sortOrder); - $this->dispatcher->dispatch(KitpagesDataGridEvents::ON_APPLY_SORT, $event); + $this->dispatcher->dispatch(new OnApplySort($event)); if (!$event->isDefaultPrevented()) { $sortFieldObject = null; @@ -232,7 +240,7 @@ protected function applySort(QueryBuilder $gridQueryBuilder, Grid $grid, $sortFi $grid->setSortOrder($sortOrder); } - $this->dispatcher->dispatch(KitpagesDataGridEvents::AFTER_APPLY_SORT, $event); + $this->dispatcher->dispatch(new AfterApplySort($event)); } } diff --git a/KitpagesDataGridEvents.php b/KitpagesDataGridEvents.php index 3517fbe..da45c0b 100644 --- a/KitpagesDataGridEvents.php +++ b/KitpagesDataGridEvents.php @@ -1,23 +1,37 @@ set("paginator", $paginator); $event->set("paginatorQueryBuilder", $countQueryBuilder); $event->set("request", $request); - $this->dispatcher->dispatch(KitpagesDataGridEvents::ON_GET_PAGINATOR_QUERY, $event); + $this->dispatcher->dispatch(new OnGetPaginatorQuery($event)); if (!$event->isDefaultPrevented()) { $query = $countQueryBuilder->getQuery(); $event->set("query", $query); } - $this->dispatcher->dispatch(KitpagesDataGridEvents::AFTER_GET_PAGINATOR_QUERY, $event); + $this->dispatcher->dispatch(new AfterGetPaginatorQuery($event)); // hack : recover query from the event so the developper can build a new query // from the paginatorQueryBuilder in the listener and reinject it in the event. diff --git a/README.md b/README.md index 237760c..0574563 100644 --- a/README.md +++ b/README.md @@ -98,9 +98,9 @@ These values are default values. You can skip the configuration if it is ok for ```yaml kitpages_data_grid: grid: - default_twig: KitpagesDataGridBundle:Grid:grid.html.twig + default_twig: @KitpagesDataGrid/Grid/grid.html.twig paginator: - default_twig: KitpagesDataGridBundle:Paginator:paginator.html.twig + default_twig: @KitpagesDataGrid/Paginator/paginator.html.twig item_count_in_page: 50 visible_page_count_in_paginator: 5 ``` @@ -110,9 +110,9 @@ Note you can use the followin configuration in order to user Bootstrap 3 : ```yaml kitpages_data_grid: grid: - default_twig: KitpagesDataGridBundle:Grid:bootstrap3-grid.html.twig + default_twig: @KitpagesDataGrid/Grid/bootstrap3-grid.html.twig paginator: - default_twig: KitpagesDataGridBundle:Paginator:bootstrap3-paginator.html.twig + default_twig: @KitpagesDataGrid/Paginator/bootstrap3-paginator.html.twig ``` diff --git a/Resources/config/services.xml b/Resources/config/services.xml index 6933796..3d1173b 100644 --- a/Resources/config/services.xml +++ b/Resources/config/services.xml @@ -4,31 +4,23 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> - - Kitpages\DataGridBundle\Grid\GridManager - Kitpages\DataGridBundle\Paginator\PaginatorManager - Kitpages\DataGridBundle\Grid\ItemListNormalizer\LegacyNormalizer - Kitpages\DataGridBundle\Grid\ItemListNormalizer\StandardNormalizer - Kitpages\DataGridBundle\Twig\GlobalsTwigExtension - - - + - - + + %kitpages_data_grid.grid.hydrator_class% - + %kitpages_data_grid.paginator% - + - + - + %kitpages_data_grid.grid% %kitpages_data_grid.paginator% diff --git a/Resources/doc/40-CookBook.md b/Resources/doc/40-CookBook.md index caf49a0..dac6bae 100644 --- a/Resources/doc/40-CookBook.md +++ b/Resources/doc/40-CookBook.md @@ -6,7 +6,7 @@ The CookBook You just have to use the twig embed bootstrap-grid.html.twig instead of grid.html.twig : ```twig - {% embed 'KitpagesDataGridBundle:Grid:bootstrap-grid.html.twig' with {'grid': grid} %} + {% embed '@KitpagesDataGrid/Grid/bootstrap-grid.html.twig' with {'grid': grid} %} {% endembed %} ``` diff --git a/Resources/views/Grid/bootstrap-grid.html.twig b/Resources/views/Grid/bootstrap-grid.html.twig index 012d39f..68ef6e6 100644 --- a/Resources/views/Grid/bootstrap-grid.html.twig +++ b/Resources/views/Grid/bootstrap-grid.html.twig @@ -81,6 +81,6 @@ {% block kit_grid_javascript %} - {% include "KitpagesDataGridBundle:Grid:javascript.html.twig" %} + {% include "@KitpagesDataGrid/Grid/javascript.html.twig" %} {% endblock kit_grid_javascript %} {% endblock kit_grid_main %} diff --git a/Resources/views/Grid/bootstrap3-grid.html.twig b/Resources/views/Grid/bootstrap3-grid.html.twig index 92ced1e..a125fbc 100644 --- a/Resources/views/Grid/bootstrap3-grid.html.twig +++ b/Resources/views/Grid/bootstrap3-grid.html.twig @@ -127,6 +127,6 @@ {% block kit_grid_after_paginator %}{% endblock %} {% block kit_grid_javascript %} - {% include "KitpagesDataGridBundle:Grid:javascript.html.twig" %} + {% include "@KitpagesDataGrid/Grid/javascript.html.twig" %} {% endblock kit_grid_javascript %} {% endblock kit_grid_main %} diff --git a/Resources/views/Grid/grid.html.twig b/Resources/views/Grid/grid.html.twig index b538342..4a17d94 100644 --- a/Resources/views/Grid/grid.html.twig +++ b/Resources/views/Grid/grid.html.twig @@ -81,6 +81,6 @@ {{ block(' kit_grid_after_paginator') }} {% block kit_grid_javascript %} - {% include "KitpagesDataGridBundle:Grid:javascript.html.twig" %} + {% include "@KitpagesDataGrid/Grid/javascript.html.twig" %} {% endblock kit_grid_javascript %} {% endblock kit_grid_main %} diff --git a/Resources/views/Grid/javascript.html.twig b/Resources/views/Grid/javascript.html.twig index edd444a..ac8d3fb 100644 --- a/Resources/views/Grid/javascript.html.twig +++ b/Resources/views/Grid/javascript.html.twig @@ -1,3 +1,3 @@ diff --git a/Tests/AppKernel.php b/Tests/AppKernel.php index 7091294..e459fd6 100644 --- a/Tests/AppKernel.php +++ b/Tests/AppKernel.php @@ -24,6 +24,6 @@ public function registerContainerConfiguration(LoaderInterface $loader) public function getCacheDir() { - return $this->rootDir.'/app/cache/'.$this->environment; + return $this->getProjectDir().'/app/cache/'.$this->environment; } } diff --git a/Tests/Fonctionnal/ConfigTest.php b/Tests/Fonctionnal/ConfigTest.php index 1c7ed15..5bd9cf5 100644 --- a/Tests/Fonctionnal/ConfigTest.php +++ b/Tests/Fonctionnal/ConfigTest.php @@ -11,7 +11,7 @@ public function testConfigParsing() { $client = self::createClient(); $gridParameters = $client->getContainer()->getParameter('kitpages_data_grid.grid'); - $this->assertEquals("KitpagesDataGridBundle:Grid:grid-standard.html.twig", $gridParameters["default_twig"]); + $this->assertEquals("@KitpagesDataGrid/Grid/grid-standard.html.twig", $gridParameters["default_twig"]); $this->assertEquals('\Kitpages\DataGridBundle\Hydrators\DataGridHydrator', $gridParameters["hydrator_class"]); } diff --git a/Tests/Fonctionnal/TwigExtensionTest.php b/Tests/Fonctionnal/TwigExtensionTest.php index c993ec7..0d4969d 100644 --- a/Tests/Fonctionnal/TwigExtensionTest.php +++ b/Tests/Fonctionnal/TwigExtensionTest.php @@ -18,7 +18,7 @@ public function testConfigParsing() */ $templating = $client->getContainer()->get('templating'); $this->assertEquals( - "KitpagesDataGridBundle:Grid:grid-standard.html.twig", + "@KitpagesDataGrid/Grid/grid-standard.html.twig", $templating->render("globals.html.twig") ); } diff --git a/Tests/Grid/GridConfigTest.php b/Tests/Grid/GridConfigTest.php index 9251952..2d7931d 100644 --- a/Tests/Grid/GridConfigTest.php +++ b/Tests/Grid/GridConfigTest.php @@ -13,7 +13,7 @@ class GridConfigTest extends TestCase */ protected $gridConfig; - protected function setUp() + protected function setUp(): void { $this->gridConfig = new GridConfig(); diff --git a/Tests/Grid/GridManagerTest.php b/Tests/Grid/GridManagerTest.php index a6dae5c..c7a3b55 100644 --- a/Tests/Grid/GridManagerTest.php +++ b/Tests/Grid/GridManagerTest.php @@ -17,12 +17,12 @@ */ class GridManagerTest extends BundleOrmTestCase { - protected function setUp() + protected function setUp(): void { parent::setUp(); } - protected function tearDown() + protected function tearDown(): void { parent::tearDown(); } diff --git a/Tests/Grid/GridTest.php b/Tests/Grid/GridTest.php index d8d0e1e..4b3d94d 100644 --- a/Tests/Grid/GridTest.php +++ b/Tests/Grid/GridTest.php @@ -13,7 +13,7 @@ class GridTest extends TestCase private $grid; private $now; private $row; - public function setUp() + public function setUp(): void { $dispatcher = new EventDispatcher(); diff --git a/Tests/Paginator/PaginatorManagerTest.php b/Tests/Paginator/PaginatorManagerTest.php index 204b8cb..fff0627 100644 --- a/Tests/Paginator/PaginatorManagerTest.php +++ b/Tests/Paginator/PaginatorManagerTest.php @@ -10,12 +10,12 @@ class PaginatorManagerTest extends BundleOrmTestCase { - protected function setUp() + protected function setUp(): void { parent::setUp(); } - protected function tearDown() + protected function tearDown(): void { parent::tearDown(); } diff --git a/Tests/app/config/config_test.yml b/Tests/app/config/config_test.yml index bb5d791..a1a52a2 100644 --- a/Tests/app/config/config_test.yml +++ b/Tests/app/config/config_test.yml @@ -1,20 +1,20 @@ kitpages_data_grid: grid: - default_twig: KitpagesDataGridBundle:Grid:grid-standard.html.twig + default_twig: @KitpagesDataGrid/Grid/grid-standard.html.twig framework: trusted_hosts: ~ secret: "test" translator: { fallback: "fr" } test: ~ - templating: - engines: ['twig'] + #templating: + # engines: ['twig'] router: - resource: "%kernel.root_dir%/config/routing.yml" + resource: "%kernel.project_dir%/config/routing.yml" twig: paths: - "%kernel.root_dir%/app/Resources/views/": __main__ + "%kernel.project_dir%/app/Resources/views/": __main__ doctrine: dbal: driver: 'pdo_sqlite' @@ -25,5 +25,5 @@ doctrine: mappings: Kitpages\DataGridBundle\Tests\TestEntities\Node: type: xml - dir: "%kernel.root_dir%/app/Resources/config/doctrine" + dir: "%kernel.project_dir%/app/Resources/config/doctrine" prefix: Kitpages\DataGridBundle\Tests\TestEntities diff --git a/Twig/GlobalsTwigExtension.php b/Twig/GlobalsTwigExtension.php index ee9ffa3..0e3afb4 100644 --- a/Twig/GlobalsTwigExtension.php +++ b/Twig/GlobalsTwigExtension.php @@ -1,10 +1,11 @@ gridParameterList = $gridParameterList; $this->paginatorParameterList = $paginatorParameterList; } - public function getGlobals() + public function getGlobals(): array { - return array( - "kitpages_data_grid" => array( + return [ + "kitpages_data_grid" => [ 'grid' => $this->gridParameterList, - 'paginator' => $this->paginatorParameterList - ) - ); + 'paginator' => $this->paginatorParameterList, + ], + ]; } + /** * Returns the name of the extension. * @@ -36,5 +37,4 @@ public function getName() { return "kitpages_data_grid_globals_extension"; } - -} +} diff --git a/composer.json b/composer.json index 05a84b3..cd7761a 100644 --- a/composer.json +++ b/composer.json @@ -13,23 +13,21 @@ ], "require": { "php": ">=7.1", - "symfony/framework-bundle": "~3.3|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/translation": "~3.3|~4.0", - "symfony/templating": "~3.3|~4.0", + "symfony/framework-bundle": "~5.0", + "symfony/dependency-injection": "~5.0", + "symfony/translation": "~5.0", + "symfony/templating": "~5.0", "doctrine/orm": "~2.5", - "doctrine/doctrine-bundle": "~1.8|~2.0", - "twig/twig": "~1.23|~2.0", - "symfony/twig-bundle": "~3.3|~4.0" + "doctrine/doctrine-bundle": "~2.0", + "twig/twig": "~3.0", + "symfony/twig-bundle": "~5.0" }, "require-dev": { - "symfony/class-loader": "~3.3|~4.0", - "symfony/yaml": "~3.3|~4.0", - "symfony/finder": "~3.3|~4.0", - "symfony/browser-kit": "~3.3|~4.0", + "symfony/yaml": "~5.0", + "symfony/finder": "~5.0", + "symfony/browser-kit": "~5.0", - "phpunit/phpunit": "~6.1", - "phpunit/dbunit": "~3.0" + "phpunit/phpunit": "~9.5" }, "autoload": { "psr-0": { "Kitpages\\DataGridBundle": "" }