mirror of
https://github.com/discourse/discourse.git
synced 2025-02-14 14:13:17 +08:00
41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
import ObjectController from 'discourse/controllers/object';
|
|
|
|
// Handles displaying of a topic as a list item
|
|
export default ObjectController.extend({
|
|
needs: ['discovery/topics'],
|
|
|
|
canStar: Em.computed.alias('controllers.discovery/topics.currentUser.id'),
|
|
bulkSelectEnabled: Em.computed.alias('controllers.discovery/topics.bulkSelectEnabled'),
|
|
showTopicPostBadges: Em.computed.not('controllers.discovery/topics.new'),
|
|
|
|
checked: function(key, value) {
|
|
var selected = this.get('controllers.discovery/topics.selected'),
|
|
topic = this.get('model');
|
|
|
|
if (arguments.length > 1) {
|
|
if (value) {
|
|
selected.addObject(topic);
|
|
} else {
|
|
selected.removeObject(topic);
|
|
}
|
|
}
|
|
return selected.contains(topic);
|
|
}.property('controllers.discovery/topics.selected.length'),
|
|
|
|
titleColSpan: function() {
|
|
// Uncategorized pinned topics will span the title and category column in the topic list.
|
|
return (!this.get('controllers.discovery/topics.hideCategory') &&
|
|
this.get('model.isPinnedUncategorized') ? 2 : 1);
|
|
}.property('controllers.discovery/topics.hideCategory', 'model.isPinnedUncategorized'),
|
|
|
|
hideCategory: function() {
|
|
return this.get('controllers.discovery/topics.hideCategory') || this.get('titleColSpan') > 1;
|
|
}.property('controllers.discovery/topics.hideCategory', 'titleColSpan'),
|
|
|
|
actions: {
|
|
toggleStar: function() {
|
|
this.get('model').toggleStar();
|
|
}
|
|
}
|
|
});
|