diff --git a/app/assets/javascripts/discourse/templates/badges/index.js.handlebars b/app/assets/javascripts/discourse/templates/badges/index.js.handlebars index 5c8a4eb80ef..646af7065b0 100644 --- a/app/assets/javascripts/discourse/templates/badges/index.js.handlebars +++ b/app/assets/javascripts/discourse/templates/badges/index.js.handlebars @@ -5,6 +5,7 @@ {{#each}} + {{#if this.has_badge}}{{/if}} {{user-badge badge=this}} {{displayDescription}} {{i18n badges.granted count=grant_count}} diff --git a/app/assets/stylesheets/common/base/user-badges.scss b/app/assets/stylesheets/common/base/user-badges.scss index 025327e8139..07503b54e93 100644 --- a/app/assets/stylesheets/common/base/user-badges.scss +++ b/app/assets/stylesheets/common/base/user-badges.scss @@ -76,15 +76,23 @@ table.badges-listing { } td { - padding: 10px 20px; + padding: 10px 0px; + } + + td.granted{ + color: $success; + font-size: 120%; } td.grant-count { text-align: right; + color: scale-color($primary, $lightness: 40%); + font-size: 90%; } td.badge, td.grant-count { white-space: nowrap; + padding-right: 10px; } td.info { diff --git a/app/controllers/badges_controller.rb b/app/controllers/badges_controller.rb index 3520f0dfead..ec993069b9c 100644 --- a/app/controllers/badges_controller.rb +++ b/app/controllers/badges_controller.rb @@ -5,7 +5,11 @@ class BadgesController < ApplicationController badges = Badge.all badges = badges.where(enabled: true, listable: true) if(params[:only_listable] == "true") || !request.xhr? badges = badges.to_a - serialized = MultiJson.dump(serialize_data(badges, BadgeSerializer, root: "badges")) + user_badges = nil + if current_user + user_badges = Set.new(current_user.user_badges.select('distinct badge_id').pluck(:badge_id)) + end + serialized = MultiJson.dump(serialize_data(badges, BadgeSerializer, root: "badges", user_badges: user_badges)) respond_to do |format| format.html do store_preloaded "badges", serialized diff --git a/app/serializers/badge_serializer.rb b/app/serializers/badge_serializer.rb index 9cb4b40ed06..86c7da9a2cf 100644 --- a/app/serializers/badge_serializer.rb +++ b/app/serializers/badge_serializer.rb @@ -1,5 +1,12 @@ class BadgeSerializer < ApplicationSerializer - attributes :id, :name, :description, :grant_count, :allow_title, :multiple_grant, :icon, :listable, :enabled - + attributes :id, :name, :description, :grant_count, :allow_title, :multiple_grant, :icon, :listable, :enabled, :has_badge has_one :badge_type + + def include_has_badge? + @options[:user_badges] + end + + def has_badge + @options[:user_badges].include?(object.id) + end end