Fixed sender name and email in email preview link

refs https://github.com/TryGhost/Team/issues/1568

Sender name and email of newsletter was not used in the preview.
This commit is contained in:
Simon Backx 2022-04-28 12:01:25 +02:00
parent ed1ea85fcc
commit f8769020fa
2 changed files with 17 additions and 2 deletions

View File

@ -20,7 +20,7 @@
<div class="gh-pe-mobile-screen">
<div class="gh-pe-emailclient-sender">
<p>
<span class="strong">{{this.config.blogTitle}}</span> &lt;{{this.settings.membersFromAddress}}&gt;
<span class="strong">{{or this.newsletter.senderName this.settings.title}}</span> &lt;{{full-email-address (or this.newsletter.senderEmail "noreply")}}&gt;
</p>
<p><span class="dark">To:</span> Jamie Larson &lt;jamie@example.com&gt;</p>
</div>
@ -35,7 +35,7 @@
<div class="gh-pe-emailclient-mockup">
<div class="gh-pe-emailclient-sender">
<p>
<span class="strong">{{this.config.blogTitle}}</span> &lt;{{this.settings.membersFromAddress}}&gt;
<span class="strong">{{or this.newsletter.senderName this.settings.title}}</span> &lt;{{full-email-address (or this.newsletter.senderEmail "noreply")}}&gt;
</p>
<p><span class="dark">To:</span> Jamie Larson &lt;jamie@example.com&gt;</p>
</div>

View File

@ -20,6 +20,7 @@ export default class EmailPreviewModal extends Component {
@service config;
@service ghostPaths;
@service settings;
@service store;
static modalOptions = {
className: 'fullscreen-modal-full-overlay fullscreen-modal-email-preview'
@ -27,6 +28,7 @@ export default class EmailPreviewModal extends Component {
@tracked tab = 'desktop';
@tracked subject = null;
@tracked newsletter = null;
// cached to avoid re-fetching when changing tabs
html = null;
@ -52,6 +54,19 @@ export default class EmailPreviewModal extends Component {
async _fetchEmailData() {
let {html, subject} = this;
// Fetch newsletter
if (!this.newsletter && this.args.data.newsletterId) {
const newsletters = (await this.store.query('newsletter', {filter: 'status:active+id:' + this.args.data.newsletterId, limit: 1})).toArray();
const defaultNewsletter = newsletters[0];
this.newsletter = defaultNewsletter;
}
if (!this.newsletter) {
const newsletters = (await this.store.query('newsletter', {filter: 'status:active', limit: 1})).toArray();
const defaultNewsletter = newsletters[0];
this.newsletter = defaultNewsletter;
}
if (html && subject) {
return;
}