Skip to content
This repository was archived by the owner on Oct 15, 2025. It is now read-only.

Commit 4259ba7

Browse files
committed
feat(email): Allow adding plain text content
1 parent 8edd260 commit 4259ba7

File tree

3 files changed

+38
-10
lines changed

3 files changed

+38
-10
lines changed

src/Controller/Admin/EmailCrudController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
use EasyCorp\Bundle\EasyAdminBundle\Config\Filters;
1010
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
1111
use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField;
12+
use EasyCorp\Bundle\EasyAdminBundle\Field\CodeEditorField;
1213
use EasyCorp\Bundle\EasyAdminBundle\Field\IdField;
13-
use EasyCorp\Bundle\EasyAdminBundle\Field\TextEditorField;
1414
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
1515
use EasyCorp\Bundle\EasyAdminBundle\Filter\ChoiceFilter;
1616

@@ -26,7 +26,8 @@ public function configureFields(string $pageName): iterable
2626
return [
2727
IdField::new('id')->hideOnForm(),
2828
TextField::new('subject'),
29-
TextEditorField::new('content'),
29+
CodeEditorField::new('textContent'),
30+
CodeEditorField::new('htmlContent', 'HTML Content')->setLanguage('xml'),
3031
ChoiceField::new('kind'),
3132
];
3233
}

templates/email/preview.html.twig

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,49 @@
11
{% extends 'app.html.twig' %}
22

3-
{% block nav %}<twig:Navbar active="" hasUserInfo="false"/>{% endblock %}
3+
{% block nav %}
4+
<twig:Navbar active="" hasUserInfo="false"/>{% endblock %}
45
{% block title %}信件預覽{% endblock %}
56

67
{% block app %}
78
<main class="app-email-preview">
89
<div class="row">
9-
<article class="app-email-preview__rendered col-9">
10+
<section class="app-email-preview__rendered col-9">
1011
<h2 class="app-email-preview__title mb-4">
1112
<small><i class="bi bi-envelope-fill"></i></small>
1213
{{ emailDeliveryEvent.email.subject }}
1314
</h2>
1415

15-
<hr>
16-
17-
<section class="app-email-preview__content">
18-
{{ emailDeliveryEvent.email.content|raw }}
19-
</section>
20-
</article>
16+
<nav>
17+
<ul class="app-email-preview__rendered__mode_selector nav nav-tabs mb-3" role="tablist">
18+
<li class="nav-item" role="presentation">
19+
<button class="nav-link active" data-bs-toggle="tab"
20+
id="app-email-preview__html_content_selector"
21+
data-bs-target="#app-email-preview__html_content" type="button" role="tab"
22+
aria-controls="app-email-preview__html_content" aria-selected="true">HTML 格式信件
23+
</button>
24+
</li>
25+
<li class="nav-item" role="presentation">
26+
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#app-email-preview__text_content"
27+
id="app-email-preview__text_content_selector"
28+
type="button" role="tab" aria-controls="app-email-preview__text_content"
29+
aria-selected="false">純文字格式信件
30+
</button>
31+
</li>
32+
</ul>
33+
</nav>
2134

35+
<article class="app-email-preview__rendered__content tab-content">
36+
<div class="tab-pane fade show active" id="app-email-preview__html_content" role="tabpanel"
37+
aria-labelledby="app-email-preview__text_content_selector"
38+
aria-labelledby="home-tab" tabindex="0">
39+
{{ emailDeliveryEvent.email.htmlContent|raw }}
40+
</div>
41+
<div class="tab-pane fade" id="app-email-preview__text_content" role="tabpanel"
42+
aria-labelledby="app-email-preview__text_content_selector" tabindex="0">
43+
<pre>{{ emailDeliveryEvent.email.textContent }}</pre>
44+
</div>
45+
</article>
46+
</section>
2247
<aside class="app-email-preview__meta col-3">
2348
<ul class="app-email-preview__meta__list list-group">
2449
<li class="list-group-item">

translations/messages.zh_TW.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ Mails: 郵件
6666
Subject: 主旨
6767
EmailDeliveryEvent: 郵件投遞事件
6868
Kind: 種類
69+
Text Content: 文字內容
70+
HTML Content: HTML 內容
6971

7072
result_presenter.tabs.result: 執行結果
7173
result_presenter.tabs.answer: 正確答案

0 commit comments

Comments
 (0)