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/routes/badges_show_route.js
2014-05-19 10:27:09 +05:30

44 lines
1.2 KiB
JavaScript

/**
Shows a particular badge.
@class BadgesShowRoute
@extends Discourse.Route
@namespace Discourse
@module Discourse
**/
Discourse.BadgesShowRoute = Ember.Route.extend({
serialize: function(model) {
return {id: model.get('id'), slug: model.get('name').replace(/[^A-Za-z0-9_]+/g, '-').toLowerCase()};
},
model: function(params) {
if (PreloadStore.get('badge')) {
return PreloadStore.getAndRemove('badge').then(function(json) {
return Discourse.Badge.createFromJson(json);
});
} else {
return Discourse.Badge.findById(params.id);
}
},
setupController: function(controller, model) {
Discourse.UserBadge.findByBadgeId(model.get('id')).then(function(userBadges) {
controller.set('userBadges', userBadges);
controller.set('userBadgesLoaded', true);
});
controller.set('model', model);
Discourse.set('title', model.get('displayName'));
},
actions: {
loadMore: function() {
var self = this;
Discourse.UserBadge.findByBadgeId(this.currentModel.get('id'), {
granted_before: this.get('controller.minGrantedAt') / 1000
}).then(function(userBadges) {
self.get('controller.userBadges').pushObjects(userBadges);
});
}
}
});