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