zulip/static/js
Steve Howell 888214196c unread: Handle message edits that affect mentions.
We had a bug where if your peer mentioned you in
message, but then edited the message not to mention
you, the latter wouldn't reset your unread counts
for "Mentions".  And the same problem would happen
vice versa.

The fix basically extracts `update_message_for_mention`
and makes sure it handles all combinations of
unread/mentioned flags, instead of assuming
any invariants about which directions of change
are possible.

And then we call that new function from
`message_events.js` whenever we get message
edit events.

Fixes #14544
2020-04-11 12:00:46 -07:00
..
analytics js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
billing js: Convert _.contains(a, …) to a.includes(…). 2020-02-10 14:08:12 -08:00
bundles i18n: Rename translations.js to i18n.js. 2020-02-29 12:19:51 -08:00
portico text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -07:00
stats stats: Fix Other calculation. 2020-03-02 17:45:44 -08:00
types dependencies: Upgrade stacktrace-gps from 3.0.3 to 3.0.4. 2020-02-04 22:13:33 -08:00
activity.js dict: Replace with Map. 2020-02-25 15:37:37 -08:00
admin.js markdown: Allow setting a default language for code blocks. 2020-04-09 16:02:02 -07:00
alert_words_ui.js refactor: Clean up alert_words API. 2020-02-27 11:10:13 -08:00
alert_words.js refactor: Clean up alert_words API. 2020-02-27 11:10:13 -08:00
archive.js js: Use modern spread arguments syntax. 2020-02-11 17:43:35 -08:00
attachments_ui.js js: Convert a.indexOf(…) !== -1 to a.includes(…). 2020-02-10 14:08:12 -08:00
avatar.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
blueslip_stacktrace.ts dependencies: Upgrade stacktrace-gps from 3.0.3 to 3.0.4. 2020-02-04 22:13:33 -08:00
blueslip.js js: Convert _.extend to spread syntax or Object.assign. 2020-02-25 14:09:39 -08:00
bot_data.js bot_data: Remove set_can_admin. 2020-03-24 20:40:19 -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 message_list: More descriptive names for {show,hide}_topic_edit. 2020-04-06 10:57:29 -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 js: Convert _.find(a, …) to a.find(…). 2020-02-10 14:08:12 -08:00
compose_actions.js js: Convert _.extend to spread syntax or Object.assign. 2020-02-25 14:09:39 -08:00
compose_fade.js util.js: Remove util from window. 2020-02-15 12:20:20 -08: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
compose.js local echo: Fix type errors for message_send_error. 2020-04-09 16:11:57 -07:00
composebox_typeahead.js zcommand: Add /fluid-width and /fixed-width slash commands. 2020-04-07 20:54:34 -07:00
condense.js condense: Clean up continue/else/if idiom. 2020-04-02 14:44:35 -07:00
confirm_dialog.js js: Automatically convert _.each to for…of. 2020-02-07 14:09:47 -08: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: Fade the "Draft saved" a little more slowly. 2020-04-07 20:58:42 -07:00
echo.js local echo: Fix resending of local messages. 2020-04-09 16:11:57 -07:00
emoji_picker.js text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -07:00
emoji.js settings: Move emoji widget code to settings_emoji.js. 2020-04-08 14:43:20 -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 feature_flags: Remove clicking_notification_causes_narrow. 2020-02-27 11:19:13 -08: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 util: Kill off rtrim() helper. 2020-02-15 12:20:20 -08: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: Add helpers for updated navbar features. 2020-04-08 11:55:43 -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 gear_menu: Convert scroll_positions from object to Map. 2020-02-12 10:39:01 -08:00
global.d.ts util.js: Remove util from window. 2020-02-15 12:20:20 -08: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 message edit: Handle escape key more nicely. 2020-04-02 14:32:11 -07:00
hotspots.js js: Convert _.pluck(a, "key") to item => item.key. 2020-02-27 17:20:34 -08: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 text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -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 invitations: Avoid adding to notifications stream unconditionally. 2020-01-27 15:36:59 -08: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_canvas.js lightbox_canvas: Return from sizeCanvas() if parentNode is null. 2020-04-05 13:06:03 -07:00
lightbox.js lightbox: Remove inaccurate docstring on lightbox.open(). 2020-04-05 13:13:02 -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 text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -07:00
list_util.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08: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: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
markdown_config.js markdown: Add helper configuration for mobile. 2020-02-18 16:13:38 -08:00
markdown.js markdown: Stop setting target="_blank". 2020-04-01 14:01:45 -07:00
message_edit.js design: Make non-editable text-box more distinguishable. 2020-04-09 16:45:17 -07:00
message_events.js unread: Handle message edits that affect mentions. 2020-04-11 12:00:46 -07:00
message_fetch.js text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -07:00
message_flags.js js: Convert _.filter(a, …) to a.filter(…). 2020-02-10 14:08:12 -08:00
message_list_data.js js: Convert _.pluck(a, "key") to item => item.key. 2020-02-27 17:20:34 -08:00
message_list_view.js message_list_view: Suppress exceptions for missing mention users. 2020-03-31 17:56:12 -07:00
message_list.js message_list: More descriptive names for {show,hide}_topic_edit. 2020-04-06 10:57:29 -07:00
message_live_update.js js: Automatically convert _.each to for…of. 2020-02-07 14:09:47 -08:00
message_scroll.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
message_store.js message store: Report type confusion errors. 2020-04-09 16:11:57 -07:00
message_util.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
message_viewport.js util.js: Remove util from window. 2020-02-15 12:20:20 -08:00
muting_ui.js util: Replace util.get_message_topic(). 2020-02-21 09:53:45 -05:00
muting.js int_dict: Replace with Map. 2020-02-25 15:37:37 -08:00
narrow_state.js narrow: Show starred messages from muted topics in starred message view. 2020-03-27 00:17:26 -07:00
narrow.js narrow: Don't advertise streams:public in is:starred. 2020-04-08 11:25:18 -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 settings_config: Move Realm level notification settings. 2020-04-01 14:40:41 -07:00
overlays.js overlays: Extract methods for disabling and enabling mouse events. 2020-03-31 15:12:44 -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 unread: Remove suppress_unread_counts flag. 2020-03-31 15:30:52 -07:00
people.js refactor: Make bot owner hovers more robust. 2020-03-24 20:40:19 -07:00
pm_conversations.js js: Convert _.pluck(a, "key") to item => item.key. 2020-02-27 17:20:34 -08:00
pm_list_dom.js js: Convert _.map(a, …) to a.map(…). 2020-02-10 14:08:12 -08:00
pm_list.js js: Convert _.contains(a, …) to a.includes(…). 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 refactor: Extract settings_data.py. 2020-02-28 17:11:24 -08:00
presence.js presence: Simplify payload for webapp. 2020-04-03 11:44:56 -07:00
reactions.js text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -07:00
ready.js templates: Make the Loading… message more robust. 2019-09-20 10:34:44 -07:00
realm_icon.js settings ui: Hide btns to modify organization profile pic for nonadmins. 2020-04-06 15:36:02 -07:00
realm_logo.js settings ui: Hide buttons to add/delete organization logo for nonadmins. 2020-04-06 15:36:02 -07:00
recent_senders.js int_dict: Replace with Map. 2020-02-25 15:37:37 -08:00
reload_state.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
reload.js js: Convert _.defaults to spread syntax. 2020-02-25 14:09:39 -08:00
reminder.js util: Replace util.set_message_topic(). 2020-02-21 09:53:45 -05:00
resize.js condense/resize: Fix blueslip errors from drafts. 2020-04-02 14:44:35 -07:00
rows.js local echo: Fix resending of local messages. 2020-04-09 16:11:57 -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 js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
search_pill_widget.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
search_pill.js js: Convert _.pluck(a, "key") to item => item.key. 2020-02-27 17:20:34 -08:00
search_suggestion.js refactor: Extract settings_data.py. 2020-02-28 17:11:24 -08:00
search_util.js js: Convert _.any(a, …), _.some(a, …) to a.some(…). 2020-02-10 14:08:12 -08:00
search.js search_suggestions: Convert lookup_table from object to Map. 2020-02-12 10:39:01 -08:00
sent_messages.js sent_messages: Convert messages from object to Map. 2020-02-12 10:39:01 -08:00
server_events_dispatch.js settings: Add option to disable video call in org settings. 2020-04-09 16:03:30 -07:00
server_events.js js: Convert _.extend to spread syntax or Object.assign. 2020-02-25 14:09:39 -08:00
settings_account.js settings: Fix downloading zuliprc files with hidden emails. 2020-04-09 13:24:52 -07:00
settings_bots.js minor: Rename function to get_active_humans(). 2020-03-22 10:55:11 -07:00
settings_config.js settings_config: Move Stream level notification settings. 2020-04-01 14:40:41 -07:00
settings_data.js settings: Add EMAIL_ADDRESS_VISIBILITY_NOBODY. 2020-03-06 16:34:08 -08:00
settings_display.js emoji: Resolve emoji sprite sheets and stylesheets through Webpack. 2020-02-25 14:43:46 -08:00
settings_emoji.js settings: Move emoji widget code to settings_emoji.js. 2020-04-08 14:43:20 -07:00
settings_exports.js js: Convert a.indexOf(…) !== -1 to a.includes(…). 2020-02-10 14:08:12 -08:00
settings_invites.js settings_invites: Convert invited_as_values from object to Map. 2020-02-10 15:57:20 -08:00
settings_linkifiers.js linkifiers: Allow non-admins to filter linkifiers in settings. 2020-04-09 15:55:47 -07:00
settings_muting.js js: Clean up stream_id type confusion. 2020-01-16 13:23:47 -08:00
settings_notifications.js settings_config: Move Stream level notification settings. 2020-04-01 14:40:41 -07:00
settings_org.js settings: Add option to disable video call in org settings. 2020-04-09 16:03:30 -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 dict: Replace with Map. 2020-02-25 15:37:37 -08:00
settings_streams.js default streams: Fix overly aggressive typeahead. 2020-03-25 17:11:25 -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 text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -07:00
settings.js settings_config: Move Realm level notification settings. 2020-04-01 14:40:41 -07: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 js: Convert _.defaults to spread syntax. 2020-02-25 14:09:39 -08:00
stream_create.js text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -07:00
stream_data.js node tests: Improve handling of blueslip.fatal(). 2020-04-08 11:37:27 -04:00
stream_edit.js left sidebar: Fix exceptions when updating sub data. 2020-04-06 16:26:33 -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 Convert more stream_ids to ints. 2020-01-12 11:27:26 -08:00
stream_sort.js util.js: Remove util from window. 2020-02-15 12:20:20 -08:00
stream_ui_updates.js subscriber list: Fix display of email addresses in subscribers list. 2020-03-08 12:42:08 -07:00
submessage.js js: Convert _.find(a, …) to a.find(…). 2020-02-10 14:08:12 -08:00
subs.js CVE-2020-9444: Prevent reverse tabnabbing attacks. 2020-04-01 14:01:45 -07:00
tab_bar.js js: Convert _.map(a, …) to a.map(…). 2020-02-10 14:08:12 -08: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 zjsunit: Use assert in strict mode. 2020-02-12 08:16:26 -05:00
todo_widget.js todo widget: Simplify idx calculation. 2020-04-08 16:01:54 -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_data.js int_dict: Replace with Map. 2020-02-25 15:37:37 -08:00
topic_generator.js js: Convert _.reject(a, … => …) to a.filter(… => !…). 2020-02-10 14:08:12 -08:00
topic_list_data.js js: Automatically convert _.each to for…of. 2020-02-07 14:09:47 -08:00
topic_list.js topic list: Rename remove_expanded_topics() to clear(). 2020-04-06 16:19:43 -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 typescript: Move TS files into JS directory. 2019-03-25 12:11:37 -07:00
tutorial.js js: Purge useless IIFEs. 2019-10-25 13:51:21 -07:00
typeahead_helper.js refactor: Extract settings_data.py. 2020-02-28 17:11:24 -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
typing.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
ui_init.js ui: Make selectors more specific for message hover. 2020-04-02 16:57:01 -07:00
ui_report.js ui_report: Fix HTML escaping of &. 2020-02-13 17:50:59 -08:00
ui_util.js docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
ui.js js: Convert a.indexOf(…) !== -1 to a.includes(…). 2020-02-10 14:08:12 -08: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
unread.js unread: Handle message edits that affect mentions. 2020-04-11 12:00:46 -07:00
upload_widget.js settings: Add preview while uploading custom emoji. 2020-04-08 14:42:46 -07:00
upload.js upload: Set the value of file input element to empty after upload. 2020-04-09 12:38:59 -07:00
user_events.js js: Convert _.has to Object.prototype.hasOwnProperty. 2020-02-25 14:09:39 -08:00
user_groups.js ui_init: Handle page_params more cleanly. 2020-02-26 13:14:09 -08:00
user_pill.js Rename get_realm_persons() to get_realm_users(). 2020-03-22 10:55:11 -07:00
user_search.js js: Automatically convert var to let and const in most files. 2019-11-03 12:42:39 -08:00
user_status_ui.js user status: Save status on enter keypress. 2020-03-06 17:13:50 -08:00
user_status.js ui_init: Handle page_params more cleanly. 2020-02-26 13:14:09 -08:00
util.js frontend: Defensively filter unsafe links that may come from bugdown. 2020-04-01 14:01:45 -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