zulip/static/js
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
..
analytics activity: Extract most js from realm_summary_table to activity.js. 2019-06-14 10:20:59 -07:00
billing billing: Use javascript onhashchange handler instead of jQuery one. 2019-05-30 10:34:56 -07:00
bundles dependencies: Upgrade jquery-autosize 1.17.7 to autosize 4.0.2. 2019-07-18 14:33:16 -07:00
js_typings subs: Add `stream_ui_updates.js` module for managing ui elements. 2019-04-30 14:36:52 -07:00
portico apps: Fix buggy toggling with version_info.show_instructions. 2019-07-11 11:48:24 -07:00
stats stats: Fix the bug in showing all time actives by default. 2019-02-01 11:14:03 -08:00
.eslintrc.json
activity.js right sidebar: Ensure .user-with-count gets added to correct li element. 2019-07-16 11:33:02 -07:00
admin.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
alert_words.js alert_words.js: Add setter for words. 2019-07-08 21:22:54 -07:00
alert_words_ui.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
archive.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
attachments_ui.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
avatar.js user settings: Improve accessibility for new delete profile picture button. 2019-07-12 16:53:25 -07:00
blueslip.js blueslip: Ignore error events with null error. 2019-07-09 17:18:32 -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 templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
channel.js
click_handlers.js message_view: Add js tooltip hovers for emoji reactions. 2019-07-19 12:45:44 -07:00
color_data.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
colorspace.js lint: Add eslint enforcement for comma-spacing. 2018-12-07 12:22:24 -08: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 compose: Ensure valid destination stream in typeahead completion. 2019-07-21 20:18:29 -07:00
compose_actions.js dependencies: Upgrade jquery-autosize 1.17.7 to autosize 4.0.2. 2019-07-18 14:33:16 -07:00
compose_fade.js buddy_list: Do not fade current user in PMs. 2019-07-21 15:06:10 -07:00
compose_pm_pill.js
compose_state.js subject -> topic: Rename compose fields. 2018-12-09 21:28:45 -08:00
compose_ui.js dependencies: Upgrade jquery-autosize 1.17.7 to autosize 4.0.2. 2019-07-18 14:33:16 -07:00
composebox_typeahead.js compose: Add compose typeahead for stream+topic mentions. 2019-07-21 20:38:17 -07:00
condense.js condense: Rewrite condense.toggle_collapse to be readable and correct. 2019-07-13 15:45:00 -07:00
confirm_dialog.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
copy_and_paste.js jQuery: Use positional methods on single selectors. 2019-06-06 15:21:26 -07:00
csrf.js csrf: Improve API for when no CSRF input is available. 2018-12-16 16:19:23 -08:00
debug.js
dict.ts dependencies: Upgrade @typescript-eslint/eslint-plugin to 1.9.0. 2019-06-03 12:24:00 -07:00
drafts.js templates: Replace templates.render with require calls. 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: Remove now unused `emoji.emojis` data structure. 2019-01-05 15:09:04 -08:00
emoji_picker.js message_view: Add js tooltip hovers for emoji reactions. 2019-07-19 12:45:44 -07:00
favicon.js
feature_flags.js unread: Enable the load_server_counts setting for everyone. 2019-07-18 13:34:55 -07:00
feedback_widget.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
fenced_code.js
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
floating_recipient_bar.js floating_recipient_bar: Fix incorrect use of jQuery .next(). 2019-02-11 16:46:11 -08:00
gear_menu.js settings: Extract gear_menu.update_org_settings_menu_item(). 2018-12-07 11:40:40 -08:00
hash_util.js subject -> topic: Fix hash_util.js. 2018-12-29 14:34:06 -08:00
hashchange.js hashchange: Use hashchange event listener. 2019-07-09 11:31:35 -07:00
hotkey.js static/js/common: Extract function `has_mac_keyboard`. 2019-06-24 14:04:42 -07:00
hotspots.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
info_overlay.js info_overlay.js: Remove var toggler. 2019-07-04 16:48:33 -07:00
input_pill.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
integration_bot_widget.js
invite.js dependencies: Upgrade jquery-autosize 1.17.7 to autosize 4.0.2. 2019-07-18 14:33:16 -07:00
keydown_util.js keydown_util: Ignore alt-arrow and similar things. 2018-12-04 12:24:39 -08:00
lightbox.js lightbox.js: Remove computed access of exports. 2019-07-08 21:22:54 -07:00
lightbox_canvas.js
list_cursor.js
list_render.js list_render: Change alphabetic sorting to be case insensitive. 2019-04-13 11:36:28 -07:00
list_util.js
loading.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
local_message.js
localstorage.js
markdown.js markdown: Fix marked generation of unnecessarily absolute URLs. 2019-07-11 15:09:38 -07:00
message_edit.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
message_events.js message_edit: Fix rendering bug when topic-editing single messages. 2019-02-27 13:57:45 -08:00
message_fetch.js message_fetch: Use user ID for sender and group-pm-with operator. 2019-07-17 16:09:12 -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 dependencies: Upgrade jquery-autosize 1.17.7 to autosize 4.0.2. 2019-07-18 14:33:16 -07: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 templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
message_live_update.js
message_scroll.js pointer.js: Add setter for suppress_scroll_pointer_update. 2019-07-08 21:22:54 -07:00
message_store.js pointer.js: Add setter for furthest_read. 2019-07-08 21:22:54 -07:00
message_util.js message scrolling: Fix "Scroll down to view" warning. 2019-01-07 17:17:55 -08:00
message_viewport.js pointer.js: Add setter for suppress_scroll_pointer_update. 2019-07-08 21:22:54 -07:00
muting.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
muting_ui.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
narrow.js narrow: Add condition whether to show unread message first in narrow. 2019-07-17 17:58:20 -07:00
narrow_state.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
navigate.js search: Don't mark messages as read in search narrow. 2019-07-17 17:58:20 -07:00
night_mode.js night mode: Fix initial state of night mode. 2019-03-08 15:45:11 -08:00
notifications.js notifications: Refactor and test notifiable unreads logic. 2019-07-21 14:56:42 -07:00
overlays.js user settings: Fix active background links when a modal is visible. 2018-12-09 22:32:53 -08:00
padded_widget.js
panels.js
people.js message_fetch: Use user IDs for supported operators. 2019-07-13 11:35:37 -07:00
pm_conversations.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
pm_list.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
pointer.js search: Don't mark messages as read in search narrow. 2019-07-17 17:58:20 -07:00
poll_widget.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
popovers.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
presence.js presence.js: Remove var presence_info. 2019-07-04 16:50:23 -07:00
reactions.js message_view: Add js tooltip hovers for emoji reactions. 2019-07-19 12:45:44 -07:00
realm_icon.js
realm_logo.js realm_logo: Refactor `build_realm_logo_widget` function. 2019-03-14 17:05:22 -07:00
recent_senders.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
reload.js subject -> topic: Fix subject in opts. 2018-12-16 11:26:18 -08:00
reload_state.js
reminder.js reminder.js: Refactor to make notify_above_composebox conditional. 2019-01-14 12:11:27 -08:00
resize.js dependencies: Upgrade jquery-autosize 1.17.7 to autosize 4.0.2. 2019-07-18 14:33:16 -07:00
rows.js jQuery: Use positional methods on single selectors. 2019-06-06 15:21:26 -07:00
rtl.js
schema.js
scroll_bar.js css: Call set_layout_width even if the sbwidth is 0. 2019-07-02 15:47:03 -07:00
scroll_util.js Completely replace perfect-scrollbar with SimpleBar. 2019-05-17 12:06:51 -07:00
search.js lint: Add eslint enforcement for comma-spacing. 2018-12-07 12:22:24 -08:00
search_pill.js
search_pill_widget.js
search_suggestion.js search: Fix searching and search suggestion in Group PM. 2019-06-28 12:45:37 -07:00
search_util.js
sent_messages.js
server_events.js pointer.js: Add setter for server_furthest_read. 2019-07-08 21:22:54 -07:00
server_events_dispatch.js alert_words.js: Add setter for words. 2019-07-08 21:22:54 -07:00
settings.js settings: Rewrite logic for whether users can change name. 2019-07-16 11:43:57 -07:00
settings_account.js settings: Rewrite logic for whether users can change name. 2019-07-16 11:43:57 -07:00
settings_bots.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
settings_display.js display settings: Deduplicate display settings click handlers. 2019-06-24 14:41:53 -07:00
settings_emoji.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
settings_invites.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
settings_linkifiers.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
settings_muting.js muting: Add stream_id to markup for mute settings. 2018-12-14 16:05:35 -08:00
settings_notifications.js notifications: Refactor and test notifiable unreads logic. 2019-07-21 14:56:42 -07:00
settings_org.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
settings_panel_menu.js jQuery: Remove unnecessary :first selectors. 2019-06-06 15:21:26 -07:00
settings_profile_fields.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
settings_sections.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
settings_streams.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
settings_toggle.js org_settings: Add collapse/show settings button for users and guests. 2019-05-31 22:42:02 -07:00
settings_ui.js account settings: Replace logic with existing functions. 2019-07-11 13:29:08 -07:00
settings_user_groups.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
settings_users.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
setup.js js: Extract csrf.js and include in common bundle. 2018-12-16 16:18:42 -08:00
socket.js eslint: Add key-spacing linter rule. 2018-12-18 10:41:06 -08:00
starred_messages.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
stream_color.js
stream_create.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
stream_data.js static/js/stream_data: Deduplicate notification setting updates. 2019-06-24 14:46:45 -07:00
stream_edit.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
stream_events.js static/js/stream_events: Deduplicate notification settings updates. 2019-06-24 14:46:45 -07:00
stream_list.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
stream_muting.js pointer.js: Add setter for suppress_scroll_pointer_update. 2019-07-08 21:22:54 -07:00
stream_popover.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
stream_sort.js
stream_ui_updates.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
submessage.js
subs.js compose_state: Maybe update stream name on stream name change. 2019-07-21 20:18:29 -07:00
tab_bar.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
templates.js templates: Remove partial helper. 2019-07-12 21:11:14 -07:00
tictactoe_widget.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
timerender.js
todo_widget.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
top_left_corner.js top left: Simplify markup for main links. 2019-01-30 13:53:20 -08:00
topic_data.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
topic_generator.js static/js/stream_data: Rename `in_home_view` functions. 2019-05-30 21:39:06 -07:00
topic_list.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
topic_zoom.js popovers: Fix closing of the left sidebar with "more topics". 2019-07-09 16:54:39 -07:00
translations.js
transmit.js subject -> topic: Sweep "message.subject" in frontend. 2019-01-01 20:49:38 -08:00
tsconfig.json dependencies: Upgrade typescript to 3.5.1. 2019-06-03 12:24:00 -07:00
tslint.json typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
tutorial.js eslint: Add key-spacing linter rule. 2018-12-18 10:41:06 -08:00
typeahead_helper.js typeahead: Clear rendered stream html on stream rename. 2019-07-21 20:18:29 -07:00
typing.js tests: Add tests for the logic of typing_status.handle_text_input. 2019-06-06 19:56:24 -07:00
typing_data.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
typing_events.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
typing_status.js typing_status.js: Remove var state. 2019-07-04 16:50:23 -07:00
ui.js static/js/common: Extract function `has_mac_keyboard`. 2019-06-24 14:04:42 -07:00
ui_init.js message_viewport.js: Add setter for last_movement_direction. 2019-07-08 21:22:54 -07:00
ui_report.js ui_report: Remove now redundant `type` argument from `.message()`. 2019-01-17 10:28:59 -08:00
ui_util.js compose: Fix recent autocomplete regression. 2018-12-22 08:07:23 -08:00
unread.js notifications: Refactor and test notifiable unreads logic. 2019-07-21 14:56:42 -07:00
unread_ops.js search: Don't mark messages as read in search narrow. 2019-07-17 17:58:20 -07:00
unread_ui.js notifications: Refactor and test notifiable unreads logic. 2019-07-21 14:56:42 -07:00
upload.js uploads: Remove unusable UI elements if file uploading is disabled. 2019-05-08 17:10:07 -07:00
upload_widget.js settings: Add support for uploading logo for night mode. 2019-02-18 15:15:57 -08:00
user_events.js user_info: Add `bot_owner_id` to user info dataset. 2019-05-28 12:41:52 -07:00
user_groups.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
user_pill.js
user_search.js popovers: Fix migration to popovers.hide_all_except_sidebars(). 2019-07-09 23:03:41 -07:00
user_status.js typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
user_status_ui.js user status: Add "clear message (x)" button for status message input. 2019-05-01 16:36:45 -07:00
util.js message_edit_history: Add UI for seeing topic edits. 2019-03-25 15:10:47 -07:00
widgetize.js widgets: Rename voting_widget to poll_widget. 2018-12-16 19:46:48 -08:00
zcommand.js slash commands: Add undo for /day and /night. 2019-01-04 10:54:10 -08:00
zform.js templates: Replace templates.render with require calls. 2019-07-12 21:11:14 -07:00
zulip.js