diff --git a/app/assets/javascripts/discourse/models/topic.js b/app/assets/javascripts/discourse/models/topic.js
index 8a665f9a2a8..a46ee518855 100644
--- a/app/assets/javascripts/discourse/models/topic.js
+++ b/app/assets/javascripts/discourse/models/topic.js
@@ -127,11 +127,6 @@ Discourse.Topic = Discourse.Model.extend({
return this.get('archetype') === 'private_message';
}).property('archetype'),
- // Does this topic only have a single post?
- singlePost: (function() {
- return this.get('posts_count') === 1;
- }).property('posts_count'),
-
toggleStatus: function(property) {
this.toggleProperty(property);
return $.post("" + (this.get('url')) + "/status", {
diff --git a/app/assets/javascripts/discourse/templates/list/topic_list_item.js.handlebars b/app/assets/javascripts/discourse/templates/list/topic_list_item.js.handlebars
index 0f66a1c4fd1..b63c19e70d1 100644
--- a/app/assets/javascripts/discourse/templates/list/topic_list_item.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/list/topic_list_item.js.handlebars
@@ -38,16 +38,16 @@
{{number views numberKey="views_long"}} |
- {{#if singlePost}}
-
- {{{age}}}
- |
- |
- {{else}}
+ {{#if bumped}}
{{{age}}}
|
- {{{last_post_age}}}
+ {{{bumped_age}}}
|
+ {{else}}
+
+ {{{age}}}
+ |
+ |
{{/if}}
diff --git a/app/assets/javascripts/discourse/templates/suggested_topic.js.handlebars b/app/assets/javascripts/discourse/templates/suggested_topic.js.handlebars
index f9f33a613d9..e58a5711742 100644
--- a/app/assets/javascripts/discourse/templates/suggested_topic.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/suggested_topic.js.handlebars
@@ -25,18 +25,18 @@
{{number views numberKey="views_long"}} |
- {{#if singlePost}}
-
- {{{age}}}
- |
- |
- {{else}}
+ {{#if bumped}}
{{{age}}}
|
- {{{last_post_age}}}
+ {{{bumped_age}}}
|
+ {{else}}
+
+ {{{age}}}
+ |
+ |
{{/if}}
{{/group}}
diff --git a/app/serializers/listable_topic_serializer.rb b/app/serializers/listable_topic_serializer.rb
index 5ddf500a946..25bca68bf7c 100644
--- a/app/serializers/listable_topic_serializer.rb
+++ b/app/serializers/listable_topic_serializer.rb
@@ -8,6 +8,9 @@ class ListableTopicSerializer < BasicTopicSerializer
:image_url,
:created_at,
:last_posted_at,
+ :bumped,
+ :bumped_at,
+ :bumped_age,
:age,
:unseen,
:last_read_post_number,
@@ -18,6 +21,16 @@ class ListableTopicSerializer < BasicTopicSerializer
def age
AgeWords.age_words(Time.now - (object.created_at || Time.now))
end
+
+ def bumped
+ object.created_at < object.bumped_at
+ end
+
+ def bumped_age
+ return nil if object.bumped_at.blank?
+ AgeWords.age_words(Time.now - object.bumped_at)
+ end
+ alias include_bumped_age? :bumped
def seen
object.user_data.present?
diff --git a/app/serializers/suggested_topic_serializer.rb b/app/serializers/suggested_topic_serializer.rb
index 353e9c84e67..b6581fdb7ad 100644
--- a/app/serializers/suggested_topic_serializer.rb
+++ b/app/serializers/suggested_topic_serializer.rb
@@ -1,11 +1,6 @@
class SuggestedTopicSerializer < ListableTopicSerializer
- attributes :archetype, :like_count, :views, :last_post_age
+ attributes :archetype, :like_count, :views
has_one :category, embed: :objects
- def last_post_age
- return nil if object.last_posted_at.blank?
- AgeWords.age_words(Time.now - object.last_posted_at)
- end
-
end
diff --git a/app/serializers/topic_list_item_serializer.rb b/app/serializers/topic_list_item_serializer.rb
index 09a2d3a8237..eeed912515f 100644
--- a/app/serializers/topic_list_item_serializer.rb
+++ b/app/serializers/topic_list_item_serializer.rb
@@ -8,7 +8,6 @@ class TopicListItemSerializer < ListableTopicSerializer
:pinned,
:closed,
:archived,
- :last_post_age,
:starred,
:has_best_of,
:archetype
@@ -16,11 +15,6 @@ class TopicListItemSerializer < ListableTopicSerializer
has_one :category
has_many :posters, serializer: TopicPosterSerializer, embed: :objects
- def last_post_age
- return nil if object.last_posted_at.blank?
- AgeWords.age_words(Time.now - object.last_posted_at)
- end
-
def starred
object.user_data.starred?
end