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/components/badge-card.js.es6

50 lines
1.2 KiB
JavaScript

import computed from 'ember-addons/ember-computed-decorators';
import DiscourseURL from 'discourse/lib/url';
import { emojiUnescape } from 'discourse/lib/text';
import { escapeExpression } from 'discourse/lib/utilities';
export default Ember.Component.extend({
size: 'medium',
classNameBindings: [':badge-card', 'size', 'badge.slug', 'navigateOnClick:hyperlink'],
click(e){
if (e.target && e.target.nodeName === "A") {
return true;
}
if (!this.get('navigateOnClick')) {
return false;
}
var url = this.get('badge.url');
const username = this.get('username');
if (username) {
url = url + "?username=" + encodeURIComponent(username);
}
DiscourseURL.routeTo(url);
return true;
},
@computed('count', 'badge.grant_count')
displayCount(count, grantCount) {
if (count == null) {
return grantCount;
}
if (count > 1) {
return count;
}
},
@computed('size')
summary(size) {
if (size === 'large') {
const longDescription = this.get('badge.long_description');
if (!_.isEmpty(longDescription)) {
return emojiUnescape(escapeExpression(longDescription));
}
}
return escapeExpression(this.get('badge.description'));
}
});