zulip/frontend_tests/node_tests
Arpith Siromoney 9c64a08cad Add frontend support for emoji reactions.
This commit replaces the placeholder "clipboard" button with a reaction button.
This is done on any message that can't be edited. Also, on messages sent by
the user the actions popover (toggled by the down chevron icon) contains
an option to add a reaction.

When clicked, a popover with a search bar and a list of emojis is displayed.
If the right sidebar is collapsed (the viewport is small), the popover is placed
to the left of the button.
Focus is set to the search bar. Typing in the search bar filters emojis.

Emojis with which the user has reacted to this message are highlighted.
Clicking them sends an API request to remove that reaction.
Clicking on non-highlighted emojis sends an API request to add a reaction.
When the popover loses focus it is closed.

The frontend listens for reaction events. When an add-reaction event is
received, the emoji is displayed at the bottom of the message with a
count initialized to 1. If there was an existing reaction to the message with
the same emoji, the count is incremented.

Old messages fetched from the server contain reactions.
They are displayed (along with title and count) at the bottom
of each message.

When clicking the emoji reaction at the bottom of the message, if the
user has already reacted with that emoji to this message, the reaction
is removed and the count is decremented. Otherwise, a reaction is added
and the count is incremented.

Hovering over the emoji reaction at the bottom of the message displays
a list of users who have reacted with this emoji along with the
emoji name.

Hovering over the emoji reactions at the bottom of the message displays
a button to add a reaction.

Fixes #541.
2016-12-30 21:42:54 -08:00
..
activity.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
alert_words.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
bot_data.js admin: Limit bots in settings page. 2016-12-14 19:29:02 -08:00
composebox_typeahead.js eslint: change space-before-function-paren from warning to error. 2016-12-05 09:50:37 -08:00
dict.js eslint: change quote-props from off to error and fix violations. 2016-12-02 18:35:53 -08:00
dispatch.js Change people.remove() to people.deactivate() and fix bug. 2016-12-15 17:44:58 -08:00
echo.js Move static/third/gemoji to static/generated/emoji. 2016-12-27 20:16:23 -08:00
filter.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
hashchange.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
i18n.js lint: Fix several no-unused-vars eslint rule violations. 2016-12-03 18:43:47 -08:00
message_edit.js Add node tests for message_edit.get_editability. 2016-12-30 16:51:00 -08:00
message_list.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
message_list_view.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
message_store.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
muting.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
narrow.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
people.js Change people.remove() to people.deactivate() and fix bug. 2016-12-15 17:44:58 -08:00
presence_list_performance.js lint: Fix several no-unused-vars eslint rule violations. 2016-12-03 18:43:47 -08:00
search_suggestion.js Extract people.init() function. 2016-12-15 17:44:58 -08:00
server_events.js lint: Fix several no-unused-vars eslint rule violations. 2016-12-03 18:43:47 -08:00
settings.js Add new button to download ~/.zuliprc from settings page. 2016-12-07 21:28:41 -08:00
stream_color.js eslint: change space-before-function-paren from warning to error. 2016-12-05 09:50:37 -08:00
stream_data.js redesign: Convert subscriptions page to overlay. 2016-12-09 11:08:08 -08:00
stream_list.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
subs.js Partial match previous search terms in streams page. 2016-12-30 17:13:48 -08:00
templates.js Add frontend support for emoji reactions. 2016-12-30 21:42:54 -08:00
topic_list.js eslint: Update node tests to use new comma-dangle rules. 2016-12-03 15:00:24 -08:00
typeahead_helper.js Prioritize stream subscribers in typeahead list. 2016-12-21 12:59:43 -08:00
unread.js lint: Fix many no-unused-vars eslint rule violations. 2016-12-14 21:34:51 -08:00
util.js invite: Leave not yet invited users in the invite modal's textarea. 2016-12-27 17:14:21 -08:00