From 319c9360551280f7345c5d16ffb34fe5e73a1598 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 22 Apr 2016 17:01:53 +0100 Subject: [PATCH 1/2] Fixes issue with emoji comments not showing correct emoji image Previously it would look for the unicode character inside the award menu. But this menu might not always be there. Now, the unicode characters are loaded onto the page in an array which the award emoji that looks in to get the correct emoji unicode character Fixes #15512 --- app/assets/javascripts/awards_handler.coffee | 14 +++----------- app/views/votes/_votes_block.html.haml | 4 ++-- lib/award_emoji.rb | 5 +++++ 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/assets/javascripts/awards_handler.coffee b/app/assets/javascripts/awards_handler.coffee index af4462ece3..a17867f8c9 100644 --- a/app/assets/javascripts/awards_handler.coffee +++ b/app/assets/javascripts/awards_handler.coffee @@ -1,5 +1,5 @@ class @AwardsHandler - constructor: (@get_emojis_url, @post_emoji_url, @noteable_type, @noteable_id, @aliases) -> + constructor: (@get_emojis_url, @post_emoji_url, @noteable_type, @noteable_id, @unicodes) -> $(".js-add-award").on "click", (event) => event.stopPropagation() event.preventDefault() @@ -146,15 +146,7 @@ class @AwardsHandler $('.award-control').tooltip() resolveNameToCssClass: (emoji) -> - emoji_icon = $(".emoji-menu-content [data-emoji='#{emoji}']") - - if emoji_icon.length > 0 - unicodeName = emoji_icon.data("unicode-name") - else - # Find by alias - unicodeName = $(".emoji-menu-content [data-aliases*=':#{emoji}:']").data("unicode-name") - - "emoji-#{unicodeName}" + "emoji-#{@unicodes[emoji]}" postEmoji: (emoji, callback) -> $.post @post_emoji_url, { note: { @@ -174,7 +166,7 @@ class @AwardsHandler }, 200) normilizeEmojiName: (emoji) -> - @aliases[emoji] || emoji + emoji addEmojiToFrequentlyUsedList: (emoji) -> frequently_used_emojis = @getFrequentlyUsedEmojis() diff --git a/app/views/votes/_votes_block.html.haml b/app/views/votes/_votes_block.html.haml index dc249155b9..59e1279869 100644 --- a/app/views/votes/_votes_block.html.haml +++ b/app/views/votes/_votes_block.html.haml @@ -19,12 +19,12 @@ var post_emoji_url = "#{award_toggle_namespace_project_notes_path(@project.namespace, @project)}"; var noteable_type = "#{votable.class.name.underscore}"; var noteable_id = "#{votable.id}"; - var aliases = #{AwardEmoji.aliases.to_json}; + var unicodes = #{AwardEmoji.unicode.to_json}; window.awards_handler = new AwardsHandler( get_emojis_url, post_emoji_url, noteable_type, noteable_id, - aliases + unicodes ); diff --git a/lib/award_emoji.rb b/lib/award_emoji.rb index 5f8ff01b0a..ad78bb530f 100644 --- a/lib/award_emoji.rb +++ b/lib/award_emoji.rb @@ -52,6 +52,11 @@ class AwardEmoji end end + def self.unicode + emojis + emojis.map{|key, value| { key => emojis[key]["unicode"] } }.inject(:merge!) + end + def self.aliases @aliases ||= begin json_path = File.join(Rails.root, 'fixtures', 'emojis', 'aliases.json' ) From 13f7ba059e48ebf090d8f8ae440f277097494c52 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 22 Apr 2016 21:53:26 +0100 Subject: [PATCH 2/2] Removed usage of normilizeEmojiName method Fixed some Ruby based on feedback --- app/assets/javascripts/awards_handler.coffee | 5 ----- lib/award_emoji.rb | 3 +-- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/app/assets/javascripts/awards_handler.coffee b/app/assets/javascripts/awards_handler.coffee index a17867f8c9..aea5d8363d 100644 --- a/app/assets/javascripts/awards_handler.coffee +++ b/app/assets/javascripts/awards_handler.coffee @@ -55,7 +55,6 @@ class @AwardsHandler , 200 addAward: (emoji) -> - emoji = @normilizeEmojiName(emoji) @postEmoji emoji, => @addAwardToEmojiBar(emoji) @@ -64,7 +63,6 @@ class @AwardsHandler addAwardToEmojiBar: (emoji) -> @addEmojiToFrequentlyUsedList(emoji) - emoji = @normilizeEmojiName(emoji) if @exist(emoji) if @isActive(emoji) @decrementCounter(emoji) @@ -165,9 +163,6 @@ class @AwardsHandler scrollTop: $('.awards').offset().top - 80 }, 200) - normilizeEmojiName: (emoji) -> - emoji - addEmojiToFrequentlyUsedList: (emoji) -> frequently_used_emojis = @getFrequentlyUsedEmojis() frequently_used_emojis.push(emoji) diff --git a/lib/award_emoji.rb b/lib/award_emoji.rb index ad78bb530f..b1aecc2e67 100644 --- a/lib/award_emoji.rb +++ b/lib/award_emoji.rb @@ -53,8 +53,7 @@ class AwardEmoji end def self.unicode - emojis - emojis.map{|key, value| { key => emojis[key]["unicode"] } }.inject(:merge!) + @unicode ||= emojis.map {|key, value| { key => emojis[key]["unicode"] } }.inject(:merge!) end def self.aliases