Log when and why an email was not sent in email_logs
This commit is contained in:
@@ -20,7 +20,7 @@ Discourse.EmailLog.reopenClass({
|
||||
|
||||
findAll: function(filter) {
|
||||
var result = Em.A();
|
||||
Discourse.ajax("/admin/email/logs.json", {
|
||||
Discourse.ajax("/admin/email/" + (filter === 'skipped' ? 'skipped' : 'logs') + ".json", {
|
||||
data: { filter: filter }
|
||||
}).then(function(logs) {
|
||||
_.each(logs,function(log) {
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/**
|
||||
Handles routes related to viewing email logs of emails that were NOT sent.
|
||||
|
||||
@class AdminEmailSkippedRoute
|
||||
@extends Discourse.Route
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
Discourse.AdminEmailSkippedRoute = Discourse.Route.extend({
|
||||
model: function() {
|
||||
return Discourse.EmailLog.findAll('skipped');
|
||||
},
|
||||
|
||||
renderTemplate: function() {
|
||||
this.render('admin/templates/email_skipped', {into: 'adminEmail'});
|
||||
}
|
||||
});
|
||||
@@ -17,6 +17,7 @@ Discourse.Route.buildRoutes(function() {
|
||||
|
||||
this.resource('adminEmail', { path: '/email'}, function() {
|
||||
this.route('logs');
|
||||
this.route('skipped');
|
||||
this.route('previewDigest', { path: '/preview-digest' });
|
||||
});
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<ul class="nav nav-pills">
|
||||
<li>{{#link-to 'adminEmail.index'}}{{i18n admin.email.settings}}{{/link-to}}</li>
|
||||
<li>{{#link-to 'adminEmail.logs'}}{{i18n admin.email.logs}}{{/link-to}}</li>
|
||||
<li>{{#link-to 'adminEmail.skipped'}}{{i18n admin.email.skipped}}{{/link-to}}</li>
|
||||
<li>{{#link-to 'adminEmail.previewDigest'}}{{i18n admin.email.preview_digest}}{{/link-to}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<table class='table'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{i18n admin.email.sent_at}}</th>
|
||||
<th>{{i18n admin.email.user}}</th>
|
||||
<th>{{i18n admin.email.to_address}}</th>
|
||||
<th>{{i18n admin.email.email_type}}</th>
|
||||
<th>{{i18n admin.email.skip_reason}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
{{#if model.length}}
|
||||
{{#groupedEach model}}
|
||||
<tr>
|
||||
<td>{{unboundDate created_at}}</td>
|
||||
<td>
|
||||
{{#if user}}
|
||||
{{#link-to 'adminUser' user}}{{avatar user imageSize="tiny"}}{{/link-to}}
|
||||
{{#link-to 'adminUser' user}}{{user.username}}{{/link-to}}
|
||||
{{else}}
|
||||
—
|
||||
{{/if}}
|
||||
</td>
|
||||
<td><a href='mailto:{{unbound to_address}}'>{{to_address}}</a></td>
|
||||
<td>{{email_type}}</td>
|
||||
<td>
|
||||
{{skipped_reason}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/groupedEach}}
|
||||
{{/if}}
|
||||
|
||||
</table>
|
||||
Reference in New Issue
Block a user