From 5a01d768837f56e16fcbfbd59f07ccdeca97e115 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Mon, 22 Dec 2025 19:23:39 +0100 Subject: [PATCH 1/7] feat(repository): add RepositoryQuery::addCaseInsensitiveFilters() feat(repository): add RepositoryQuery::addForcedFilterHandler() --- CHANGELOG.md | 4 ++++ src/core/Repository/RepositoryQuery.php | 21 ++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e5def0..44ba768 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## [Unreleased] +### Added +* feat(repository): add RepositoryQuery::addCaseInsensitiveFilters() +* feat(repository): add RepositoryQuery::addForcedFilterHandler() + ## [v1.27.0] - 2025-12-22 ### Fixed * fix(crud): use route params to redirect after a delation diff --git a/src/core/Repository/RepositoryQuery.php b/src/core/Repository/RepositoryQuery.php index 904c965..b9d22b7 100644 --- a/src/core/Repository/RepositoryQuery.php +++ b/src/core/Repository/RepositoryQuery.php @@ -18,6 +18,7 @@ abstract class RepositoryQuery protected PaginatorInterface $paginator; protected string $id; protected array $forcedFilterHandlers = []; + protected array $caseInsensitiveFilters = []; public function __construct(ServiceEntityRepository $repository, string $id, PaginatorInterface $paginator = null) { @@ -88,7 +89,11 @@ abstract class RepositoryQuery $this->andWhere('.'.$name.' = :'.$name); $this->setParameter(':'.$name, $value); } elseif (is_string($value)) { - $this->andWhere('.'.$name.' LIKE :'.$name); + if (in_array($name, $this->caseInsensitiveFilters)) { + $this->andWhere(sprintf('LOWER (.%1$s) LIKE LOWER(:%1$d)', $name)); + } else { + $this->andWhere('.'.$name.' LIKE :'.$name); + } $this->setParameter(':'.$name, '%'.$value.'%'); } else { $this->filterHandler($name, $value); @@ -142,4 +147,18 @@ abstract class RepositoryQuery protected function filterHandler(string $name, $value) { } + + protected function addCaseInsensitiveFilters(string $name): self + { + $this->caseInsensitiveFilters[] = $name; + + return $this; + } + + protected function addForcedFilterHandlers(string $name): self + { + $this->forcedFilterHandlers[] = $name; + + return $this; + } } From 14465d4982d3a7ca70676a8c80d21a2083f6d705 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Mon, 22 Dec 2025 19:30:29 +0100 Subject: [PATCH 2/7] feat(repository): add RepositoryQuery::addCaseInsensitiveFilters() feat(repository): add RepositoryQuery::addForcedFilterHandler() --- src/core/Repository/RepositoryQuery.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/Repository/RepositoryQuery.php b/src/core/Repository/RepositoryQuery.php index b9d22b7..b16581e 100644 --- a/src/core/Repository/RepositoryQuery.php +++ b/src/core/Repository/RepositoryQuery.php @@ -90,7 +90,7 @@ abstract class RepositoryQuery $this->setParameter(':'.$name, $value); } elseif (is_string($value)) { if (in_array($name, $this->caseInsensitiveFilters)) { - $this->andWhere(sprintf('LOWER (.%1$s) LIKE LOWER(:%1$d)', $name)); + $this->andWhere(sprintf('LOWER ( .%1$s) LIKE LOWER(:%1$d)', $name)); } else { $this->andWhere('.'.$name.' LIKE :'.$name); } From 2e2b0bce10a8291aec02b2ef645097de05c364b7 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Mon, 22 Dec 2025 19:32:01 +0100 Subject: [PATCH 3/7] feat(repository): add RepositoryQuery::addCaseInsensitiveFilters() feat(repository): add RepositoryQuery::addForcedFilterHandler() --- src/core/Repository/RepositoryQuery.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/Repository/RepositoryQuery.php b/src/core/Repository/RepositoryQuery.php index b16581e..e2943b0 100644 --- a/src/core/Repository/RepositoryQuery.php +++ b/src/core/Repository/RepositoryQuery.php @@ -90,7 +90,7 @@ abstract class RepositoryQuery $this->setParameter(':'.$name, $value); } elseif (is_string($value)) { if (in_array($name, $this->caseInsensitiveFilters)) { - $this->andWhere(sprintf('LOWER ( .%1$s) LIKE LOWER(:%1$d)', $name)); + $this->andWhere(sprintf('LOWER ( .%1$s) LIKE LOWER(:%1$s)', $name)); } else { $this->andWhere('.'.$name.' LIKE :'.$name); } From 0fa748fd3596b6374e94388f27f64c8c821170c1 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Tue, 23 Dec 2025 09:49:59 +0100 Subject: [PATCH 4/7] fix(crud/index): fix row attribute value render --- CHANGELOG.md | 3 +++ src/core/Resources/views/admin/crud/index.html.twig | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44ba768..93ebbca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ * feat(repository): add RepositoryQuery::addCaseInsensitiveFilters() * feat(repository): add RepositoryQuery::addForcedFilterHandler() +### Fixed +* fix(crud/index): fix row attribute value render + ## [v1.27.0] - 2025-12-22 ### Fixed * fix(crud): use route params to redirect after a delation diff --git a/src/core/Resources/views/admin/crud/index.html.twig b/src/core/Resources/views/admin/crud/index.html.twig index fa5dcda..ae40134 100644 --- a/src/core/Resources/views/admin/crud/index.html.twig +++ b/src/core/Resources/views/admin/crud/index.html.twig @@ -196,7 +196,7 @@ {% set rowAttributes = configuration.listRowAttributes(context, item) %} {% set rowClasses = rowAttributes['class']|default('') %} - + {% if configuration.hasBatchAction(context) %} From 7fbbad9909bf6ddd27186904a24dd5ac50625ebc Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Sat, 21 Feb 2026 23:03:20 +0100 Subject: [PATCH 5/7] fix(crud/navigation_setting): fix form action --- CHANGELOG.md | 1 + .../views/setting/navigation_setting_admin/edit.html.twig | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93ebbca..739f460 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Fixed * fix(crud/index): fix row attribute value render +* fix(crud/navigation_setting): fix form action ## [v1.27.0] - 2025-12-22 ### Fixed diff --git a/src/core/Resources/views/setting/navigation_setting_admin/edit.html.twig b/src/core/Resources/views/setting/navigation_setting_admin/edit.html.twig index 52a9aff..e1488ef 100644 --- a/src/core/Resources/views/setting/navigation_setting_admin/edit.html.twig +++ b/src/core/Resources/views/setting/navigation_setting_admin/edit.html.twig @@ -13,7 +13,7 @@ From 5ba5e93d145821b8386c1270e714a767e22d1955 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Mon, 9 Mar 2026 10:43:51 +0100 Subject: [PATCH 6/7] fix(crud/template): use default route params --- src/core/Resources/views/admin/crud/show.html.twig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/Resources/views/admin/crud/show.html.twig b/src/core/Resources/views/admin/crud/show.html.twig index 2cefa56..d98dd22 100644 --- a/src/core/Resources/views/admin/crud/show.html.twig +++ b/src/core/Resources/views/admin/crud/show.html.twig @@ -18,7 +18,7 @@ {% block header_actions_before %}{% endblock %} {% if configuration.action(context, 'back', true) %} - + {{ configuration.actionTitle(context, 'back', 'Back to the list')|trans }} @@ -27,7 +27,7 @@ {% endif %} {% if configuration.action(context, 'edit', true, [entity]) %} - + From 173dc17a89bebbc94a2a02592c8ab0750d11d5f4 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Mon, 9 Mar 2026 10:44:00 +0100 Subject: [PATCH 7/7] doc: update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 739f460..7761553 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Fixed * fix(crud/index): fix row attribute value render * fix(crud/navigation_setting): fix form action +* fix(crud/template): use default route params ## [v1.27.0] - 2025-12-22 ### Fixed