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