8000 feature #36445 [WebProfilerBundle] Make a difference between queued a… · symfony/symfony@d5fd44d · GitHub
[go: up one dir, main page]

Skip to content

Commit d5fd44d

Browse files
committed
feature #36445 [WebProfilerBundle] Make a difference between queued and sent emails (fabpot)
This PR was merged into the 5.1-dev branch. Discussion ---------- [WebProfilerBundle] Make a difference between queued and sent emails | Q | A | ------------- | --- | Branch? | master | Bug fix? | yes-ish | New feature? | yes <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tickets | Refs #34972 <!-- prefix each issue number with "Fix #", if any --> | License | MIT | Doc PR | n/a The current profiler panel for Mailer is confusing when emails are sent synchronously. Before: ![image](https://user-images.githubusercontent.com/47313/79122064-19867f80-7d97-11ea-9371-672f1b6f2998.png) After: ![image](https://user-images.githubusercontent.com/47313/79121986-e8a64a80-7d96-11ea-8a41-b50f1d160f5f.png) The new version makes a difference between queued and sent messages. The goes goes for the web debug toolbar. I've also fixed an HTML markup issue and made the display more compact. Commits ------- 0ee98a1 [WebProfilerBundle] Make a difference between queued and sent emails
2 parents 0933f90 + 0ee98a1 commit d5fd44d

File tree

1 file changed

+39
-42
lines changed

1 file changed

+39
-42
lines changed

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

Lines changed: 39 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,14 @@
1010
{% endset %}
1111

1212
{% set text %}
13+
<div class="sf-toolbar-info-piece">
14+
<b>Queued messages</b>
15+
<span class="sf-toolbar-status">{{ events.events|filter(e => e.isQueued())|length }}</span>
16+
</div>
1317
<div class="sf-toolbar-info-piece">
1418
<b>Sent messages</b>
15-
<span class="sf-toolbar-status">{{ events.messages|length }}</span>
19+
<span class="sf-toolbar-status">{{ events.events|filter(e => not e.isQueued())|length }}</span>
1620
</div>
17-
18-
{% for transport in events.transports %}
19-
<div class="sf-toolbar-info-piece">
20-
<b>{{ transport }}</b>
21-
<span class="sf-toolbar-status">{{ events.messages(transport)|length }}</span>
22-
</div>
23-
{% endfor %}
2421
{% endset %}
2522

2623
{{ include('@WebProfiler/Profiler/toolbar_item.html.twig', { 'link': profiler_url }) }}
@@ -91,23 +88,24 @@
9188
{% endif %}
9289

9390
<div class="metrics">
94-
{% for transport in events.transports %}
95-
<div class="metric">
96-
<span class="value">{{ events.messages(transport)|length }}</span>
97-
<span class="label">{{ events.messages(transport)|length == 1 ? 'message' : 'messages' }}</span>
98-
</div>
99-
{% endfor %}
91+
<div class="metric">
92+
<span class="value">{{ events.events|filter(e => e.isQueued())|length }}</span>
93+
<span class="label">Queued</span>
94+
</div>
95+
96+
<div class="metric">
97+
<span class="value">{{ events.events|filter(e => not e.isQueued())|length }}</span>
98+
<span class="label">Sent</span>
99+
</div>
100100
</div>
101101

102102
{% for transport in events.transports %}
103-
<h3>{{ transport }}</h3>
104-
105103
<div class="card-block">
106104
<div class="sf-tabs sf-tabs-sm">
107105
{% for event in events.events(transport) %}
108106
{% set message = event.message %}
109107
<div class="tab">
110-
<h3 class="tab-title">Email #{{ loop.index }} <small>({{ event.isQueued() ? 'queued' : 'sent' }})</small></h3>
108+
<h3 class="tab-title">Email {{ event.isQueued() ? 'queued' : 'sent via ' ~ transport }}</h3>
111109
<div class="tab-content">
112110
<div class="card">
113111
{% if message.headers is not defined %}
@@ -118,32 +116,31 @@
118116
{% else %}
119117
{# Message instance #}
120118
<div class="card-block">
121-
<span class="label">Subject</span>
122-
<h2 class="m-t-10">{{ message.headers.get('subject').bodyAsString() ?? '(empty)' }}</h2>
123-
</div>
124-
125-
<div class="card-block">
126-
<div class="row">
127-
<div class="col col-4">
128-
<span class="label">From</span>
129-
<pre class="prewrap">{{ (message.headers.get('from').bodyAsString() ?? '(empty)')|replace({'From:': ''}) }}</pre>
130-
131-
<span class="label">To</span>
132-
<pre class="prewrap">{{ (message.headers.get('to').bodyAsString() ?? '(empty)')|replace({'To:': ''}) }}</pre>
133-
</div>
134-
<div class="col">
135-
<span class="label">Headers</span>
136-
<pre class="prewrap">{% for header in message.headers.all|filter(header => (header.name ?? '') not in ['Subject', 'From', 'To']) %}
137-
{{- header.toString }}
138-
{%~ endfor %}</pre>
119+
<div class="sf-tabs sf-tabs-sm">
120+
<div class="tab">
121+
<h3 class="tab-title">Headers</h3>
122+
<div class="tab-content">
123+
<span class="label">Subject</span>
124+
<h2 class="m-t-10">{{ < 6D47 span class="pl-smi">message.headers.get('subject').bodyAsString() ?? '(empty)' }}</h2>
125+
<div class="row">
126+
<div class="col col-4">
127+
<span class="label">From</span>
128+
<pre class="prewrap">{{ (message.headers.get('from').bodyAsString() ?? '(empty)')|replace({'From:': ''}) }}</pre>
129+
130+
<span class="label">To</span>
131+
<pre class="prewrap">{{ (message.headers.get('to').bodyAsString() ?? '(empty)')|replace({'To:': ''}) }}</pre>
132+
</div>
133+
<div class="col">
134+
<span class="label">Headers</span>
135+
<pre class="prewrap">{% for header in message.headers.all|filter(header => (header.name ?? '') not in ['Subject', 'From', 'To']) %}
136+
{{- header.toString }}
137+
{%~ endfor %}</pre>
138+
</div>
139+
</div>
140+
</div>
139141
</div>
140-
</div>
141-
</div>
142-
143-
<div class="card-block">
144-
{% if message.htmlBody is defined %}
145-
{# Email instance #}
146-
<div class="sf-tabs sf-tabs-sm">
142+
{% if message.htmlBody is defined %}
143+
{# Email instance #}
147144
<div class="tab">
148145
<h3 class="tab-title">HTML Content</h3>
149146
<div class="tab-content">

0 commit comments

Comments
 (0)
0