diff options
author | Valery Sizov <valery@gitlab.com> | 2015-12-24 13:58:49 +0000 |
---|---|---|
committer | Valery Sizov <valery@gitlab.com> | 2015-12-24 13:58:49 +0000 |
commit | d84ca3e81530415e7d3c03c8cf7a8db5071b0bcb (patch) | |
tree | 47a5860fda0cd6fd0665851886afe3368015e7ad | |
parent | 1f9633d67ce85443346847b64f7cc17d0ca8f8d0 (diff) | |
parent | 44cf1cbaafa3be1c284f202dcc67c734bbba1a8e (diff) | |
download | gitlab-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-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/assets/javascripts/awards_handler.coffee | 22 | ||||
-rw-r--r-- | app/assets/stylesheets/pages/awards.scss | 4 | ||||
-rw-r--r-- | app/assets/stylesheets/pages/emojis.scss | 2 | ||||
-rw-r--r-- | app/views/votes/_votes_block.html.haml | 5 | ||||
-rw-r--r-- | features/project/issues/award_emoji.feature | 6 | ||||
-rw-r--r-- | features/steps/project/issues/award_emoji.rb | 12 |
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 |