summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Sizov <valery@gitlab.com>2015-12-24 13:58:49 +0000
committerValery Sizov <valery@gitlab.com>2015-12-24 13:58:49 +0000
commitd84ca3e81530415e7d3c03c8cf7a8db5071b0bcb (patch)
tree47a5860fda0cd6fd0665851886afe3368015e7ad
parent1f9633d67ce85443346847b64f7cc17d0ca8f8d0 (diff)
parent44cf1cbaafa3be1c284f202dcc67c734bbba1a8e (diff)
downloadgitlab-ce-d84ca3e81530415e7d3c03c8cf7a8db5071b0bcb.tar.gz
Merge branch 'emoji-picker-search' into 'master'
Emoji picker search depend on !2172 Issue https://gitlab.com/gitlab-org/gitlab-ce/issues/3576 !!! Should be merged after https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2198 ![Screenshot_2015-12-23_11.44.57](/uploads/01da0b62c3c234307142e2c4db68e53f/Screenshot_2015-12-23_11.44.57.png) See merge request !2186
-rw-r--r--CHANGELOG1
-rw-r--r--app/assets/javascripts/awards_handler.coffee22
-rw-r--r--app/assets/stylesheets/pages/awards.scss4
-rw-r--r--app/assets/stylesheets/pages/emojis.scss2
-rw-r--r--app/views/votes/_votes_block.html.haml5
-rw-r--r--features/project/issues/award_emoji.feature6
-rw-r--r--features/steps/project/issues/award_emoji.rb12
7 files changed, 49 insertions, 3 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 168a6e391f4..a80b776affa 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 8.4.0 (unreleased)
- Fix Error 500 when doing a search in dashboard before visiting any project (Stan Hu)
- Implement new UI for group page
+ - Implement search inside emoji picker
- Add project permissions to all project API endpoints (Stan Hu)
v 8.3.1 (unreleased)
diff --git a/app/assets/javascripts/awards_handler.coffee b/app/assets/javascripts/awards_handler.coffee
index b5432773713..392440a2b00 100644
--- a/app/assets/javascripts/awards_handler.coffee
+++ b/app/assets/javascripts/awards_handler.coffee
@@ -10,6 +10,8 @@ class @AwardsHandler
if $(".emoji-menu").is(":visible")
$(".emoji-menu").hide()
+ @setupSearch()
+
addAward: (emoji) ->
emoji = @normilizeEmojiName(emoji)
@postEmoji emoji, =>
@@ -114,3 +116,23 @@ class @AwardsHandler
normilizeEmojiName: (emoji) ->
@aliases[emoji] || emoji
+
+ setupSearch: ->
+ $("input.emoji-search").keyup (ev) =>
+ term = $(ev.target).val()
+
+ # Clean previous search results
+ $("ul.emoji-search,h5.emoji-search").remove()
+
+ if term
+ # Generate search result block
+ h5 = $("<h5>").text("Search results").addClass("emoji-search")
+ found_emojis = @searchEmojis(term).show()
+ ul = $("<ul>").addClass("emoji-search").append(found_emojis)
+ $(".emoji-menu-content ul, .emoji-menu-content h5").hide()
+ $(".emoji-menu-content").append(h5).append(ul)
+ else
+ $(".emoji-menu-content").children().show()
+
+ searchEmojis: (term)->
+ $(".emoji-menu-content [data-emoji*='#{term}']").closest("li").clone()
diff --git a/app/assets/stylesheets/pages/awards.scss b/app/assets/stylesheets/pages/awards.scss
index aa1a06b2fcc..87dd30f4111 100644
--- a/app/assets/stylesheets/pages/awards.scss
+++ b/app/assets/stylesheets/pages/awards.scss
@@ -101,6 +101,10 @@
overflow: auto;
}
+ input.emoji-search{
+ background: image-url("icon-search.png") 240px no-repeat;
+ }
+
li {
cursor: pointer;
width: 30px;
diff --git a/app/assets/stylesheets/pages/emojis.scss b/app/assets/stylesheets/pages/emojis.scss
index 819ec9a2f5f..89a94c5a780 100644
--- a/app/assets/stylesheets/pages/emojis.scss
+++ b/app/assets/stylesheets/pages/emojis.scss
@@ -4,7 +4,7 @@ The source: gemojione gem.
*/
.emoji-icon{
- background-image: url(emoji.png);
+ background-image: image-url("emoji.png");
background-repeat: no-repeat;
}
diff --git a/app/views/votes/_votes_block.html.haml b/app/views/votes/_votes_block.html.haml
index 829f1664fba..e16187bb42f 100644
--- a/app/views/votes/_votes_block.html.haml
+++ b/app/views/votes/_votes_block.html.haml
@@ -11,6 +11,7 @@
= icon('smile-o')
.emoji-menu
.emoji-menu-content
+ = text_field_tag :emoji_search, "", class: "emoji-search search-input form-control"
- AwardEmoji.emoji_by_category.each do |category, emojis|
%h5= AwardEmoji::CATEGORIES[category]
%ul
@@ -32,11 +33,11 @@
aliases
)
- $(".emoji-menu-content li").click (e)->
+ $(".awards").on "click", ".emoji-menu-content li", (e) ->
emoji = $(this).find(".emoji-icon").data("emoji")
awards_handler.addAward(emoji)
- $(".awards").on "click", ".award", (e)->
+ $(".awards").on "click", ".award", (e) ->
emoji = $(this).find(".icon").data("emoji")
awards_handler.addAward(emoji)
diff --git a/features/project/issues/award_emoji.feature b/features/project/issues/award_emoji.feature
index cbf2e7104ab..2126e826ddc 100644
--- a/features/project/issues/award_emoji.feature
+++ b/features/project/issues/award_emoji.feature
@@ -19,6 +19,12 @@ Feature: Award Emoji
Then I can see the activity and food categories
@javascript
+ Scenario: I can search emoji
+ Given I click to emoji-picker
+ And I search "hand"
+ Then I see search result for "hand"
+
+ @javascript
Scenario: I add award emoji using regular comment
Given I leave comment with a single emoji
Then I have award added
diff --git a/features/steps/project/issues/award_emoji.rb b/features/steps/project/issues/award_emoji.rb
index c94d0ba7306..a7e15398819 100644
--- a/features/steps/project/issues/award_emoji.rb
+++ b/features/steps/project/issues/award_emoji.rb
@@ -52,4 +52,16 @@ class Spinach::Features::AwardEmoji < Spinach::FeatureSteps
click_button 'Add Comment'
end
end
+
+ step 'I search "hand"' do
+ page.within('.emoji-menu-content') do
+ fill_in 'emoji_search', with: 'hand'
+ end
+ end
+
+ step 'I see search result for "hand"' do
+ page.within '.emoji-menu-content' do
+ expect(page).to have_selector '[data-emoji="raised_hand"]'
+ end
+ end
end