mirror of
https://github.com/discourse/discourse.git
synced 2024-11-29 03:23:43 +08:00
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
import Badge from "discourse/models/badge";
|
|
import BadgeGrouping from "discourse/models/badge-grouping";
|
|
import DiscourseRoute from "discourse/routes/discourse";
|
|
import I18n from "I18n";
|
|
import { ajax } from "discourse/lib/ajax";
|
|
|
|
export default DiscourseRoute.extend({
|
|
_json: null,
|
|
|
|
model() {
|
|
return ajax("/admin/badges.json").then((json) => {
|
|
this._json = json;
|
|
return Badge.createFromJson(json);
|
|
});
|
|
},
|
|
|
|
setupController(controller, model) {
|
|
const json = this._json;
|
|
const badgeTriggers = [];
|
|
const badgeGroupings = [];
|
|
|
|
Object.keys(json.admin_badges.triggers).forEach((k) => {
|
|
const id = json.admin_badges.triggers[k];
|
|
badgeTriggers.push({
|
|
id,
|
|
name: I18n.t("admin.badges.trigger_type." + k),
|
|
});
|
|
});
|
|
|
|
json.badge_groupings.forEach(function (badgeGroupingJson) {
|
|
badgeGroupings.push(BadgeGrouping.create(badgeGroupingJson));
|
|
});
|
|
|
|
controller.setProperties({
|
|
badgeGroupings: badgeGroupings,
|
|
badgeTypes: json.badge_types,
|
|
protectedSystemFields: json.admin_badges.protected_system_fields,
|
|
badgeTriggers,
|
|
model,
|
|
});
|
|
},
|
|
});
|