diff --git a/src/DoctrineAuditBundle/Controller/AuditController.php b/src/DoctrineAuditBundle/Controller/AuditController.php index c599a0aa..0d7711c1 100644 --- a/src/DoctrineAuditBundle/Controller/AuditController.php +++ b/src/DoctrineAuditBundle/Controller/AuditController.php @@ -2,6 +2,7 @@ namespace DH\DoctrineAuditBundle\Controller; +use DH\DoctrineAuditBundle\Helper\AuditHelper; use DH\DoctrineAuditBundle\Reader\AuditReader; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; @@ -36,6 +37,7 @@ public function listAuditsAction(): Response public function showEntityHistoryAction(Request $request, string $entity, $id = null): Response { $page = (int) $request->query->get('page', 1); + $entity = AuditHelper::paramToNamespace($entity); $reader = $this->container->get('dh_doctrine_audit.reader'); $entries = $reader->getAuditsPager($entity, $id, $page, AuditReader::PAGE_SIZE); @@ -57,6 +59,8 @@ public function showEntityHistoryAction(Request $request, string $entity, $id = */ public function showAuditEntryAction(string $entity, $id): Response { + $entity = AuditHelper::paramToNamespace($entity); + $reader = $this->container->get('dh_doctrine_audit.reader'); $data = $reader->getAudit($entity, $id); diff --git a/src/DoctrineAuditBundle/Helper/AuditHelper.php b/src/DoctrineAuditBundle/Helper/AuditHelper.php index 9d795333..e057fc99 100644 --- a/src/DoctrineAuditBundle/Helper/AuditHelper.php +++ b/src/DoctrineAuditBundle/Helper/AuditHelper.php @@ -342,4 +342,14 @@ public function getAuditTableIndices(string $tablename): array return $indices; } + + public static function paramToNamespace(string $entity): string + { + return str_replace('-', '\\', $entity); + } + + public static function namespaceToParam(string $entity): string + { + return str_replace('\\', '-', $entity); + } } diff --git a/src/DoctrineAuditBundle/Resources/views/Audit/audits.html.twig b/src/DoctrineAuditBundle/Resources/views/Audit/audits.html.twig index 58980cbc..4cd99b5b 100644 --- a/src/DoctrineAuditBundle/Resources/views/Audit/audits.html.twig +++ b/src/DoctrineAuditBundle/Resources/views/Audit/audits.html.twig @@ -1,6 +1,7 @@ {% extends "@DHDoctrineAudit/layout.html.twig" %} {% import '@DHDoctrineAudit/Audit/bootstrap.html.twig' as bootstrap %} +{% import '@DHDoctrineAudit/Audit/helper.html.twig' as helper %} {% block dh_doctrine_audit_content %}
{{ subject }}
+ {{ subject }}
{% if source is defined and subject != source.label %}
({{ source.label }})
{% endif %}
has been {{ action }}
{% if target is defined %}
{% set subject = target.class~'#'~target.id %}
- {{ direction }} {{ subject }}
+ {{ direction }} {{ subject }}
{% if subject != target.label %}
({{ helper.dump(target) }})
{% endif %}
diff --git a/tests/DoctrineAuditBundle/Helper/AuditHelperTest.php b/tests/DoctrineAuditBundle/Helper/AuditHelperTest.php
index 1bb34d4b..ec8348f6 100644
--- a/tests/DoctrineAuditBundle/Helper/AuditHelperTest.php
+++ b/tests/DoctrineAuditBundle/Helper/AuditHelperTest.php
@@ -424,6 +424,16 @@ public function testBlameWhenNoUser(): void
$this->assertSame($expected, $helper->blame(), 'AuditHelper::blame() is ok.');
}
+ public function testParamToNamespace(): void
+ {
+ $this->assertSame(Author::class, AuditHelper::paramToNamespace('DH-DoctrineAuditBundle-Tests-Fixtures-Core-Author'), 'AuditHelper::paramToNamespace() is ok.');
+ }
+
+ public function testNamespaceToParam(): void
+ {
+ $this->assertSame('DH-DoctrineAuditBundle-Tests-Fixtures-Core-Author', AuditHelper::namespaceToParam(Author::class), 'AuditHelper::namespaceToParam() is ok.');
+ }
+
public function testGetConfiguration(): void
{
$em = $this->getEntityManager();