Skip to content

Commit

Permalink
Revamped the first draft of the profiler
Browse files Browse the repository at this point in the history
  • Loading branch information
javiereguiluz committed Aug 20, 2015
1 parent 4abeeff commit 453792b
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 46 deletions.
62 changes: 31 additions & 31 deletions DataCollector/EasyAdminDataCollector.php
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
2 changes: 1 addition & 1 deletion Resources/config/services.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
</service>

<service id="easyadmin.data_collector" class="JavierEguiluz\Bundle\EasyAdminBundle\DataCollector\EasyAdminDataCollector" public="false">
<argument>%easyadmin.config%</argument>
<argument type="service" id="easyadmin.configurator"></argument>
<tag name="data_collector" template="@EasyAdmin/data_collector/easyadmin.html.twig" id="easyadmin" />
</service>
</services>
Expand Down
68 changes: 54 additions & 14 deletions Resources/views/data_collector/easyadmin.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@

{% set icon %}
{% set icon_fill_color = profiler_markup_version == 1 ? '#222' : '#AAA' %}
<span class="icon" style="vertical-align: middle">{{ include('@EasyAdmin/data_collector/icon.svg.twig', { fill_color: icon_fill_color }) }}</span>
{% set icon_height = profiler_markup_version == 1 ? '26' : '24' %}
<span class="icon" style="vertical-align: middle">{{ include('@EasyAdmin/data_collector/icon.svg.twig', { fill_color: icon_fill_color, height: icon_height }) }}</span>
<span class="sf-toolbar-value sf-toolbar-status">{{ collector.numEntities }}</span>
{% endset %}

Expand All @@ -31,21 +32,60 @@
{% endblock %}

{% block panel %}
<h2>Basic configuration</h2>
{{ include('@WebProfiler/Profiler/table.html.twig', { data: collector.basicConfiguration }) }}
{% set profiler_markup_version = profiler_markup_version|default(1) %}

<h2>EasyAdmin</h2>

{% if profiler_markup_version == 1 %}

<h3>Request Parameters</h3>
{{ include('@WebProfiler/Profiler/table.html.twig', { data: collector.requestParameters }) }}

{% else %}

<h2>Formats configuration</h2>
{{ include('@WebProfiler/Profiler/table.html.twig', { data: collector.formatsConfiguration }) }}
{% if collector.requestParameters %}
<div class="metrics">
<div class="metric">
<span class="value">{{ collector.requestParameters.action }}</span>
<span class="label">Action</span>
</div>

<h2>Design configuration</h2>
{{ include('@WebProfiler/Profiler/table.html.twig', { data: collector.designConfiguration }) }}
<div class="metric">
<span class="value">{{ collector.requestParameters.entity }}</span>
<span class="label">Entity Name</span>
</div>

<h2>Actions configuration</h2>
{{ include('@WebProfiler/Profiler/table.html.twig', { data: collector.actionsConfiguration }) }}
{% if collector.requestParameters.id %}
<div class="metric">
<span class="value">{{ collector.requestParameters.id }}</span>
<span class="label">ID</span>
</div>
{% else %}
<div class="metric">
<span class="value">{{ collector.requestParameters.sort_field }} <span class="unit">({{ collector.requestParameters.sort_direction }})</span></span>
<span class="label">Sorting</span>
</div>
{% endif %}
</div>
{% endif %}

<h2>Entities configuration <small>({{ collector.numEntities }})</small></h2>
{% for entityName, entityConfiguration in collector.entitiesConfiguration %}
<h3>{{ entityName }} <span>entity</span></h3>
{{ include('@WebProfiler/Profiler/table.html.twig', { data: entityConfiguration }) }}
{% endfor %}
{% endif %}

<div class="tabs">
<div class="tab">
<h3 class="tab-title">Entity Configuration</h3>
<div class="tab-content">
<pre class="sf-dump" style="{{ profiler_markup_version == 1 ? '' : 'color: #E0E0E0"' }}">{{ collector.currentEntityConfiguration|yaml_dump(3, false)|replace({ '%array% ' : '' }) }}</pre>
</div>

<br>
</div>

<div class="tab">
<h3 class="tab-title">Full Backend Configuration</h3>
<div class="tab-content">
<pre class="sf-dump" style="{{ profiler_markup_version == 1 ? '' : 'color: #E0E0E0"' }}">{{ collector.backendConfiguration|yaml_dump(5, false)|replace({ '%array% ' : '' }) }}</pre>
</div>
</div>
</div>
{% endblock %}

0 comments on commit 453792b

Please sign in to comment.