2016-07-01 01:55:44 +08:00
|
|
|
import { ajax } from 'discourse/lib/ajax';
|
2015-08-19 09:24:09 +08:00
|
|
|
import Badge from 'discourse/models/badge';
|
2015-12-27 06:58:54 +08:00
|
|
|
import BadgeGrouping from 'discourse/models/badge-grouping';
|
2015-08-19 09:24:09 +08:00
|
|
|
|
2014-10-18 02:27:40 +08:00
|
|
|
export default Discourse.Route.extend({
|
|
|
|
_json: null,
|
|
|
|
|
|
|
|
model: function() {
|
|
|
|
var self = this;
|
2016-07-01 01:55:44 +08:00
|
|
|
return ajax('/admin/badges.json').then(function(json) {
|
2014-10-18 02:27:40 +08:00
|
|
|
self._json = json;
|
2015-08-19 09:24:09 +08:00
|
|
|
return Badge.createFromJson(json);
|
2014-10-18 02:27:40 +08:00
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
setupController: function(controller, model) {
|
|
|
|
var json = this._json,
|
2015-12-27 06:58:54 +08:00
|
|
|
triggers = [],
|
|
|
|
badgeGroupings = [];
|
2014-10-18 02:27:40 +08:00
|
|
|
|
|
|
|
_.each(json.admin_badges.triggers,function(v,k){
|
|
|
|
triggers.push({id: v, name: I18n.t('admin.badges.trigger_type.'+k)});
|
|
|
|
});
|
|
|
|
|
2015-12-27 06:58:54 +08:00
|
|
|
json.badge_groupings.forEach(function(badgeGroupingJson) {
|
|
|
|
badgeGroupings.push(BadgeGrouping.create(badgeGroupingJson));
|
|
|
|
});
|
|
|
|
|
2014-10-18 02:27:40 +08:00
|
|
|
controller.setProperties({
|
2015-12-27 06:58:54 +08:00
|
|
|
badgeGroupings: badgeGroupings,
|
2014-10-18 02:27:40 +08:00
|
|
|
badgeTypes: json.badge_types,
|
|
|
|
protectedSystemFields: json.admin_badges.protected_system_fields,
|
|
|
|
badgeTriggers: triggers,
|
|
|
|
model: model
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|