mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
* DEV: Remove badge-select-controller 1. The `selectableUserBadges` computed property of `badge-title` was being incorrectly overwritten, which triggered computed-property.override deprecation. 2. The `badge-select-controller` mixin contained properties that were used either by `badge-title` component or `badges/show` controller, but none were being used by both. This change moves properties where they belong, and removes the mixin. * Update app/assets/javascripts/discourse/controllers/badges/show.js.es6 Co-Authored-By: Robin Ward <robin.ward@gmail.com> * Improve code brevity
47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
import { ajax } from "discourse/lib/ajax";
|
|
import computed from "ember-addons/ember-computed-decorators";
|
|
|
|
export default Ember.Component.extend({
|
|
classNames: ["badge-title"],
|
|
|
|
saved: false,
|
|
saving: false,
|
|
|
|
@computed("saving")
|
|
savingStatus(saving) {
|
|
return saving ? I18n.t("saving") : I18n.t("save");
|
|
},
|
|
|
|
@computed("selectableUserBadges", "selectedUserBadgeId")
|
|
selectedUserBadge(selectableUserBadges, selectedUserBadgeId) {
|
|
return selectableUserBadges.findBy("id", parseInt(selectedUserBadgeId));
|
|
},
|
|
|
|
actions: {
|
|
save() {
|
|
this.setProperties({ saved: false, saving: true });
|
|
|
|
const badge_id = this.selectedUserBadgeId || 0;
|
|
|
|
ajax(this.currentUser.path + "/preferences/badge_title", {
|
|
type: "PUT",
|
|
data: { user_badge_id: badge_id }
|
|
}).then(
|
|
() => {
|
|
this.setProperties({
|
|
saved: true,
|
|
saving: false
|
|
});
|
|
this.currentUser.set(
|
|
"title",
|
|
this.get("selectedUserBadge.badge.name")
|
|
);
|
|
},
|
|
() => {
|
|
bootbox.alert(I18n.t("generic_error"));
|
|
}
|
|
);
|
|
}
|
|
}
|
|
});
|