mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Current title wasn't visible when assigning badge title
This commit is contained in:
parent
52be3c131d
commit
1959745c2c
@ -1,28 +1,37 @@
|
|||||||
import I18n from "I18n";
|
import I18n from "I18n";
|
||||||
import discourseComputed from "discourse-common/utils/decorators";
|
|
||||||
import Component from "@ember/component";
|
import Component from "@ember/component";
|
||||||
import { ajax } from "discourse/lib/ajax";
|
import { ajax } from "discourse/lib/ajax";
|
||||||
|
|
||||||
export default Component.extend({
|
export default Component.extend({
|
||||||
classNames: ["badge-title"],
|
classNames: ["badge-title"],
|
||||||
|
|
||||||
|
selectedUserBadgeId: null,
|
||||||
|
selectableUserBadges: null,
|
||||||
saved: false,
|
saved: false,
|
||||||
saving: false,
|
saving: false,
|
||||||
|
|
||||||
@discourseComputed("selectableUserBadges", "selectedUserBadgeId")
|
init() {
|
||||||
selectedUserBadge(selectableUserBadges, selectedUserBadgeId) {
|
this._super(...arguments);
|
||||||
return selectableUserBadges.findBy("id", parseInt(selectedUserBadgeId, 10));
|
|
||||||
|
const badge = this.selectableUserBadges.findBy(
|
||||||
|
"badge.name",
|
||||||
|
this.currentUser.title
|
||||||
|
);
|
||||||
|
this.selectedUserBadgeId = badge ? badge.id : 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
save() {
|
save() {
|
||||||
this.setProperties({ saved: false, saving: true });
|
this.setProperties({ saved: false, saving: true });
|
||||||
|
|
||||||
const badge_id = this.selectedUserBadgeId || 0;
|
const selectedUserBadge = this.selectableUserBadges.findBy(
|
||||||
|
"id",
|
||||||
|
this.selectedUserBadgeId
|
||||||
|
);
|
||||||
|
|
||||||
ajax(this.currentUser.path + "/preferences/badge_title", {
|
ajax(this.currentUser.path + "/preferences/badge_title", {
|
||||||
type: "PUT",
|
type: "PUT",
|
||||||
data: { user_badge_id: badge_id }
|
data: { user_badge_id: selectedUserBadge ? selectedUserBadge.id : 0 }
|
||||||
}).then(
|
}).then(
|
||||||
() => {
|
() => {
|
||||||
this.setProperties({
|
this.setProperties({
|
||||||
@ -31,7 +40,7 @@ export default Component.extend({
|
|||||||
});
|
});
|
||||||
this.currentUser.set(
|
this.currentUser.set(
|
||||||
"title",
|
"title",
|
||||||
this.get("selectedUserBadge.badge.name")
|
selectedUserBadge ? selectedUserBadge.badge.name : ""
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
|
@ -21,6 +21,7 @@ export default Controller.extend({
|
|||||||
selectableUserBadges(filteredList) {
|
selectableUserBadges(filteredList) {
|
||||||
return [
|
return [
|
||||||
EmberObject.create({
|
EmberObject.create({
|
||||||
|
id: 0,
|
||||||
badge: Badge.create({ name: I18n.t("badges.none") })
|
badge: Badge.create({ name: I18n.t("badges.none") })
|
||||||
}),
|
}),
|
||||||
...filteredList.uniqBy("badge.name")
|
...filteredList.uniqBy("badge.name")
|
||||||
|
@ -13,6 +13,7 @@ componentTest("badge title", {
|
|||||||
this.set("subject", selectKit());
|
this.set("subject", selectKit());
|
||||||
this.set("selectableUserBadges", [
|
this.set("selectableUserBadges", [
|
||||||
EmberObject.create({
|
EmberObject.create({
|
||||||
|
id: 0,
|
||||||
badge: { name: "(none)" }
|
badge: { name: "(none)" }
|
||||||
}),
|
}),
|
||||||
EmberObject.create({
|
EmberObject.create({
|
||||||
|
Loading…
Reference in New Issue
Block a user