Merge pull request #3886 from LeoMcA/filter-by-username

filter by username in email digest preview
This commit is contained in:
Robin Ward 2015-10-30 14:44:50 -04:00
commit eaa31cf488
6 changed files with 21 additions and 7 deletions

View File

@ -5,7 +5,7 @@ export default Ember.Controller.extend({
const model = this.get('model'); const model = this.get('model');
this.set('loading', true); 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')); model.setProperties(email.getProperties('html_content', 'text_content'));
this.set('loading', false); this.set('loading', false);
}); });

View File

@ -9,18 +9,20 @@
Discourse.EmailPreview = Discourse.Model.extend({}); Discourse.EmailPreview = Discourse.Model.extend({});
Discourse.EmailPreview.reopenClass({ Discourse.EmailPreview.reopenClass({
findDigest: function(lastSeenAt) { findDigest: function(lastSeenAt, username) {
if (Em.isEmpty(lastSeenAt)) { if (Em.isEmpty(lastSeenAt)) {
lastSeenAt = moment().subtract(7, 'days').format('YYYY-MM-DD'); 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", { return Discourse.ajax("/admin/email/preview-digest.json", {
data: {last_seen_at: lastSeenAt} data: { last_seen_at: lastSeenAt, username: username }
}).then(function (result) { }).then(function (result) {
return Discourse.EmailPreview.create(result); return Discourse.EmailPreview.create(result);
}); });
} }
}); });

View File

@ -4,6 +4,8 @@
<div class='span7 controls'> <div class='span7 controls'>
<label for='last-seen'>{{i18n 'admin.email.last_seen_user'}}</label> <label for='last-seen'>{{i18n 'admin.email.last_seen_user'}}</label>
{{input type="date" value=lastSeen id="last-seen"}} {{input type="date" value=lastSeen id="last-seen"}}
<label>{{i18n 'admin.email.user'}}:</label>
{{user-selector single="true" usernames=username}}
<button class='btn' {{action "refresh"}}>{{i18n 'admin.email.refresh'}}</button> <button class='btn' {{action "refresh"}}>{{i18n 'admin.email.refresh'}}</button>
<div class="toggle"> <div class="toggle">
<label>{{i18n 'admin.email.format'}}</label> <label>{{i18n 'admin.email.format'}}</label>

View File

@ -213,6 +213,14 @@ td.flaggers td {
display: inline-block; display: inline-block;
margin-right: 5px; margin-right: 5px;
} }
#last-seen {
float: none;
}
.ac-wrap {
display: inline-block;
vertical-align: middle;
padding: 0;
}
} }
.paste-users { .paste-users {

View File

@ -34,7 +34,9 @@ class Admin::EmailController < Admin::AdminController
def preview_digest def preview_digest
params.require(:last_seen_at) 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) render json: MultiJson.dump(html_content: renderer.html, text_content: renderer.text)
end end

View File

@ -66,7 +66,7 @@ describe Admin::EmailController do
end end
it "previews the digest" do 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 expect(response).to be_success
end end
end end