diff --git a/app/assets/javascripts/discourse/controllers/discovery_topics_controller.js b/app/assets/javascripts/discourse/controllers/discovery_topics_controller.js index a3873ffdd47..a9d4a0e1af7 100644 --- a/app/assets/javascripts/discourse/controllers/discovery_topics_controller.js +++ b/app/assets/javascripts/discourse/controllers/discovery_topics_controller.js @@ -8,10 +8,6 @@ **/ Discourse.DiscoveryTopicsController = Discourse.DiscoveryController.extend({ actions: { - // Star a topic - toggleStar: function(topic) { - topic.toggleStar(); - }, // Show newly inserted topics showInserted: function() { diff --git a/app/assets/javascripts/discourse/controllers/topic_list_item_controller.js b/app/assets/javascripts/discourse/controllers/topic_list_item_controller.js new file mode 100644 index 00000000000..487a42507a0 --- /dev/null +++ b/app/assets/javascripts/discourse/controllers/topic_list_item_controller.js @@ -0,0 +1,21 @@ +/** + Handles displaying of a topic as a list item + + @class TopicListItemController + @extends Discourse.ObjectController + @namespace Discourse + @module Discourse +**/ +Discourse.TopicListItemController = Ember.ObjectController.extend({ + needs: ['discoveryTopics'], + + canStar: Em.computed.alias('controllers.discoveryTopics.currentUser.id'), + hideCategory: Em.computed.alias('controllers.discoveryTopics.hideCategory'), + + actions: { + toggleStar: function() { + this.get('model').toggleStar(); + } + } +}); + diff --git a/app/assets/javascripts/discourse/templates/discovery/topics.js.handlebars b/app/assets/javascripts/discourse/templates/discovery/topics.js.handlebars index 80a3a037dca..def3ba0d619 100644 --- a/app/assets/javascripts/discourse/templates/discovery/topics.js.handlebars +++ b/app/assets/javascripts/discourse/templates/discovery/topics.js.handlebars @@ -45,7 +45,7 @@ {{/if}} - {{collection contentBinding="topics" tagName="tbody" itemViewClass="Discourse.TopicListItemView"}} + {{each topics itemController="topicListItem" itemViewClass="Discourse.TopicListItemView"}} {{/if}} 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 ca9d6ae98df..8d4585db040 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 @@ -1,6 +1,6 @@ -{{#if controller.currentUser.id}} +{{#if canStar}} - + {{/if}} @@ -30,10 +30,8 @@ {{/if}} -{{#unless controller.hideCategory}} - - {{categoryLink category}} - +{{#unless hideCategory}} +{{categoryLink category}} {{/unless}}