Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
iv
gitlab-ce
Commits
311c859d
Commit
311c859d
authored
Apr 25, 2016
by
Valery Sizov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
awards_handler: single quotes
parent
180c45b3
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
64 additions
and
64 deletions
+64
-64
app/assets/javascripts/awards_handler.coffee
app/assets/javascripts/awards_handler.coffee
+64
-64
No files found.
app/assets/javascripts/awards_handler.coffee
View file @
311c859d
class
@
AwardsHandler
constructor
:
(
@
getEmojisUrl
,
@
postEmojiUrl
,
@
noteableType
,
@
noteableId
,
@
unicodes
)
->
$
(
".js-add-award"
).
on
"click"
,
(
event
)
=>
$
(
'.js-add-award'
).
on
'click'
,
(
event
)
=>
event
.
stopPropagation
()
event
.
preventDefault
()
@
showEmojiMenu
()
$
(
"html"
).
on
'click'
,
(
event
)
->
if
!
$
(
event
.
target
).
closest
(
".emoji-menu"
).
length
if
$
(
".emoji-menu"
).
is
(
":visible"
)
$
(
".emoji-menu"
).
removeClass
"is-visible"
$
(
'html'
).
on
'click'
,
(
event
)
->
if
!
$
(
event
.
target
).
closest
(
'.emoji-menu'
).
length
if
$
(
'.emoji-menu'
).
is
(
':visible'
)
$
(
'.emoji-menu'
).
removeClass
'is-visible'
$
(
".awards"
)
.
off
"click"
.
on
"click"
,
".js-emoji-btn"
,
@
handleClick
$
(
'.awards'
)
.
off
'click'
.
on
'click'
,
'.js-emoji-btn'
,
@
handleClick
@
renderFrequentlyUsedBlock
()
handleClick
:
(
e
)
->
e
.
preventDefault
()
emoji
=
$
(
this
)
.
find
(
".icon"
)
.
data
"emoji"
.
find
(
'.icon'
)
.
data
'emoji'
if
emoji
is
"thumbsup"
and
awardsHandler
.
didUserClickEmoji
$
(
this
),
"thumbsdown"
awardsHandler
.
addAward
"thumbsdown"
if
emoji
is
'thumbsup'
and
awardsHandler
.
didUserClickEmoji
$
(
this
),
'thumbsdown'
awardsHandler
.
addAward
'thumbsdown'
else
if
emoji
is
"thumbsdown"
and
awardsHandler
.
didUserClickEmoji
$
(
this
),
"thumbsup"
awardsHandler
.
addAward
"thumbsup"
else
if
emoji
is
'thumbsdown'
and
awardsHandler
.
didUserClickEmoji
$
(
this
),
'thumbsup'
awardsHandler
.
addAward
'thumbsup'
awardsHandler
.
addAward
emoji
$
(
this
).
trigger
'blur'
didUserClickEmoji
:
(
that
,
emoji
)
->
if
$
(
that
).
siblings
(
"button:has([data-emoji=
#{
emoji
}
])"
).
attr
(
"data-original-title"
)
$
(
that
).
siblings
(
"button:has([data-emoji=
#{
emoji
}
])"
).
attr
(
"data-original-title"
).
indexOf
(
'me'
)
>
-
1
if
$
(
that
).
siblings
(
"button:has([data-emoji=
#{
emoji
}
])"
).
attr
(
'data-original-title'
)
$
(
that
).
siblings
(
"button:has([data-emoji=
#{
emoji
}
])"
).
attr
(
'data-original-title'
).
indexOf
(
'me'
)
>
-
1
showEmojiMenu
:
->
if
$
(
".emoji-menu"
).
length
if
$
(
".emoji-menu"
).
is
".is-visible"
$
(
".emoji-menu"
).
removeClass
"is-visible"
$
(
"#emoji_search"
).
blur
()
if
$
(
'.emoji-menu'
).
length
if
$
(
'.emoji-menu'
).
is
'.is-visible'
$
(
'.emoji-menu'
).
removeClass
'is-visible'
$
(
'#emoji_search'
).
blur
()
else
$
(
".emoji-menu"
).
addClass
"is-visible"
$
(
"#emoji_search"
).
focus
()
$
(
'.emoji-menu'
).
addClass
'is-visible'
$
(
'#emoji_search'
).
focus
()
else
$
(
'.js-add-award'
).
addClass
"is-loading"
$
(
'.js-add-award'
).
addClass
'is-loading'
$
.
get
@
getEmojisUrl
,
(
response
)
=>
$
(
'.js-add-award'
).
removeClass
"is-loading"
$
(
".js-award-holder"
).
append
response
$
(
'.js-add-award'
).
removeClass
'is-loading'
$
(
'.js-award-holder'
).
append
response
setTimeout
=>
$
(
".emoji-menu"
).
addClass
"is-visible"
$
(
"#emoji_search"
).
focus
()
$
(
'.emoji-menu'
).
addClass
'is-visible'
$
(
'#emoji_search'
).
focus
()
@
setupSearch
()
,
200
...
...
@@ -60,7 +60,7 @@ class @AwardsHandler
@
postEmoji
emoji
,
=>
@
addAwardToEmojiBar
(
emoji
)
$
(
".emoji-menu"
).
removeClass
"is-visible"
$
(
'.emoji-menu'
).
removeClass
'is-visible'
addAwardToEmojiBar
:
(
emoji
)
->
@
addEmojiToFrequentlyUsedList
(
emoji
)
...
...
@@ -69,9 +69,9 @@ class @AwardsHandler
if
@
isActive
(
emoji
)
@
decrementCounter
(
emoji
)
else
counter
=
@
findEmojiIcon
(
emoji
).
siblings
(
".js-counter"
)
counter
=
@
findEmojiIcon
(
emoji
).
siblings
(
'.js-counter'
)
counter
.
text
(
parseInt
(
counter
.
text
())
+
1
)
counter
.
parent
().
addClass
(
"active"
)
counter
.
parent
().
addClass
(
'active'
)
@
addMeToAuthorList
(
emoji
)
else
@
createEmoji
(
emoji
)
...
...
@@ -80,47 +80,47 @@ class @AwardsHandler
@
findEmojiIcon
(
emoji
).
length
>
0
isActive
:
(
emoji
)
->
@
findEmojiIcon
(
emoji
).
parent
().
hasClass
(
"active"
)
@
findEmojiIcon
(
emoji
).
parent
().
hasClass
(
'active'
)
decrementCounter
:
(
emoji
)
->
counter
=
@
findEmojiIcon
(
emoji
).
siblings
(
".js-counter"
)
counter
=
@
findEmojiIcon
(
emoji
).
siblings
(
'.js-counter'
)
emojiIcon
=
counter
.
parent
()
if
parseInt
(
counter
.
text
())
>
1
counter
.
text
(
parseInt
(
counter
.
text
())
-
1
)
emojiIcon
.
removeClass
(
"active"
)
emojiIcon
.
removeClass
(
'active'
)
@
removeMeFromAuthorList
(
emoji
)
else
if
emoji
==
"thumbsup"
||
emoji
==
"thumbsdown"
emojiIcon
.
tooltip
(
"destroy"
)
else
if
emoji
==
'thumbsup'
||
emoji
==
'thumbsdown'
emojiIcon
.
tooltip
(
'destroy'
)
counter
.
text
(
0
)
emojiIcon
.
removeClass
(
"active"
)
emojiIcon
.
removeClass
(
'active'
)
@
removeMeFromAuthorList
(
emoji
)
else
emojiIcon
.
tooltip
(
"destroy"
)
emojiIcon
.
tooltip
(
'destroy'
)
emojiIcon
.
remove
()
removeMeFromAuthorList
:
(
emoji
)
->
awardBlock
=
@
findEmojiIcon
(
emoji
).
parent
()
authors
=
awardBlock
.
attr
(
"data-original-title"
)
.
split
(
", "
)
authors
.
splice
(
authors
.
indexOf
(
"me"
),
1
)
.
attr
(
'data-original-title'
)
.
split
(
', '
)
authors
.
splice
(
authors
.
indexOf
(
'me'
),
1
)
awardBlock
.
closest
(
".js-emoji-btn"
)
.
attr
(
"data-original-title"
,
authors
.
join
(
", "
))
.
closest
(
'.js-emoji-btn'
)
.
attr
(
'data-original-title'
,
authors
.
join
(
', '
))
@
resetTooltip
(
awardBlock
)
addMeToAuthorList
:
(
emoji
)
->
awardBlock
=
@
findEmojiIcon
(
emoji
).
parent
()
origTitle
=
awardBlock
.
attr
(
"data-original-title"
).
trim
()
origTitle
=
awardBlock
.
attr
(
'data-original-title'
).
trim
()
authors
=
[]
if
origTitle
authors
=
origTitle
.
split
(
', '
)
authors
.
push
(
"me"
)
awardBlock
.
attr
(
"data-original-title"
,
authors
.
join
(
", "
))
authors
.
push
(
'me'
)
awardBlock
.
attr
(
'data-original-title'
,
authors
.
join
(
', '
))
@
resetTooltip
(
awardBlock
)
resetTooltip
:
(
award
)
->
award
.
tooltip
(
"destroy"
)
award
.
tooltip
(
'destroy'
)
# "destroy" call is asynchronous and there is no appropriate callback on it, this is why we need to set timeout.
setTimeout
(
->
...
...
@@ -140,16 +140,16 @@ class @AwardsHandler
)
$
(
nodes
.
join
(
"
\n
"
))
.
insertBefore
(
".js-award-holder"
)
.
find
(
".emoji-icon"
)
.
data
(
"emoji"
,
emoji
)
.
insertBefore
(
'.js-award-holder'
)
.
find
(
'.emoji-icon'
)
.
data
(
'emoji'
,
emoji
)
$
(
'.award-control'
).
tooltip
()
resolveNameToCssClass
:
(
emoji
)
->
emoji
_i
con
=
$
(
".emoji-menu-content [data-emoji='
#{
emoji
}
']"
)
emoji
I
con
=
$
(
".emoji-menu-content [data-emoji='
#{
emoji
}
']"
)
if
emoji
_i
con
.
length
>
0
unicodeName
=
emoji
_i
con
.
data
(
'unicode-name'
)
if
emoji
I
con
.
length
>
0
unicodeName
=
emoji
I
con
.
data
(
'unicode-name'
)
else
# Find by alias
unicodeName
=
$
(
".emoji-menu-content [data-aliases*=':
#{
emoji
}
:']"
).
data
(
'unicode-name'
)
...
...
@@ -176,40 +176,40 @@ class @AwardsHandler
addEmojiToFrequentlyUsedList
:
(
emoji
)
->
frequentlyUsedEmojis
=
@
getFrequentlyUsedEmojis
()
frequentlyUsedEmojis
.
push
(
emoji
)
$
.
cookie
(
'frequently_used_emojis'
,
frequentlyUsedEmojis
.
join
(
","
),
{
expires
:
365
})
$
.
cookie
(
'frequently_used_emojis'
,
frequentlyUsedEmojis
.
join
(
','
),
{
expires
:
365
})
getFrequentlyUsedEmojis
:
->
frequentlyUsedEmojis
=
(
$
.
cookie
(
'frequently_used_emojis'
)
||
""
).
split
(
","
)
frequentlyUsedEmojis
=
(
$
.
cookie
(
'frequently_used_emojis'
)
||
''
).
split
(
','
)
_
.
compact
(
_
.
uniq
(
frequentlyUsedEmojis
))
renderFrequentlyUsedBlock
:
->
if
$
.
cookie
(
'frequently_used_emojis'
)
frequentlyUsedEmojis
=
@
getFrequentlyUsedEmojis
()
ul
=
$
(
"<ul>"
)
ul
=
$
(
'<ul>'
)
for
emoji
in
frequentlyUsedEmojis
do
(
emoji
)
->
$
(
".emoji-menu-content [data-emoji='
#{
emoji
}
']"
).
closest
(
"li"
).
clone
().
appendTo
(
ul
)
$
(
".emoji-menu-content [data-emoji='
#{
emoji
}
']"
).
closest
(
'li'
).
clone
().
appendTo
(
ul
)
$
(
"input.emoji-search"
).
after
(
ul
).
after
(
$
(
"<h5>"
).
text
(
"Frequently used"
))
$
(
'input.emoji-search'
).
after
(
ul
).
after
(
$
(
'<h5>'
).
text
(
'Frequently used'
))
setupSearch
:
->
$
(
"input.emoji-search"
).
keyup
(
ev
)
=>
$
(
'input.emoji-search'
).
keyup
(
ev
)
=>
term
=
$
(
ev
.
target
).
val
()
# Clean previous search results
$
(
"ul.emoji-menu-search, h5.emoji-search"
).
remove
()
$
(
'ul.emoji-menu-search, h5.emoji-search'
).
remove
()
if
term
# Generate a search result block
h5
=
$
(
"<h5>"
).
text
(
"Search results"
).
addClass
(
"emoji-search"
)
h5
=
$
(
'<h5>'
).
text
(
'Search results'
).
addClass
(
'emoji-search'
)
foundEmojis
=
@
searchEmojis
(
term
).
show
()
ul
=
$
(
"<ul>"
).
addClass
(
"emoji-menu-list emoji-menu-search"
).
append
(
foundEmojis
)
$
(
".emoji-menu-content ul, .emoji-menu-content h5"
).
hide
()
$
(
".emoji-menu-content"
).
append
(
h5
).
append
(
ul
)
ul
=
$
(
'<ul>'
).
addClass
(
'emoji-menu-list emoji-menu-search'
).
append
(
foundEmojis
)
$
(
'.emoji-menu-content ul, .emoji-menu-content h5'
).
hide
()
$
(
'.emoji-menu-content'
).
append
(
h5
).
append
(
ul
)
else
$
(
".emoji-menu-content"
).
children
().
show
()
$
(
'.emoji-menu-content'
).
children
().
show
()
searchEmojis
:
(
term
)
->
$
(
".emoji-menu-content [data-emoji*='
#{
term
}
']"
).
closest
(
"li"
).
clone
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment