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 @@ - %easyadmin.config% + diff --git a/Resources/views/data_collector/easyadmin.html.twig b/Resources/views/data_collector/easyadmin.html.twig index dbaf254aeb..d1da789c4f 100644 --- a/Resources/views/data_collector/easyadmin.html.twig +++ b/Resources/views/data_collector/easyadmin.html.twig @@ -5,7 +5,8 @@ {% set icon %} {% set icon_fill_color = profiler_markup_version == 1 ? '#222' : '#AAA' %} - {{ include('@EasyAdmin/data_collector/icon.svg.twig', { fill_color: icon_fill_color }) }} + {% set icon_height = profiler_markup_version == 1 ? '26' : '24' %} + {{ include('@EasyAdmin/data_collector/icon.svg.twig', { fill_color: icon_fill_color, height: icon_height }) }} {{ collector.numEntities }} {% endset %} @@ -31,21 +32,60 @@ {% endblock %} {% block panel %} -

Basic configuration

- {{ include('@WebProfiler/Profiler/table.html.twig', { data: collector.basicConfiguration }) }} + {% set profiler_markup_version = profiler_markup_version|default(1) %} + +

EasyAdmin

+ + {% if profiler_markup_version == 1 %} + +

Request Parameters

+ {{ include('@WebProfiler/Profiler/table.html.twig', { data: collector.requestParameters }) }} + + {% else %} -

Formats configuration

- {{ include('@WebProfiler/Profiler/table.html.twig', { data: collector.formatsConfiguration }) }} + {% if collector.requestParameters %} +
+
+ {{ collector.requestParameters.action }} + Action +
-

Design configuration

- {{ include('@WebProfiler/Profiler/table.html.twig', { data: collector.designConfiguration }) }} +
+ {{ collector.requestParameters.entity }} + Entity Name +
-

Actions configuration

- {{ include('@WebProfiler/Profiler/table.html.twig', { data: collector.actionsConfiguration }) }} + {% if collector.requestParameters.id %} +
+ {{ collector.requestParameters.id }} + ID +
+ {% else %} +
+ {{ collector.requestParameters.sort_field }} ({{ collector.requestParameters.sort_direction }}) + Sorting +
+ {% endif %} +
+ {% endif %} -

Entities configuration ({{ collector.numEntities }})

- {% for entityName, entityConfiguration in collector.entitiesConfiguration %} -

{{ entityName }} entity

- {{ include('@WebProfiler/Profiler/table.html.twig', { data: entityConfiguration }) }} - {% endfor %} + {% endif %} + +
+
+

Entity Configuration

+
+
{{ collector.currentEntityConfiguration|yaml_dump(3, false)|replace({ '%array% ' : '' }) }}
+
+ +
+
+ +
+

Full Backend Configuration

+
+
{{ collector.backendConfiguration|yaml_dump(5, false)|replace({ '%array% ' : '' }) }}
+
+
+
{% endblock %}