zulip/frontend_tests/node_tests
Rohitt Vashishtha 5fc37c5f9b compose: Add compose typeahead for stream+topic mentions.
We implement 3 changes:

1. Partial Stream Typeahead

   In addition to regular stream completion, we do partial completion
   of stream typeahead on pressing '>'. We use our custom addition to
   typeahead.js: this.trigger_selection to start topic_list typeahead.

   Implements: `#stream na|` (press >) => `#**stream name>|`.

2. Topic Jump Typeahead

   'topic_jump' typeahead moves the cursor from just ahead of a
   completed stream-mention to just after the end of the mention
   text and is triggered by typing '>' after the stream mention.
   This typeahead merely uses the regex matching and event hooks of
   the typeahead library instead of displaying any text completions.

   Implements: `#**stream name** >|` => `#**stream name>|`.

3. Topic List Typeahead

   'topic_list' typeahead shows the list of recent topics of a stream
   and if your current text doesn't match one of them, also shows you
   the current query text, allowing you to create mentions for topics
   that do not exist yet.

   Implements: `#**stream name>someth|` => `#**stream name>something** |`.

At the end of this commit, we support the following mechanisms to
complete the stream-topic mention:

1. Type "#denmar|".
2. Press Enter to get "#**Denmark** |".
3. Press > to get "#**Denmark>|".
4. Type topic name and press enter.

OR

1. Type "#denmar|".
2. Type > to get "#**Denmark>|".
3. Type topic name and press enter.

Both result in the final inserted syntax: "#**Denmark>topic name**".

Documentation is still pending.

