discourse/app/assets/javascripts/discourse/components/badge-title.js.es6
Jarek Radosz ac06c87b43
DEV: Remove badge-select-controller (#8207)
* 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
2019-10-18 02:17:05 +02:00

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"));
}
);
}
}
});