discourse/app/assets/javascripts/admin/addon/routes/admin-badges/show.js
Ted Johansson 90dd91c6a1
FIX: Badge not showing as disabled when it is (#32591)
In the /admin/badges view, badges are showing as enabled even when they are verifiably disabled in the database.

This is happening because the defaults (needed to render the "new badge" form) are overwriting the actual value.

Since the enabled default is only used for "new badge" form, move it to the route where the other "new badge" defaults are being set.
2025-05-06 14:15:25 +08:00

30 lines
868 B
JavaScript
Vendored

import { get } from "@ember/object";
import Route from "@ember/routing/route";
import { service } from "@ember/service";
import Badge from "discourse/models/badge";
import { i18n } from "discourse-i18n";
export default class AdminBadgesShowRoute extends Route {
@service dialog;
@service adminBadges;
serialize(model) {
return { badge_id: get(model, "id") || "new" };
}
async model(params) {
await this.adminBadges.fetchBadges();
if (params.badge_id === "new") {
return Badge.create({
name: i18n("admin.badges.new_badge"),
enabled: true,
badge_type_id: this.adminBadges.badgeTypes[0].id,
badge_grouping_id: this.adminBadges.badgeGroupings[0].id,
trigger: this.adminBadges.badgeTriggers[0].id,
});
}
return this.adminBadges.badges.findBy("id", parseInt(params.badge_id, 10));
}
}