replace emoji references from class name to data [ci skip]

This commit is contained in:
Valery Sizov 2015-11-17 16:44:58 +02:00
parent 06a4fd1035
commit 36d0442e83
3 changed files with 26 additions and 22 deletions

View file

@ -3,25 +3,27 @@ class @AwardsHandler
addAward: (emoji) ->
@postEmoji emoji, =>
if @exist(emoji)
if @isActive(emoji)
@decrementCounter(emoji)
else
counter = $(".icon." + emoji).siblings(".counter")
counter.text(parseInt(counter.text()) + 1)
counter.parent().addClass("active")
else
@createEmoji(emoji)
@addAwardToEmojiBar(emoji)
addAwardToEmojiBar: (emoji) ->
if @exist(emoji)
if @isActive(emoji)
@decrementCounter(emoji)
else
counter = @findEmojiIcon(emoji).siblings(".counter")
counter.text(parseInt(counter.text()) + 1)
counter.parent().addClass("active")
else
@createEmoji(emoji)
exist: (emoji) ->
$(".icon").hasClass(emoji)
@findEmojiIcon(emoji).length > 0
isActive: (emoji) ->
$(".icon." + emoji).parent().hasClass("active")
@findEmojiIcon(emoji).parent().hasClass("active")
decrementCounter: (emoji) ->
counter = $(".icon." + emoji).siblings(".counter")
counter = @findEmojiIcon(emoji).siblings(".counter")
if parseInt(counter.text()) > 1
counter.text(parseInt(counter.text()) - 1)
@ -33,7 +35,7 @@ class @AwardsHandler
createEmoji: (emoji) ->
nodes = []
nodes.push("<div class='award active'>")
nodes.push("<div class='icon " + emoji + "'>")
nodes.push("<div class='icon' data-emoji='" + emoji + "'>")
nodes.push(@getImage(emoji))
nodes.push("</div>")
nodes.push("<div class='counter'>1")
@ -42,14 +44,16 @@ class @AwardsHandler
$(".awards-controls").before(nodes.join("\n"))
getImage: (emoji) ->
$("li." + emoji).html()
$("li[data-emoji='" + emoji + "'").html()
postEmoji: (emoji, callback) ->
emoji = emoji.replace("emoji-", "")
$.post @post_emoji_url, {
emoji: emoji
noteable_type: @noteable_type
noteable_id: @noteable_id
},(data) ->
if data.ok
callback.call()
callback.call()
findEmojiIcon: (emoji) ->
$(".icon[data-emoji='" + emoji + "'")

View file

@ -121,7 +121,7 @@ class @Notes
@initTaskList()
if note.award
awards_handler.addAward("emoji-" + note.note)
awards_handler.addAwardToEmojiBar(note.note)
###
Check if note does not exists on page

View file

@ -1,7 +1,7 @@
.awards.votes-block
- votable.notes.awards.grouped_awards.each do | vote |
.award{class: ("active" if vote.last.pluck(:author_id).include?(current_user.id))}
.icon{class: "emoji-#{vote.first}"}
.icon{"data-emoji" => "#{vote.first}"}
= image_tag url_to_emoji(vote.first), height: "20px", width: "20px"
.counter
= vote.last.count
@ -10,22 +10,22 @@
%a#add-award{"data-toggle" => "dropdown", "data-target" => "#", "href" => "#"} +
%ul.dropdown-menu.awards-menu
- ["100", "blush", "heart", "smile", "rage", "beers", "thumbsup", "disappointed", "ok_hand", "helicopter"].each do |emoji|
%li{class: "emoji-#{emoji}"}= image_tag url_to_emoji(emoji), height: "20px", width: "20px"
%li{"data-emoji" => "#{emoji}"}= image_tag url_to_emoji(emoji), height: "20px", width: "20px"
:coffeescript
post_emoji_url = "#{award_toggle_namespace_project_notes_path(@project.namespace, @project)}"
noteable_type = "Issue"
noteable_id = #{@issue.id}
awards_handler = new AwardsHandler(post_emoji_url, noteable_type, noteable_id)
window.awards_handler = new AwardsHandler(post_emoji_url, noteable_type, noteable_id)
$ ->
$(".awards-menu li").click (e)->
emoji = $(this).attr("class")
emoji = $(this).data("emoji")
awards_handler.addAward(emoji)
$(".awards").on "click", ".award", (e)->
emoji = /(emoji-\S*)/.exec($(this).find(".icon").attr("class"))[0]
emoji = $(this).find(".icon").data("emoji")
awards_handler.addAward(emoji)