Fixes #4836.
2019-07-21 20:38:17 -07:00
..
.eslintrc.json lint: Add JS indentation eslint rules for node_tests. 2018-05-06 19:35:18 -07:00
activity.js right sidebar: Ensure .user-with-count gets added to correct li element. 2019-07-16 11:33:02 -07:00
alert_words.js node tests: Consolidate some set_global() calls. 2018-08-02 08:02:12 -04:00
alert_words_ui.js zjsunit: Add stub_templates abstraction. 2019-07-12 21:11:14 -07:00
billing.js billing: Add node test for billing.js. 2019-01-08 10:47:35 -08:00
billing_helpers.js billing: Add node tests for helpers.js. 2019-05-30 10:34:56 -07:00
bot_data.js bot_data: Rename delete to del. 2019-07-04 16:48:33 -07:00
buddy_data.js user status: Change Active now to Online now in full user profile. 2019-03-14 15:19:09 -07:00
buddy_list.js Completely replace perfect-scrollbar with SimpleBar. 2019-05-17 12:06:51 -07:00
channel.js node tests: Consolidate some set_global() calls. 2018-08-02 08:02:12 -04:00
color_data.js stream_color: Make stream color assignment more efficient. 2018-11-29 13:00:25 -08:00
colorspace.js Add run_test helper for individual tests. 2018-05-15 08:24:44 -07:00
common.js static/js/common: Add `Ctrl` key mapping to `Cmd` for MacOS. 2019-07-08 20:07:49 -07:00
components.js components: Add `disable_tab` attribute. 2019-05-13 17:27:32 -07:00
compose.js zjsunit: Add make_handlebars abstraction. 2019-07-12 21:11:14 -07:00
compose_actions.js search: Don't mark messages as read in search narrow. 2019-07-17 17:58:20 -07:00
compose_fade.js subject -> topic: Rename compose fields. 2018-12-09 21:28:45 -08:00
compose_pm_pill.js compose pill: Add has_unconverted_data() helper. 2018-10-12 11:20:30 -07:00
compose_ui.js compose: Fix buggy escaping of LaTeX in quote-and-reply. 2019-04-13 10:52:44 -07:00
composebox_typeahead.js compose: Add compose typeahead for stream+topic mentions. 2019-07-21 20:38:17 -07:00
copy_and_paste.js webpack: Elide node_modules when importing JS modules. 2019-06-26 16:49:32 -07:00
dict.js Add run_test helper for individual tests. 2018-05-15 08:24:44 -07:00
dispatch.js bot_data: Rename delete to del. 2019-07-04 16:48:33 -07:00
drafts.js zjsunit: Add make_handlebars abstraction. 2019-07-12 21:11:14 -07:00
echo.js echo: Update topic_links when we get messages back from server. (#12832) 2019-07-20 14:38:52 -07:00
emoji.js emoji: Change fallback emojiset for text emojiset. 2018-09-21 18:34:12 -07:00
emoji_picker.js emoji: Move `emoji_collection` from emoji picker to emoji.js. 2018-07-23 12:35:08 -07:00
fetch_status.js message_fetch: Deduplicate logic for finish_newer_batch. 2018-12-13 08:43:56 -08:00
filter.js narrow: Add condition whether to show unread message first in narrow. 2019-07-17 17:58:20 -07:00
general.js search: Don't mark messages as read in search narrow. 2019-07-17 17:58:20 -07:00
hash_util.js frontend: Use topic on message. 2019-01-07 19:20:56 -08:00
hashchange.js hashchange: Use hashchange event listener. 2019-07-09 11:31:35 -07:00
hotkey.js static/js/common: Use `platform` navigator to detect MacOS. 2019-06-24 14:04:42 -07:00
i18n.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
input_pill.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
keydown_util.js keydown_util: Ignore alt-arrow and similar things. 2018-12-04 12:24:39 -08:00
lightbox.js lightbox: Set URL in payload instead of computing from video IDs. 2019-05-29 23:01:54 -07:00
list_cursor.js node tests: Bring list_cursor to 100% coverage. 2018-08-24 10:00:04 -07:00
list_render.js list_render: Extend test to verify that list sorting is case insensitive. 2019-04-21 16:09:02 -07:00
markdown.js dependencies: Upgrade eslint to 6.0.1. 2019-07-20 16:12:51 -07:00
message_edit.js webpack: Elide node_modules when importing JS modules. 2019-06-26 16:49:32 -07:00
message_events.js frontend: Use topic on message. 2019-01-07 19:20:56 -08:00
message_fetch.js message_fetch: Use user IDs for supported operators. 2019-07-13 11:35:37 -07:00
message_flags.js search: Don't mark messages as read in search narrow. 2019-07-17 17:58:20 -07:00
message_list.js frontend: Use topic on message. 2019-01-07 19:20:56 -08:00
message_list_data.js search: Don't mark messages as read in search narrow. 2019-07-17 17:58:20 -07:00
message_list_view.js webpack: Elide node_modules when importing JS modules. 2019-06-26 16:49:32 -07:00
message_store.js pointer.js: Add setter for furthest_read. 2019-07-08 21:22:54 -07:00
muting.js page load: Fix two bugs related to muting/unreads. 2018-12-15 13:44:30 -08:00
narrow.js narrows: Show invalid banner for invalid narrows. 2019-06-24 13:14:10 -07:00
narrow_activate.js message_list.js: Add setter for narrowed. 2019-07-08 21:22:54 -07:00
narrow_local.js frontend: Use topic on message. 2019-01-07 19:20:56 -08:00
narrow_state.js filter: Eliminate a few "subject" references. 2018-12-29 11:38:39 -08:00
narrow_unread.js frontend: Use topic on message. 2019-01-07 19:20:56 -08:00
notifications.js notifications: Disable default permission pop up. 2019-06-12 16:12:13 -07:00
password.js settings_account: Use webpack asynchronous require to load zxcvbn. 2019-07-02 16:50:03 -07:00
people.js message_fetch: Use user IDs for supported operators. 2019-07-13 11:35:37 -07:00
people_errors.js minor: Change error to warning for missing user ids. 2018-10-29 12:57:15 -07:00
pm_conversations.js Add run_test helper for individual tests. 2018-05-15 08:24:44 -07:00
pm_list.js zjsunit: Add make_handlebars abstraction. 2019-07-12 21:11:14 -07:00
popovers.js zjsunit: Add stub_templates abstraction. 2019-07-12 21:11:14 -07:00
presence.js presence: Use people.is_my_user_id() for check. 2019-01-03 13:49:44 -08:00
reactions.js message_view: Add js tooltip hovers for emoji reactions. 2019-07-19 12:45:44 -07:00
recent_senders.js frontend: Use topic on message. 2019-01-07 19:20:56 -08:00
rtl.js rtl.js: Fix support for supplementary planes of unicode characters (>= U+10000). 2018-08-14 11:39:29 -07:00
schema.js lint: Fix comma spacing in node tests. 2018-12-07 13:14:28 -08:00
scroll_util.js Completely replace perfect-scrollbar with SimpleBar. 2019-05-17 12:06:51 -07:00
search.js Revert "search: Open typeahead on empty string only if lookup triggered by Tab." 2018-12-04 13:58:00 -08:00
search_legacy.js Simplify narrow/search interactions. 2018-10-24 16:54:35 -07:00
search_pill.js zjsunit: Add make_handlebars abstraction. 2019-07-12 21:11:14 -07:00
search_suggestion.js zjsunit: Add make_handlebars abstraction. 2019-07-12 21:11:14 -07:00
search_suggestion_legacy.js zjsunit: Add make_handlebars abstraction. 2019-07-12 21:11:14 -07:00
server_events.js pointer.js: Add setter for server_furthest_read. 2019-07-08 21:22:54 -07:00
settings_bots.js zjsunit: Add make_handlebars abstraction. 2019-07-12 21:11:14 -07:00
settings_muting.js muting: Use stream_id in muting.get_muted_topics(). 2018-12-14 16:05:37 -08:00
settings_org.js user settings: Hide disabled name change info icon for admins. 2019-07-16 11:43:57 -07:00
settings_profile_fields.js zjsunit: Add stub_templates abstraction. 2019-07-12 21:11:14 -07:00
settings_user_groups.js zjsunit: Add stub_templates abstraction. 2019-07-12 21:11:14 -07:00
stream_data.js static/js/stream_data: Extract function `receives_notifications`. 2019-06-24 14:46:45 -07:00
stream_events.js static/js/stream_events: Deduplicate notification settings updates. 2019-06-24 14:46:45 -07:00
stream_list.js zjsunit: Add stub_templates abstraction. 2019-07-12 21:11:14 -07:00
stream_search.js left sidebar: Fix closing stream search. 2019-02-25 09:47:44 -08:00
stream_sort.js eslint: Enable `no-extra-parens` rule. 2018-06-11 07:51:24 -04:00
submessage.js submessages: Add update_message() function. 2018-05-30 14:47:36 -07:00
subs.js zjsunit: Add stub_templates abstraction. 2019-07-12 21:11:14 -07:00
support.js support: Add support for scrubbing realm. 2019-05-06 20:12:54 -07:00
templates.js templates: Suppress Handlebars automatic partial indentation. 2019-07-17 16:07:17 -07:00
timerender.js dependencies: Upgrade node to 12.3.1. 2019-06-05 17:15:52 -07:00
top_left_corner.js top left: Simplify markup for main links. 2019-01-30 13:53:20 -08:00
topic_data.js frontend: Use topic on message. 2019-01-07 19:20:56 -08:00
topic_generator.js static/js/stream_data: Rename `in_home_view` functions. 2019-05-30 21:39:06 -07:00
topic_list.js zjsunit: Add stub_templates abstraction. 2019-07-12 21:11:14 -07:00
transmit.js frontend: Use topic on message. 2019-01-07 19:20:56 -08:00
typeahead_helper.js typeahead: Clear rendered stream html on stream rename. 2019-07-21 20:18:29 -07:00
typing_data.js Add run_test helper for individual tests. 2018-05-15 08:24:44 -07:00
typing_status.js tests: Add tests for the logic of typing_status.handle_text_input. 2019-06-06 19:56:24 -07:00
ui.js hotkey: Update test for hotkey deprecation. 2018-09-21 10:59:55 -07:00
ui_init.js unread: Enable the load_server_counts setting for everyone. 2019-07-18 13:34:55 -07:00
unread.js notifications: Refactor and test notifiable unreads logic. 2019-07-21 14:56:42 -07:00
upgrade.js billing: Seperate out tests for invoice and autopay form fields. 2019-05-30 10:34:56 -07:00
upload.js uploads: Remove unusable UI elements if file uploading is disabled. 2019-05-08 17:10:07 -07:00
user_events.js node: Add test for updating bot_owner_id and enable user_events test suite. 2019-05-30 15:43:18 -07:00
user_groups.js typescript: Migrate dict.js to typescript. 2019-03-21 10:48:44 -07:00
user_pill.js pills: Enable user avatar images for user pills. 2018-07-10 15:07:56 +05:30
user_status.js user status: Add ability to edit status text. 2019-01-29 10:27:49 -08:00
util.js message_edit_history: Add UI for seeing topic edits. 2019-03-25 15:10:47 -07:00
voting_widget.js zjsunit: Add stub_templates abstraction. 2019-07-12 21:11:14 -07:00
widgetize.js poll-widget: Refactor comment to option. 2019-01-29 09:34:14 -08:00
zblueslip.js blueslip: Replace jQuery wrappers with error event listener. 2019-07-09 11:38:20 -07:00
zjquery.js zjquery: Add length attribute to wrapped elements. 2019-05-29 23:01:54 -07:00