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