zulip/static/js
Steve Howell c11de1e3a7 user profile cards: Fix bug with deactivated user.
We had a user have problems with the user
profile menus that you get when you click
on either sender avatars or mention pills.

If a deactivated user had a long enough email
that we would normally want to un-hide the clipboard
icon for them, we would crash inside of
`init_email_clipboard`, because the icon isn't
there for them.  If the user didn't have the
console open to see the crash, the symptom
became that you would get multiple cards
visible and kind of "stuck".

I chose to fix this by just making the code
defensive with respect to the absence of the
icon, instead of short-circuiting it for
deactivated users.

It's a bit odd that we still have an element
matching `.user_email_popover` in the profile
card for deactivated users, since that element
doesn't actually include an email, but it instead
says "(This user has been deactivated)".  I
considered removing the class, but the CSS
that we use for emails kind of applies here
too.

Testing this is a kind of a pain, as you want
either long emails or to just temporarily hack
this condition to true:

    if (this.clientWidth < this.scrollWidth) {
        // ...
    }

And then test with a deactivated user, of course.

Fixes #14473
2020-04-26 11:12:45 -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 settings: Extract settings_list_widget.js. 2020-04-22 17:57:16 -07: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 settings: Extract DropdownListWidget from default_code_language_widget. 2020-04-14 12:50:10 -07:00
alert_words_ui.js alert settings: Relocate alert_word_settings_item.hbs 2020-04-18 15:50:04 -07: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 list_render: Clean up create/update. 2020-04-15 15:13:26 -07:00
avatar.js settings UI: Make the settings avatar delete/edit UI slicker. 2020-04-15 15:15:57 -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
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_edit: Show inline topic edit spinner only via save handler. 2020-04-22 16:25:38 -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 stream settings: Correct alignment of filter streams div. 2020-04-21 16:59:41 -07: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 typeahead: Show only active users in mention typeaheads. 2020-04-22 16:50:24 -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: getSelection to differentiate clicks from drags. 2020-04-18 22:19:48 -07:00
echo.js topic_data: Rename topic_data module to stream_topic_history. 2020-04-16 20:11:04 -07:00
emoji_picker.js static/js: Fix custom numeric emojis not working in reactions. 2020-04-12 15:02: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 requirements: Upgrade Python-Markdown from 3.1.1 to 3.2.1. 2020-04-18 13:09:51 -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 gear_menu: Convert scroll_positions from object to Map. 2020-02-12 10:39:01 -08:00
global.d.ts topic_data: Rename topic_data module to stream_topic_history. 2020-04-16 20:11:04 -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 navbar: Improve structure & styling for top navbar. 2020-04-17 13:35:44 -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 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_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 list_render: Move sort functions to module scope. 2020-04-24 18:24:12 -04: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: Match Python-Markdown code whitespace more closely in JS. 2020-04-18 13:09:51 -07:00
message_edit.js message_edit: Hide spinner after a failure. 2020-04-22 16:38:32 -07:00
message_events.js message_edit: Refactor .save and .end to separate inline topic edits. 2020-04-22 16:25:37 -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: Remove edit forms rather than just hiding them. 2020-04-22 16:25:38 -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 topic_data: Rename topic_data module to stream_topic_history. 2020-04-16 20:11:04 -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 muting: Fix real time sync of muted topics. 2020-04-22 15:07:15 -07:00
muting.js muting ui: Update the muted topics table in settings. 2020-04-22 15:07:15 -07: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 navbar: Append space at the end of filter for search convenience. 2020-04-22 15:11:30 -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 typeahead: Show only active users in mention typeaheads. 2020-04-22 16:50:24 -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 user profile cards: Fix bug with deactivated user. 2020-04-26 11:12:45 -07:00
presence.js presence: Simplify payload for webapp. 2020-04-03 11:44:56 -07:00
reactions.js api: Improve consistency of reactions API. 2020-04-26 10:35:55 -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 list_render: Extract get_list_scrolling_container(). 2020-04-15 15:13:26 -07: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 topic_data: Rename topic_data module to stream_topic_history. 2020-04-16 20:11:04 -07:00
search_util.js js: Convert _.any(a, …), _.some(a, …) to a.some(…). 2020-02-10 14:08:12 -08:00
search.js typeahead: Close/open typeahead with searchbox. 2020-04-17 13:37:04 -07: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: Refactor notifications_stream setting to use DropdownListWidget. 2020-04-22 17:57:16 -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 UI: Make the settings avatar delete/edit UI slicker. 2020-04-15 15:15:57 -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 list_render: Clean up create/update. 2020-04-15 15:13:26 -07:00
settings_exports.js list_render: Clean up create/update. 2020-04-15 15:13:26 -07:00
settings_invites.js list_render: Clean up create/update. 2020-04-15 15:13:26 -07:00
settings_linkifiers.js list_render: Clean up create/update. 2020-04-15 15:13:26 -07:00
settings_list_widget.js settings: Improve user interaction in DropdownListWidget. 2020-04-22 17:57:16 -07:00
settings_muting.js muting: Fix real time sync of muted topics. 2020-04-22 15:07:15 -07:00
settings_notifications.js list_render: Clean up create/update. 2020-04-15 15:13:26 -07:00
settings_org.js settings: Simplify settings_list_widget interface. 2020-04-22 17:57:16 -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: 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 admin user list: Replace the buttons with icons. 2020-04-23 16:49:57 -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 stream_data: Create realm_has_notifications_stream(). 2020-04-22 17:57:16 -07:00
stream_data.js stream_data: Create realm_has_notifications_stream(). 2020-04-22 17:57:16 -07:00
stream_edit.js streams: Correct spinner bug when subscribing. 2020-04-23 17:31:31 -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_topic_history.js stream_topic_history: Fix incorrectly migrated field name. 2020-04-17 13:11:27 -07:00
stream_ui_updates.js list_render: Add replace_list_data(). 2020-04-15 15:13:26 -07:00
submessage.js js: Convert _.find(a, …) to a.find(…). 2020-02-10 14:08:12 -08:00
subs.js streams: Rename row_object to stream_row. 2020-04-23 17:31:31 -07:00
tab_bar.js navbar: Increase the click area of to initiate search. 2020-04-23 15:37:51 -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 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_generator.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_list.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 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 typeahead: Fix broken email address handling in typeahead. 2020-04-20 20:49:47 -07: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 file uploads: Internationalize upload status text. 2020-04-18 21:22:47 -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 typeahead: Update for email_address_visibility settings. 2020-04-20 20:53:39 -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