diff --git a/app/assets/javascripts/discourse/controllers/preferences/badge-title.js.es6 b/app/assets/javascripts/discourse/controllers/preferences/badge-title.js.es6
index a600b00f03f..85e3613d346 100644
--- a/app/assets/javascripts/discourse/controllers/preferences/badge-title.js.es6
+++ b/app/assets/javascripts/discourse/controllers/preferences/badge-title.js.es6
@@ -18,7 +18,13 @@ export default Ember.ArrayController.extend({
}
}.property('saving'),
- selectableUserBadges: Em.computed.filterBy('model', 'badge.allow_title', true),
+ selectableUserBadges: function() {
+ var items = this.get('model').filterBy('badge.allow_title', true);
+ items.unshiftObject(Em.Object.create({
+ badge: Discourse.Badge.create({name: I18n.t('badges.no_title')})
+ }));
+ return items;
+ }.property('model'),
selectedUserBadge: function() {
var selectedUserBadgeId = parseInt(this.get('selectedUserBadgeId'));
diff --git a/app/assets/javascripts/discourse/templates/user/badge-title.js.handlebars b/app/assets/javascripts/discourse/templates/user/badge-title.js.handlebars
index 81ad2f65fc1..e9951cae46a 100644
--- a/app/assets/javascripts/discourse/templates/user/badge-title.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/user/badge-title.js.handlebars
@@ -8,9 +8,9 @@
-
+
- {{combo-box valueAttribute="id" value=selectedUserBadgeId nameProperty="badge.name" content=selectableUserBadges}}
+ {{combo-box valueAttribute="id" value=selectedUserBadgeId nameProperty="badge.displayName" content=selectableUserBadges}}
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 9af380f2ffa..5e8951604db 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -67,10 +67,13 @@ class UsersController < ApplicationController
user = fetch_user_from_params
guardian.ensure_can_edit!(user)
- user_badge = UserBadge.find(params[:user_badge_id])
- if user_badge.user == user && user_badge.badge.allow_title?
+ user_badge = UserBadge.find_by(id: params[:user_badge_id])
+ if user_badge && user_badge.user == user && user_badge.badge.allow_title?
user.title = user_badge.badge.name
user.save!
+ else
+ user.title = ''
+ user.save!
end
render nothing: true
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index 87e59b77457..218c40932f4 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -1953,6 +1953,7 @@ en:
one: "1 granted"
other: "%{count} granted"
select_badge_for_title: Select a badge to use as your title
+ no_title: ""
badge:
editor:
name: Editor