diff --git a/app/assets/javascripts/admin/controllers/admin-email-preview-digest.js.es6 b/app/assets/javascripts/admin/controllers/admin-email-preview-digest.js.es6 index f259acba84f..8a3fd0b9609 100644 --- a/app/assets/javascripts/admin/controllers/admin-email-preview-digest.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-email-preview-digest.js.es6 @@ -5,7 +5,7 @@ export default Ember.Controller.extend({ const model = this.get('model'); this.set('loading', true); - Discourse.EmailPreview.findDigest(this.get('lastSeen')).then(email => { + Discourse.EmailPreview.findDigest(this.get('lastSeen'), this.get('username')).then(email => { model.setProperties(email.getProperties('html_content', 'text_content')); this.set('loading', false); }); diff --git a/app/assets/javascripts/admin/models/email_preview.js b/app/assets/javascripts/admin/models/email_preview.js index b754095812c..8ae9bdfcd4f 100644 --- a/app/assets/javascripts/admin/models/email_preview.js +++ b/app/assets/javascripts/admin/models/email_preview.js @@ -9,18 +9,20 @@ Discourse.EmailPreview = Discourse.Model.extend({}); Discourse.EmailPreview.reopenClass({ - findDigest: function(lastSeenAt) { + findDigest: function(lastSeenAt, username) { if (Em.isEmpty(lastSeenAt)) { lastSeenAt = moment().subtract(7, 'days').format('YYYY-MM-DD'); } + if (Em.isEmpty(username)) { + username = Discourse.User.current().username; + } + return Discourse.ajax("/admin/email/preview-digest.json", { - data: {last_seen_at: lastSeenAt} + data: { last_seen_at: lastSeenAt, username: username } }).then(function (result) { return Discourse.EmailPreview.create(result); }); } }); - - diff --git a/app/assets/javascripts/admin/templates/email_preview_digest.hbs b/app/assets/javascripts/admin/templates/email_preview_digest.hbs index 83d99db35ff..630260f1317 100644 --- a/app/assets/javascripts/admin/templates/email_preview_digest.hbs +++ b/app/assets/javascripts/admin/templates/email_preview_digest.hbs @@ -4,6 +4,8 @@
{{input type="date" value=lastSeen id="last-seen"}} + + {{user-selector single="true" usernames=username}}
diff --git a/app/assets/stylesheets/common/admin/admin_base.scss b/app/assets/stylesheets/common/admin/admin_base.scss index 63c01ffed80..9046e2505ab 100644 --- a/app/assets/stylesheets/common/admin/admin_base.scss +++ b/app/assets/stylesheets/common/admin/admin_base.scss @@ -213,6 +213,14 @@ td.flaggers td { display: inline-block; margin-right: 5px; } + #last-seen { + float: none; + } + .ac-wrap { + display: inline-block; + vertical-align: middle; + padding: 0; + } } .paste-users { diff --git a/app/controllers/admin/email_controller.rb b/app/controllers/admin/email_controller.rb index 8a6615f721d..5ae6a320566 100644 --- a/app/controllers/admin/email_controller.rb +++ b/app/controllers/admin/email_controller.rb @@ -34,7 +34,9 @@ class Admin::EmailController < Admin::AdminController def preview_digest params.require(:last_seen_at) - renderer = Email::Renderer.new(UserNotifications.digest(current_user, since: params[:last_seen_at])) + params.require(:username) + user = User.find_by_username(params[:username]) + renderer = Email::Renderer.new(UserNotifications.digest(user, since: params[:last_seen_at])) render json: MultiJson.dump(html_content: renderer.html, text_content: renderer.text) end diff --git a/spec/controllers/admin/email_controller_spec.rb b/spec/controllers/admin/email_controller_spec.rb index 2820cb15431..68b0ee5319f 100644 --- a/spec/controllers/admin/email_controller_spec.rb +++ b/spec/controllers/admin/email_controller_spec.rb @@ -66,7 +66,7 @@ describe Admin::EmailController do end it "previews the digest" do - xhr :get, :preview_digest, last_seen_at: 1.week.ago + xhr :get, :preview_digest, last_seen_at: 1.week.ago, username: user.username expect(response).to be_success end end