zulip/static/js
YashRE42 22884e768b message_edit: Ensure message edit form is empty prior to appending.
Prior to commit 8b7e70ac27 this system
would simply just .hide() forms when they were closed and
.empty().append() every time it needed to "show_edit". This was not a
very clean way of handling the action of canceling an edit, so
8b7e70ac27 introduced a change that had
the "show_edit" function append the form and the "hide" function
.empty() the form.

However, we overlooked the fact that the user could use browser
history to navigate away and back to the form and use "e" or
"left arrow key" to successfully append another form and get to an
ugly, broken state.

This commit does not revert 8b7e70ac27
as it is still accurate to .empty() when hiding the form, but we add
an early exit if a form already exists, to avoid bugs like the above.

Using an early exit instead of eg .empty().append() ensures that the
user doesn't accidentally lose the entire content of an edit, if they
deselect the input box and press `e`.

Fixes: #15045.
2020-06-05 20:12:47 -07:00
..
analytics js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
billing free trial: Send users to /upgrade after realm creation. 2020-05-26 17:01:32 -07:00
bundles markdown: Extract rendered_markdown.js to update dynamic elements. 2020-05-21 12:32:52 -07:00
portico portico: Add setting to put Google Analytics on selected portico pages. 2020-05-11 23:22:50 -07:00
stats js: Use hasOwnProperty correctly or not at all. 2020-05-26 23:33:40 -07:00
types dependencies: Upgrade stacktrace-gps from 3.0.3 to 3.0.4. 2020-02-04 22:13:33 -08:00
activity.js right sidebar: Remove "GROUP PMs" section. 2020-05-27 17:57:50 -07:00
admin.js org settings: Rename plan_includes_wide_organization_logo to more generic. 2020-05-08 14:04:21 -07:00
alert_words.js refactor: Clean up alert_words API. 2020-02-27 11:10:13 -08:00
alert_words_ui.js lint: Add i18n linter rule for invalid i18n.t tags. 2020-05-27 14:09:56 -07:00
archive.js js: Use modern spread arguments syntax. 2020-02-11 17:43:35 -08:00
attachments_ui.js list_render: Clean up create/update. 2020-04-15 15:13:26 -07:00
avatar.js home/page_params: Add suffix `_mib` to clarify the size units. 2020-05-08 14:54:54 -07:00
blueslip.js js: Use hasOwnProperty correctly or not at all. 2020-05-26 23:33:40 -07:00
blueslip_stacktrace.ts dependencies: Upgrade stacktrace-gps from 3.0.3 to 3.0.4. 2020-02-04 22:13:33 -08:00
bot_data.js bot_data: Eliminate all uses of `bot.owner` (email). 2020-05-11 16:16:58 -07:00
buddy_data.js buddy_data: Extract all user list logic. 2020-04-03 14:51:35 -07:00
buddy_list.js js: Automatically convert _.each to for…of. 2020-02-07 14:09:47 -08:00
channel.js channel: Ignore error responses when reloading too. 2020-02-27 17:41:45 -08:00
click_handlers.js right sidebar: Remove "GROUP PMs" section. 2020-05-27 17:57:50 -07:00
color_data.js js: Convert _.pluck(a, "key") to item => item.key. 2020-02-27 17:20:34 -08:00
colorspace.js docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
common.js common: Account for string.match returning null. 2020-02-13 16:37:52 -08:00
components.js lint: Add i18n linter rule for invalid i18n.t tags. 2020-05-27 14:09:56 -07:00
compose.js compose: Change needs_subscribe_warning to use user_id. 2020-06-05 16:08:26 -07:00
compose_actions.js compose: Rewrite Zoom video call integration to use OAuth. 2020-06-03 16:39:12 -07:00
compose_fade.js compose_fade: Change would_receive_message to use user_id. 2020-06-05 16:08:26 -07:00
compose_pm_pill.js util.js: Remove util from window. 2020-02-15 12:20:20 -08:00
compose_state.js util: Kill off rtrim() helper. 2020-02-15 12:20:20 -08:00
compose_ui.js js: Convert _.map(a, …) to a.map(…). 2020-02-10 14:08:12 -08:00
composebox_typeahead.js typeahead: Advertise default codeblock language. 2020-05-12 11:40:12 -07:00
condense.js condense: Clean up continue/else/if idiom. 2020-04-02 14:44:35 -07:00
confirm_dialog.js modals: Use selectors for open_modal/close_modal. 2020-05-09 10:22:37 -07:00
copy_and_paste.js copy/paste: Extract visible_range() to fix error. 2020-04-02 16:57:01 -07:00
csrf.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
debug.js js: Cleanup debug.js example to use ES syntax. 2020-03-09 14:07:13 -07:00
drafts.js drafts: Rename open_modal -> open_overlay. 2020-05-09 10:18:59 -04:00
dropdown_list_widget.js dropdown-list-widget: Properly handle disabled state. 2020-05-20 09:51:38 -07:00
echo.js message list: Move the `FetchStatus` object to MessageListData class. 2020-06-02 15:45:39 -07:00
emoji.js emoji: Abstract all name_to_codepoint, codepoint_to_name accesses. 2020-05-26 23:33:40 -07:00
emoji_picker.js emoji: Abstract all name_to_codepoint, codepoint_to_name accesses. 2020-05-26 23:33:40 -07:00
emojisets.js emoji: Resolve emoji sprite sheets and stylesheets through Webpack. 2020-02-25 14:43:46 -08:00
favicon.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
feature_flags.js minor: Update comment in feature_flags. 2020-05-20 13:51:54 -07:00
feedback_widget.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
fenced_code.js markdown: Disable tex and latex for math rendering. 2020-05-21 12:30:27 -07:00
fetch_status.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
filter.js filter: Use ', ' to separate names in PM title. 2020-04-17 13:13:31 -07:00
floating_recipient_bar.js js: Convert _.map(a, …) to a.map(…). 2020-02-10 14:08:12 -08:00
fold_dict.ts dict: Remove each method. 2020-02-04 12:22:03 -08:00
gear_menu.js dead code: Remove useless resize calls. 2020-05-27 17:57:50 -07:00
global.d.ts recent-topics: Add module. 2020-05-20 09:44:50 -07:00
hash_util.js search/hash_util: Parse negated searches properly. 2020-03-22 11:29:02 -07:00
hashchange.js hashchange: Update state.old_hash before returning early. 2020-02-27 11:14:02 -08:00
hbs.d.ts blueslip: Make stack trace more readable. 2019-10-31 13:47:54 -07:00
hotkey.js dead code: Remove useless resize calls. 2020-05-27 17:57:50 -07:00
hotspots.js js: Convert _.pluck(a, "key") to item => item.key. 2020-02-27 17:20:34 -08:00
huddle_data.js right sidebar: Remove "GROUP PMs" section. 2020-05-27 17:57:50 -07:00
i18n.js i18n: Rename translations.js to i18n.js. 2020-02-29 12:19:51 -08:00
info_overlay.js info_overlay: Fix keyboard accessibility of keyboard shortcuts modal. 2020-03-24 20:41:24 -07:00
input_pill.js search pills: Update multiple pills creation event behaviour. 2020-06-05 17:16:20 -07:00
integration_bot_widget.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
invite.js stream_data: Remove page_params.notifications_stream. 2020-04-22 17:57:16 -07:00
keydown_util.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
lazy_set.js dict, lazy_set: Return an iterator from keys method. 2020-02-04 12:22:03 -08:00
lightbox.js lightbox: Remove inaccurate docstring on lightbox.open(). 2020-04-05 13:13:02 -07:00
lightbox_canvas.js lightbox_canvas: Clear canvas with less obfuscation. 2020-05-26 23:33:40 -07:00
list_cursor.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
list_render.js list-render: Allow re-rendering individual list items. 2020-05-28 17:10:51 -04:00
list_util.js right sidebar: Remove "GROUP PMs" section. 2020-05-27 17:57:50 -07:00
loading.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
local_message.js local_message: Convert already_used from object to Set. 2020-02-12 10:39:01 -08:00
localstorage.js js: Use hasOwnProperty correctly or not at all. 2020-05-26 23:33:40 -07:00
markdown.js markdown: Move helper function to rendered_markdown.js. 2020-05-21 12:32:52 -07:00
markdown_config.js markdown: Add helper configuration for mobile. 2020-02-18 16:13:38 -08:00
message_edit.js move_topic_to_stream: Add option to disable breadcrumb messages. 2020-06-05 12:28:51 -07:00
message_events.js right sidebar: Remove "GROUP PMs" section. 2020-05-27 17:57:50 -07:00
message_fetch.js message list: Move the `FetchStatus` object to MessageListData class. 2020-06-02 15:45:39 -07:00
message_flags.js js: Convert _.filter(a, …) to a.filter(…). 2020-02-10 14:08:12 -08:00
message_list.js message_edit: Ensure message edit form is empty prior to appending. 2020-06-05 20:12:47 -07:00
message_list_data.js message list: Move the `FetchStatus` object to MessageListData class. 2020-06-02 15:45:39 -07:00
message_list_view.js markdown: Extract rendered_markdown.js to update dynamic elements. 2020-05-21 12:32:52 -07:00
message_live_update.js js: Automatically convert _.each to for…of. 2020-02-07 14:09:47 -08:00
message_scroll.js message view: Show indicator while fetching new messages. 2020-05-26 15:21:42 -07:00
message_store.js topic_data: Rename `topic_data` module to `stream_topic_history`. 2020-04-16 20:11:04 -07:00
message_util.js recent_senders: Update data structures for stream/topic edits. 2020-05-12 00:15:26 -07:00
message_viewport.js util.js: Remove util from window. 2020-02-15 12:20:20 -08:00
muting.js muting ui: Update the muted topics table in settings. 2020-04-22 15:07:15 -07:00
muting_ui.js recent_topics: Handle mute/unmute update to topic. 2020-05-20 09:44:50 -07:00
narrow.js message list: Move the `FetchStatus` object to MessageListData class. 2020-06-02 15:45:39 -07:00
narrow_state.js narrow: Show starred messages from muted topics in starred message view. 2020-03-27 00:17:26 -07:00
navigate.js text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -07:00
night_mode.js js: Purge useless IIFEs. 2019-10-25 13:51:21 -07:00
notifications.js message list: Move the `FetchStatus` object to MessageListData class. 2020-06-02 15:45:39 -07:00
overlays.js modals: Use selectors for open_modal/close_modal. 2020-05-09 10:22:37 -07:00
padded_widget.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
page_params.js static: Serve webpack bundles from the root domain. 2020-04-10 00:48:02 -07:00
panels.js resize: Avoid hard-coding 10px for header padding. 2020-05-27 17:57:50 -07:00
people.js people: Remove 'get_active_user_for_email' function. 2020-06-05 16:08:26 -07:00
pm_conversations.js js: Convert _.pluck(a, "key") to item => item.key. 2020-02-27 17:20:34 -08:00
pm_list.js narrow: bugfix: Update stream list height after rendering completes. 2020-04-28 12:32:40 -07:00
pm_list_dom.js js: Convert _.map(a, …) to a.map(…). 2020-02-10 14:08:12 -08:00
pointer.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
poll_widget.js js: Convert _.any(a, …), _.some(a, …) to a.some(…). 2020-02-10 14:08:12 -08:00
popovers.js js: Use hasOwnProperty correctly or not at all. 2020-05-26 23:33:40 -07:00
presence.js presence: Fix "Last active:" in buddy list when last presence is idle. 2020-05-29 13:26:34 -04:00
reactions.js emoji: Abstract all name_to_codepoint, codepoint_to_name accesses. 2020-05-26 23:33:40 -07:00
ready.js templates: Make the Loading… message more robust. 2019-09-20 10:34:44 -07:00
realm_icon.js settings org: Replace realm icon delete button with X icon. 2020-05-27 17:15:14 -07:00
realm_logo.js realm_logo: Fix incorrect display of realm logo delete button. 2020-05-12 11:59:06 -07:00
recent_senders.js recent_senders: Use better variable names and comments. 2020-05-12 00:15:26 -07:00
recent_topics.js recent-topics: Handle topic and topic's stream edit updates. 2020-05-20 09:44:50 -07:00
reload.js js: Convert _.defaults to spread syntax. 2020-02-25 14:09:39 -08:00
reload_state.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
reminder.js util: Replace util.set_message_topic(). 2020-02-21 09:53:45 -05:00
rendered_markdown.js rendered_markdown: Add rendering functions for timestamps. 2020-05-21 12:37:37 -07:00
resize.js Revert "buddy list: Adjust sizing calc for narrow mode." 2020-05-29 15:36:42 -04:00
rows.js rows: Convert valid_table_names from object to Set. 2020-05-26 23:33:40 -07:00
rtl.js docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
schema.js js: Convert _.isString to typeof. 2020-02-10 15:57:20 -08:00
scroll_bar.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
scroll_util.js list_render: Extract get_list_scrolling_container(). 2020-04-15 15:13:26 -07:00
search.js search: Open typeahead on initiating search. 2020-06-05 17:16:20 -07:00
search_pill.js js: Convert _.pluck(a, "key") to item => item.key. 2020-02-27 17:20:34 -08:00
search_pill_widget.js search: Don't create search pills on paste. 2020-05-26 22:04:36 -07:00
search_suggestion.js search pills: Update multiple pills creation event behaviour. 2020-06-05 17:16:20 -07:00
search_util.js js: Convert _.any(a, …), _.some(a, …) to a.some(…). 2020-02-10 14:08:12 -08:00
sent_messages.js sent_messages: Convert messages from object to Map. 2020-02-12 10:39:01 -08:00
server_events.js js: Convert _.extend to spread syntax or Object.assign. 2020-02-25 14:09:39 -08:00
server_events_dispatch.js compose: Rewrite Zoom video call integration to use OAuth. 2020-06-03 16:39:12 -07:00
settings.js settings: Offer hiding presence info from other users. 2020-05-02 15:09:05 -07:00
settings_account.js settings: Fix fetching API key with password auth disabled. 2020-06-05 11:34:40 -07:00
settings_bots.js people.js: Change functions to return a list of ids instead of objects. 2020-06-04 14:23:52 -04:00
settings_config.js users: Modify update user API endpoint to accept role as parameter. 2020-05-29 14:29:17 -07:00
settings_data.js settings: Add EMAIL_ADDRESS_VISIBILITY_NOBODY. 2020-03-06 16:34:08 -08:00
settings_display.js modals: Use selectors for open_modal/close_modal. 2020-05-09 10:22:37 -07:00
settings_emoji.js api: Simplify format of realm_emoji author data. 2020-05-31 17:44:50 -07:00
settings_exports.js data exports: Keep deleted export in UI table. 2020-04-30 13:00:59 -07:00
settings_invites.js invitation: Make Member to see invitations sent by him/her. 2020-05-01 17:42:49 -07:00
settings_linkifiers.js list_render: Clean up create/update. 2020-04-15 15:13:26 -07:00
settings_muting.js muting: Fix real time sync of muted topics. 2020-04-22 15:07:15 -07:00
settings_notifications.js notifications: Add link for sending a test notification. 2020-04-26 23:02:05 -07:00
settings_org.js compose: Rewrite Zoom video call integration to use OAuth. 2020-06-03 16:39:12 -07:00
settings_panel_menu.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
settings_profile_fields.js settings_profile_fields: Iterate over field_types with Object.values. 2020-02-10 14:08:12 -08:00
settings_sections.js bot settings: Load bots independently. 2020-05-11 16:16:58 -07:00
settings_streams.js default streams: Change add api to use stream_id. 2020-04-15 15:47:04 -07:00
settings_toggle.js js: Automatically convert _.each to for…of. 2020-02-07 14:09:47 -08:00
settings_ui.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
settings_user_groups.js zjsunit: Use assert in strict mode. 2020-02-12 08:16:26 -05:00
settings_users.js people.js: Change functions to return a list of ids instead of objects. 2020-06-04 14:23:52 -04:00
setup.js util.js: Remove util from window. 2020-02-15 12:20:20 -08:00
starred_messages.js js: Automatically convert _.each to for…of. 2020-02-07 14:09:47 -08:00
stream_color.js stream_color.js: Fix color picker not saving custom color. 2020-06-05 17:58:09 -07:00
stream_create.js stream_edit: Use user_ids for subscribing/unsubscribing users to a stream. 2020-06-04 14:24:41 -07:00
stream_data.js message list: Move the `FetchStatus` object to MessageListData class. 2020-06-02 15:45:39 -07:00
stream_edit.js stream_edit: Use user_ids for subscribing/unsubscribing users to a stream. 2020-06-04 14:24:41 -07:00
stream_events.js stream edit: Fix real-time sync of stream notification setting. 2020-04-01 14:40:41 -07:00
stream_list.js left sidebar: Fix topic list disappearing during pins. 2020-04-06 16:19:43 -07:00
stream_muting.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
stream_popover.js move_topic_to_stream: Add option to disable breadcrumb messages. 2020-06-05 12:28:51 -07:00
stream_sort.js util.js: Remove util from window. 2020-02-15 12:20:20 -08:00
stream_topic_history.js stream_topic_history: Track the most recent message in streams. 2020-05-02 11:16:51 -07:00
stream_ui_updates.js stream settings: Add pills in add subscribers input. 2020-06-02 15:32:26 -07:00
submessage.js js: Convert _.find(a, …) to a.find(…). 2020-02-10 14:08:12 -08:00
subs.js navbar: Switch live update strategy to just be a render call. 2020-06-05 11:18:58 -07:00
tab_bar.js navbar: Switch live update strategy to just be a render call. 2020-06-05 11:18:58 -07:00
templates.js CVE-2020-9444: Prevent reverse tabnabbing attacks. 2020-04-01 14:01:45 -07:00
tictactoe_widget.js tictactoe: Fix type confusion. 2020-02-21 20:01:21 -05:00
timerender.js rendered_markdown: Add rendering functions for timestamps. 2020-05-21 12:37:37 -07:00
todo_widget.js todo widget: Downgrade error to warning. 2020-05-06 09:35:04 -04:00
top_left_corner.js top_left_corner: Don't export `should_expand_pm_list()`. 2020-02-11 14:14:59 -08:00
topic_generator.js topic_data: Rename `topic_data` module to `stream_topic_history`. 2020-04-16 20:11:04 -07:00
topic_list.js topic_data: Rename `topic_data` module to `stream_topic_history`. 2020-04-16 20:11:04 -07:00
topic_list_data.js topic_data: Rename `topic_data` module to `stream_topic_history`. 2020-04-16 20:11:04 -07:00
topic_zoom.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
transmit.js transmit: Inline send_message_ajax. 2020-04-09 16:11:57 -07:00
tslint.json
tutorial.js js: Purge useless IIFEs. 2019-10-25 13:51:21 -07:00
typeahead_helper.js typeahead: Fix broken email address handling in typeahead. 2020-04-20 20:49:47 -07:00
typing.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
typing_data.js dict: Replace with Map. 2020-02-25 15:37:37 -08:00
typing_events.js people: Rename method to get_by_user_id(). 2020-02-05 12:04:56 -08:00
ui.js js: Convert a.indexOf(…) !== -1 to a.includes(…). 2020-02-10 14:08:12 -08:00
ui_init.js right sidebar: Remove "GROUP PMs" section. 2020-05-27 17:57:50 -07:00
ui_report.js ui_report: Fix HTML escaping of &. 2020-02-13 17:50:59 -08:00
ui_util.js message_edit: Show stream color bar alongside stream select. 2020-05-14 14:27:53 -07:00
unread.js unread: Handle message edits that affect mentions. 2020-04-11 12:00:46 -07:00
unread_ops.js js: Automatically convert _.each to for…of. 2020-02-07 14:09:47 -08:00
unread_ui.js unread: Remove suppress_unread_counts flag. 2020-03-31 15:30:52 -07:00
upload.js home/page_params: Add suffix `_mib` to clarify the size units. 2020-05-08 14:54:54 -07:00
upload_widget.js realm logo: Fix realm logo unsupported file upload bug. 2020-06-04 14:21:23 -07:00
user_events.js events: Update person dict in event for do_change_user_role to send role. 2020-05-31 17:22:50 -07:00
user_groups.js js: Use hasOwnProperty correctly or not at all. 2020-05-26 23:33:40 -07:00
user_pill.js stream settings: Add pills in add subscribers input. 2020-06-02 15:32:26 -07:00
user_search.js resize: Resize sidebars when toggling user search. 2020-05-27 17:57:50 -07:00
user_status.js ui_init: Handle page_params more cleanly. 2020-02-26 13:14:09 -08:00
user_status_ui.js user status: Save status on enter keypress. 2020-03-06 17:13:50 -08:00
util.js compose_fade: Change would_receive_message to use user_id. 2020-06-05 16:08:26 -07:00
vdom.js vdom: Use _.escape for correct HTML escaping. 2020-02-13 17:50:59 -08:00
widgetize.js widgetize: Convert widget_contents from object to Map. 2020-02-06 17:24:43 -08:00
zcommand.js zcommand: Add `/fluid-width` and `/fixed-width` slash commands. 2020-04-07 20:54:34 -07:00
zform.js js: Automatically convert _.each to for…of. 2020-02-07 14:09:47 -08:00
zulip.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00