38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
import Badge from 'discourse/models/badge';
|
|
|
|
export default Ember.Mixin.create({
|
|
saving: false,
|
|
saved: false,
|
|
|
|
selectableUserBadges: function() {
|
|
let items = this.get('filteredList');
|
|
items = _.uniq(items, false, function(e) { return e.get('badge.name'); });
|
|
items.unshiftObject(Em.Object.create({
|
|
badge: Badge.create({name: I18n.t('badges.none')})
|
|
}));
|
|
return items;
|
|
}.property('filteredList'),
|
|
|
|
savingStatus: function() {
|
|
if (this.get('saving')) {
|
|
return I18n.t('saving');
|
|
} else {
|
|
return I18n.t('save');
|
|
}
|
|
}.property('saving'),
|
|
|
|
selectedUserBadge: function() {
|
|
const selectedUserBadgeId = parseInt(this.get('selectedUserBadgeId'));
|
|
let selectedUserBadge = null;
|
|
this.get('selectableUserBadges').forEach(function(userBadge) {
|
|
if (userBadge.get('id') === selectedUserBadgeId) {
|
|
selectedUserBadge = userBadge;
|
|
}
|
|
});
|
|
return selectedUserBadge;
|
|
}.property('selectedUserBadgeId'),
|
|
|
|
disableSave: Em.computed.alias('saving')
|
|
});
|
|
|