Update topic status to use more ES6 features, clean up

This commit is contained in:
Robin Ward 2017-01-13 15:48:49 -05:00
parent e8307ac24c
commit 5f08630c27

View File

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