diff --git a/app/assets/javascripts/admin/controllers/modals/admin-incoming-email.js.es6 b/app/assets/javascripts/admin/controllers/modals/admin-incoming-email.js.es6 index bc9cd2edd8..3d57d2a6c3 100644 --- a/app/assets/javascripts/admin/controllers/modals/admin-incoming-email.js.es6 +++ b/app/assets/javascripts/admin/controllers/modals/admin-incoming-email.js.es6 @@ -2,6 +2,7 @@ import ModalFunctionality from 'discourse/mixins/modal-functionality'; import IncomingEmail from 'admin/models/incoming-email'; import computed from 'ember-addons/ember-computed-decorators'; import { longDate } from 'discourse/lib/formatter'; +import { popupAjaxError } from 'discourse/lib/ajax-error'; export default Ember.Controller.extend(ModalFunctionality, { @@ -12,6 +13,15 @@ export default Ember.Controller.extend(ModalFunctionality, { load(id) { return IncomingEmail.find(id).then(result => this.set("model", result)); + }, + + loadFromBounced(id) { + return IncomingEmail.findByBounced(id) + .then(result => this.set("model", result)) + .catch(error => { + this.send("closeModal"); + popupAjaxError(error); + }); } }); diff --git a/app/assets/javascripts/admin/models/incoming-email.js.es6 b/app/assets/javascripts/admin/models/incoming-email.js.es6 index d0386b2bc4..470c3fa56f 100644 --- a/app/assets/javascripts/admin/models/incoming-email.js.es6 +++ b/app/assets/javascripts/admin/models/incoming-email.js.es6 @@ -19,6 +19,11 @@ IncomingEmail.reopenClass({ return ajax(`/admin/email/incoming/${id}.json`); }, + findByBounced(id) { + return ajax(`/admin/email/incoming_from_bounced/${id}.json`); + }, + + findAll(filter, offset) { filter = filter || {}; offset = offset || 0; diff --git a/app/assets/javascripts/admin/routes/admin-email-bounced.js.es6 b/app/assets/javascripts/admin/routes/admin-email-bounced.js.es6 index 027a6c0f30..40dbc5a75f 100644 --- a/app/assets/javascripts/admin/routes/admin-email-bounced.js.es6 +++ b/app/assets/javascripts/admin/routes/admin-email-bounced.js.es6 @@ -1,2 +1,14 @@ +import showModal from 'discourse/lib/show-modal'; import AdminEmailLogs from 'admin/routes/admin-email-logs'; -export default AdminEmailLogs.extend({ status: "bounced" }); + +export default AdminEmailLogs.extend({ + status: "bounced", + + actions: { + showIncomingEmail(id) { + showModal('admin-incoming-email', { admin: true }); + this.controllerFor("modals/admin-incoming-email").loadFromBounced(id); + } + } + +}); diff --git a/app/assets/javascripts/admin/templates/email-bounced.hbs b/app/assets/javascripts/admin/templates/email-bounced.hbs index e2df9e04bf..9ebbb7d316 100644 --- a/app/assets/javascripts/admin/templates/email-bounced.hbs +++ b/app/assets/javascripts/admin/templates/email-bounced.hbs @@ -28,7 +28,7 @@ {{/if}}