diff --git a/DataCollector/EasyAdminDataCollector.php b/DataCollector/EasyAdminDataCollector.php
index ac1282e6fe..7dfe8cf9e8 100644
--- a/DataCollector/EasyAdminDataCollector.php
+++ b/DataCollector/EasyAdminDataCollector.php
@@ -14,64 +14,64 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\DataCollector\DataCollector;
+use JavierEguiluz\Bundle\EasyAdminBundle\Configuration\Configurator;
class EasyAdminDataCollector extends DataCollector
{
- private $backendConfiguration;
+ private $configurator;
- public function __construct($backendConfiguration = array())
+ public function __construct(Configurator $configurator)
{
- $this->backendConfiguration = $backendConfiguration;
+ $this->configurator = $configurator;
}
public function collect(Request $request, Response $response, \Exception $exception = null)
{
+ $backendConfiguration = $this->configurator->getBackendConfig();
+ $entityName = $request->query->get('entity');
+ $currentEntityConfiguration = $entityName ? $backendConfiguration['entities'][$entityName] : null;
+
$this->data = array(
- 'num_entities' => count($this->backendConfiguration['entities']),
- 'config_basic' => array(
- 'site_name' => $this->backendConfiguration['site_name'],
- ),
- 'config_formats' => $this->backendConfiguration['formats'],
- 'config_design' => $this->backendConfiguration['design'],
- 'config_actions' => array(
- 'disabled_actions' => $this->backendConfiguration['disabled_actions'],
- 'list' => $this->backendConfiguration['list'],
- 'edit' => $this->backendConfiguration['edit'],
- 'new' => $this->backendConfiguration['new'],
- 'show' => $this->backendConfiguration['show'],
- ),
- 'config_entities' => $this->backendConfiguration['entities'],
+ 'num_entities' => count($backendConfiguration['entities']),
+ 'request_parameters' => $this->getEasyAdminParameters($request),
+ 'current_entity_configuration' => $currentEntityConfiguration,
+ 'backend_configuration' => $backendConfiguration,
);
}
- public function getNumEntities()
+ private function getEasyAdminParameters(Request $request)
{
- return $this->data['num_entities'];
- }
+ if ('admin' !== $request->attributes->get('_route')) {
+ return;
+ }
- public function getBasicConfiguration()
- {
- return $this->data['config_basic'];
+ return array(
+ 'action' => $request->query->get('action'),
+ 'entity' => $request->query->get('entity'),
+ 'id' => $request->query->get('id'),
+ 'sort_field' => $request->query->get('sortField'),
+ 'sort_direction' => $request->query->get('sortDirection'),
+ );
}
- public function getFormatsConfiguration()
+ public function getNumEntities()
{
- return $this->data['config_formats'];
+ return $this->data['num_entities'];
}
- public function getDesignConfiguration()
+ public function getRequestParameters()
{
- return $this->data['config_design'];
+ return $this->data['request_parameters'];
}
- public function getActionsConfiguration()
+ public function getCurrentEntityConfiguration()
{
- return $this->data['config_actions'];
+ return $this->data['current_entity_configuration'];
}
- public function getEntitiesConfiguration()
+ public function getBackendConfiguration()
{
- return $this->data['config_entities'];
+ return $this->data['backend_configuration'];
}
public function getName()
diff --git a/Resources/config/services.xml b/Resources/config/services.xml
index 164c7b2b8f..ecd7d475b0 100644
--- a/Resources/config/services.xml
+++ b/Resources/config/services.xml
@@ -30,7 +30,7 @@
{{ collector.currentEntityConfiguration|yaml_dump(3, false)|replace({ '%array% ' : '' }) }}+
{{ collector.backendConfiguration|yaml_dump(5, false)|replace({ '%array% ' : '' }) }}+