Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d56ed85

Browse files
committed
Add Pretty Print functionality for Request Content
When it's been possible to detect the request contained JSON, provide an option to "Pretty Print" the request content.
1 parent 9cdcf0b commit d56ed85

File tree

1 file changed

+36
-3
lines changed

1 file changed

+36
-3
lines changed

src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/request.html.twig

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,15 +171,35 @@
171171
<h3>Request Headers</h3>
172172
{{ include('@WebProfiler/Profiler/bag.html.twig', { bag: collector.requestheaders, labels: ['Header', 'Value'], maxDepth: 1 }, with_context = false) }}
173173

174-
<h3>Request Content</h3>
174+
<h3>
175+
Request Content
176+
</h3>
175177

176178
{% if collector.content == false %}
177179
<div class="empty">
178180
<p>Request content not available (it was retrieved as a resource).</p>
179181
</div>
180182
{% elseif collector.content %}
181-
<div class="card">
182-
<pre class="break-long-words">{{ collector.content }}</pre>
183+
<div class="sf-tabs">
184+
{% if collector.requestheaders.get('content-type')|lower is same as ('application/json') %}
185+
<div class="tab">
186+
<h3 class="tab-title">Pretty</h3>
187+
<div class="tab-content">
188+
<div class="card" style="max-height: 500px; overflow-y: auto;">
189+
<pre class="break-long-words js-request-content">{{ collector.content }}</pre>
190+
</div>
191+
</div>
192+
</div>
193+
{% endif %}
194+
195+
<div class="tab">
196+
<h3 class="tab-title">Raw</h3>
197+
<div class="tab-content">
198+
<div class="card">
199+
<pre class="break-long-words">{{ collector.content }}</pre>
200+
</div>
201+
</div>
202+
</div>
183203
</div>
184204
{% else %}
185205
<div class="empty">
@@ -315,6 +335,19 @@
315335
</div>
316336
{% endif %}
317337
</div>
338+
<script>{% autoescape 'js' %}
339+
(function () {
340+
function formatRequestContent() {
341+
var container = document.querySelector('.js-request-content');
342+
if (!container) return;
343+
344+
var content = container.textContent;
345+
container.textContent = JSON.stringify(JSON.parse(content), null, 4);
346+
}
347+
348+
document.addEventListener('DOMContentLoaded', formatRequestContent, false);
349+
})();
350+
{% endautoescape %}</script>
318351
{% endblock %}
319352

320353
{% macro set_handler(controller, route, method) %}

0 commit comments

Comments
 (0)