This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/views/topic-status.js.es6
2015-08-31 09:21:58 +08:00

64 lines
1.8 KiB
JavaScript

export default Ember.Object.extend({
renderDiv: function(){
return this.get('statuses').length > 0 && !this.noDiv;
}.property(),
statuses: function(){
var topic = this.get("topic");
var results = [];
var self = this;
// TODO, custom statuses? via override?
if(topic.get('is_warning')){
results.push({icon: 'envelope', key: 'warning'});
}
if(topic.get('bookmarked')){
var url = topic.get('url');
var postNumbers = topic.get('bookmarked_post_numbers');
var extraClasses = "";
if(postNumbers && postNumbers[0] > 1) {
url += '/' + postNumbers[0];
} else {
extraClasses = "op-bookmark";
}
results.push({extraClasses: extraClasses, icon: 'bookmark', key: 'bookmarked', href: url});
}
if (topic.get('closed') && topic.get('archived')) {
results.push({icon: 'lock', key: 'locked_and_archived'});
} else if(topic.get('closed')){
results.push({icon: 'lock', key: 'locked'});
} else if(topic.get('archived')){
results.push({icon: 'lock', key: 'archived'});
}
if(topic.get('pinned')){
results.push({icon: 'thumb-tack', key: 'pinned'});
}
if(topic.get('unpinned')){
results.push({icon: 'thumb-tack unpinned', key: 'unpinned'});
}
if(topic.get('invisible')){
results.push({icon: 'eye-slash', key: 'invisible'});
}
_.each(results, function(result){
result.title = I18n.t("topic_statuses." + result.key + ".help");
if(!self.disableActions && (result.key === "pinned" ||result.key === "unpinned")){
result.openTag = 'a href';
result.closeTag = 'a';
} else {
result.openTag = 'span';
result.closeTag = 'span';
}
});
return results;
}.property()
});