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)