diff --git a/app/assets/javascripts/admin/models/flagged_post.js b/app/assets/javascripts/admin/models/flagged_post.js index b4b3691c481..06960678064 100644 --- a/app/assets/javascripts/admin/models/flagged_post.js +++ b/app/assets/javascripts/admin/models/flagged_post.js @@ -46,6 +46,14 @@ Discourse.FlaggedPost = Discourse.Post.extend({ return ""; }, + wasEdited: function () { + if (this.blank("last_revised_at")) { return false; } + var lastRevisedAt = Date.parse(this.get("last_revised_at")); + return _.some(this.get("post_actions"), function (postAction) { + return Date.parse(postAction.created_at) < lastRevisedAt; + }); + }.property("last_revised_at", "post_actions.@each.created_at"), + conversations: function () { var self = this; var conversations = []; @@ -142,7 +150,7 @@ Discourse.FlaggedPost.reopenClass({ return Discourse.ajax('/admin/flags/' + filter + '.json?offset=' + offset).then(function (data) { // users var userLookup = {}; - _.each(data.users,function (user) { + _.each(data.users, function (user) { userLookup[user.id] = Discourse.AdminUser.create(user); }); @@ -153,7 +161,7 @@ Discourse.FlaggedPost.reopenClass({ }); // posts - _.each(data.posts,function (post) { + _.each(data.posts, function (post) { var f = Discourse.FlaggedPost.create(post); f.userLookup = userLookup; f.topicLookup = topicLookup; diff --git a/app/assets/javascripts/admin/templates/flags.js.handlebars b/app/assets/javascripts/admin/templates/flags.js.handlebars index 785c702e8bb..5c1c2a2c2cc 100644 --- a/app/assets/javascripts/admin/templates/flags.js.handlebars +++ b/app/assets/javascripts/admin/templates/flags.js.handlebars @@ -29,6 +29,7 @@ {{#if flaggedPost.postAuthorFlagged}} {{#if flaggedPost.user}} {{#link-to 'adminUser' flaggedPost.user}}{{avatar flaggedPost.user imageSize="small"}}{{/link-to}} + {{#if flaggedPost.wasEdited}}{{/if}} {{/if}} {{/if}} diff --git a/app/assets/stylesheets/common/admin/admin_base.scss b/app/assets/stylesheets/common/admin/admin_base.scss index 0c539578e3e..232d4990556 100644 --- a/app/assets/stylesheets/common/admin/admin_base.scss +++ b/app/assets/stylesheets/common/admin/admin_base.scss @@ -504,6 +504,7 @@ section.details { .user { width: 20px; padding: 8px 0 0 0; + text-align: center; } .excerpt { max-width: 700px; diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 9b17185e9b3..0b918d425a3 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -1512,6 +1512,7 @@ en: no_results: "There are no flags." topic_flagged: "This topic has been flagged." visit_topic: "Visit the topic to take action" + was_edited: "Post was edited after the first flag" summary: action_type_3: diff --git a/lib/flag_query.rb b/lib/flag_query.rb index ebf841bc9fc..3c0fb507685 100644 --- a/lib/flag_query.rb +++ b/lib/flag_query.rb @@ -25,7 +25,12 @@ module FlagQuery p.topic_id, p.post_number, p.hidden, - p.deleted_at + p.deleted_at, + (SELECT pr.created_at + FROM post_revisions pr + WHERE pr.post_id = p.id AND pr.user_id = p.user_id + ORDER BY created_at DESC + LIMIT 1) AS last_revised_at FROM posts p WHERE p.id in (:post_ids)").map_exec(OpenStruct, post_ids: post_ids)