2023-10-11 02:38:59 +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";
|
2019-10-22 21:46:10 +08:00
|
|
|
import DiscourseRoute from "discourse/routes/discourse";
|
2023-10-18 18:07:09 +08:00
|
|
|
import I18n from "discourse-i18n";
|
2015-08-19 09:24:09 +08:00
|
|
|
|
2022-08-03 17:12:17 +08:00
|
|
|
export default class AdminBadgesRoute extends DiscourseRoute {
|
|
|
|
_json = null;
|
2014-10-18 02:27:40 +08:00
|
|
|
|
2022-08-03 17:12:17 +08:00
|
|
|
async model() {
|
|
|
|
let json = await ajax("/admin/badges.json");
|
|
|
|
this._json = json;
|
|
|
|
return Badge.createFromJson(json);
|
|
|
|
}
|
2014-10-18 02:27:40 +08:00
|
|
|
|
2016-10-21 01:26:41 +08:00
|
|
|
setupController(controller, model) {
|
|
|
|
const json = this._json;
|
|
|
|
const badgeTriggers = [];
|
|
|
|
const badgeGroupings = [];
|
2014-10-18 02:27:40 +08:00
|
|
|
|
2018-11-20 21:46:58 +08:00
|
|
|
Object.keys(json.admin_badges.triggers).forEach((k) => {
|
|
|
|
const id = json.admin_badges.triggers[k];
|
2016-10-21 01:26:41 +08:00
|
|
|
badgeTriggers.push({
|
2018-11-20 21:46:58 +08:00
|
|
|
id,
|
2016-10-21 01:26:41 +08:00
|
|
|
name: I18n.t("admin.badges.trigger_type." + k),
|
|
|
|
});
|
2014-10-18 02:27:40 +08:00
|
|
|
});
|
|
|
|
|
2015-12-27 06:58:54 +08:00
|
|
|
json.badge_groupings.forEach(function (badgeGroupingJson) {
|
|
|
|
badgeGroupings.push(BadgeGrouping.create(badgeGroupingJson));
|
|
|
|
});
|
|
|
|
|
2022-08-03 17:12:17 +08:00
|
|
|
controller.badgeGroupings = badgeGroupings;
|
|
|
|
controller.badgeTypes = json.badge_types;
|
|
|
|
controller.protectedSystemFields =
|
|
|
|
json.admin_badges.protected_system_fields;
|
|
|
|
controller.badgeTriggers = badgeTriggers;
|
|
|
|
controller.model = model;
|
|
|
|
}
|
|
|
|
}
|