Commit Graph

8191 Commits

Author SHA1 Message Date
Ganesh Pawar 7b4039ade6 confirm_dialog: Make Bootstrap `fade` class optional.
It would be better to load non-setting modals instantly.
2021-06-08 18:07:52 -07:00
Ganesh Pawar 66d8375bfa settings_account: Remove redundant `hide_user_profile()` call.
"hidden.bs.modal" event is triggered once a modal is hidden.
Calling `hide_user_profile` once it's hidden doesn't make sense.
2021-06-08 18:07:52 -07:00
aryanshridhar 281c7da225 settings_org: Refactor realm_deactivation modal to confirm_dialog module.
The realm_name field in the old modal was always empty.
2021-06-08 17:59:47 -07:00
aryanshridhar ef17d0234d stream_edit: Refactor stream_deactivation modal to confirm_dialog module.
The stream_name CSS class in the heading before this change had no
functional effect.
2021-06-08 17:58:04 -07:00
aryanshridhar 418c40b2ea settings_users: Refactor user_deactivation modal to confirm_dialog module.
The "email" span in the old modal was not used for styling, just to
support updating the field visually.
2021-06-08 17:57:27 -07:00
m-e-l-u-h-a-n 3f0ed46fa2 left-sidebar: Add topic filter input in zoomed topic view.
Fixes: #18505.
2021-06-08 15:09:26 -07:00
m-e-l-u-h-a-n 59f8466de3 minor: Move filter logic for stream sort to utils.js.
This is done so that it can be shared by more generally
by different filter widgets used in web-app. An extra parameter
is added to it that helps to get text representation of of items
to be sorted, as items passed to it could be of different format.
2021-06-08 14:58:45 -07:00
Aman Agrawal 8799046f95 subs: Set focus on stream name box when creating a new stream. 2021-06-08 14:55:48 -07:00
Aman Agrawal 9decaeda0a subs: Explicitly show right section when required.
Instead of just depending upon clicks of certain buttons to
show the right section, we also show them when user is
creating a new stream or viewing settings of a specific stream.

This fixes a bug where user lands on `#streams/new` via url change
without clicking of any buttons and sees on left section of the
overlay in medium width (756px) devices.
2021-06-08 14:55:48 -07:00
Aman Agrawal 5dfedcabc3 subs: Extract function to show right section of stream settings. 2021-06-08 14:55:48 -07:00
Aman Agrawal 4b4fdad0e3 left_sidebar: Replace cog icon with plus icon.
We add a popover on click which allows user to create or browse
streams too.

Reason for doing so:

At present, it is hard to discover how to join streams
and create new streams. In particular:

Users have a hard time finding the gear in the STREAMS
header in the left sidebar and realizing that it's relevant for them.
Even once a user is in the STREAMS menu, the Create
stream button is hard to spot.

Fixes #18694.
2021-06-08 14:55:48 -07:00
Anders Kaseorg ad7466a2bf dependencies: Upgrade JavaScript dependencies.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-06-08 10:15:52 -07:00
Anders Kaseorg 656344064a eslint: Fix unicorn/require-array-join-separator.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-06-08 10:15:52 -07:00
Anders Kaseorg 7fd1e33d1b eslint: Fix unicorn/require-number-to-fixed-digits-argument.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-06-08 10:15:52 -07:00
Riken Shah ccfee49407 navbar_alerts: Replace HTML template with handlebars architecture.
This moves this block of HTML templates, which are dynamically
rendered with some user data, to be managed by the frontend handlebars
template system.

This migration involves only displaying active alerts in the DOM, and
thus we no longer need navbar_alerts to have display: none by default.
2021-06-07 17:52:08 -07:00
Aman Agrawal 7e814f4877 tippyjs: Add light theme for tippyjs.
This is important for showing popovers/menus with a light background
in Zulip's light theme.

We extend light-theme to show dark colours in night theme.
2021-06-07 14:10:11 -07:00
Ganesh Pawar 2965fec355 modals: Remove `in` class once modal is hidden.
Rapidly clicking a button that shows a modal cause a race condition
in Bootstrap. Specifically, Bootstrap adds an "in" class to a modal
on the "shown" event and removes it on the "hide" event. Frequent clicks
cause the "hide" event to trigger before the "shown" event. Therefore, the
"in" class isn't removed. We use the "in" class to check if a modal is
active in overlays.js

For now, we manually remove it once the modal is hidden.

Newer versions of Bootstrap probably handle this better internally.
Look into removing this once it's upgraded.

Fixes #15463
2021-06-07 13:40:37 -07:00
aryanshridhar 9032d43408 info_overlay: Remove dead code.
In commit 9ce9c2f9db, we added `maybe_show_keyboard_shortcuts`
function which triggered through hotkeys.js when a user
presses the keyboard shortcut hotkey.
However, within commit 8b29c38e62, we migrated to use
hashchange.go_to_location method in order to open info_overlay, leaving the
`maybe_show_keyboard_shortcuts` function orphaned/dead.

This commit essentially removes the dead
`maybe_show_keyboard_shortcuts` code.
2021-06-07 13:37:45 -07:00
Gaurav Pandey 9b696cf212 api: Expose event_queue_longpoll_timeout_seconds in /register.
Rename poll_timeout to event_queue_longpoll_timeout_seconds
and change its value from 90000 ms to 90 sec. Expose its
value in register api response when realm data is fetched.
Bump API_FEATURE_LEVEL to 74.
2021-06-05 07:37:19 -07:00
Riken Shah 38d9e26a6c refactor: Rename `delete_draft_after_send` to `delete_active_draft`.
This commit renames `delete_draft_after_send` to
`delete_active_draft` for two main reasons:

1) This function does the job of deleting the draft that we
are currently using in compose box and it is independent
of the message sending functionality.

2) This is prep refactoring for new drafts behavior where
we delete the draft if the compose box is cleared and
closed.
2021-06-04 09:47:14 -07:00
sahil839 d8c4b96b12 setting: Divide user_invite_restriction into a checkbox and dropdown.
This commit divides the user_invite_restriction setting dropdown to
a checkbox and a dropdown.
The checkbox is used for 'realm_invite_required' setting and dropdown
for 'realm_invite_to_realm_policy'.

This separation of UI elements is fine as these two settings are
separate in database also and also helps in removing excess if-else
conditions and switch cases.
2021-06-03 18:45:29 -07:00
sahil839 a271308ac3 admin: Avoid passing unnecessary policy values to admin_tab.hbs.
We do not require values of realm_create_stream_policy,
realm_invite_to_stream_policy, realm_private_message_policy
and realm_wildcard_mention_policy in the organization settings
templates, as we handle the dropdown values of these settings
in javascript code (settings_org.js) only and these values
are not used anywhere in templates.
2021-06-03 18:45:29 -07:00
sahil839 c09e3fd845 settings_users: Directly use role value in sort_role.
There is no need to write a custom function for sorting
the users table by role since role values are according
to hierarchy of roles already.
2021-06-03 18:45:28 -07:00
sahil839 10e9789179 message_edit: Show save button correctly in message edit form.
Previously the logic to show save button considered only topic
and content edit. This commit fixes it to show the save button
when only stream edit is possible and content and topic edits
are not.

This commit only introduces a simple fix, in long-term we would
want to change the logic of get_editability to include stream
edits as well but it would also require discussion on when to
show the edit icons at different places, so it is better to do
it in a separate commit later.
2021-06-03 17:58:43 -07:00
sahil839 7c7e81e662 message_edit: Rename show_edit_stream to is_stream_editable.
This commit renames show_edit_stream to is_stream_editable
for more clarity.
2021-06-03 17:58:19 -07:00
m-e-l-u-h-a-n fa34f793a7 recent topics: Display other sender names in tooltip.
It is a follow up for #18451.
2021-06-03 14:55:40 -07:00
Tim Abbott 746d3e8dcb presence: Disable 'Idle' for users with idle status.
Previously, we oddly displayed "Last active: Just now" for users in
this situation, which doesn't make any sense.
2021-06-03 14:53:21 -07:00
Tim Abbott 16bd6e6b1d presence: Use consistent logic for displaying last active time.
Previously, we had this complicated layering where the right sidebar
logic would display "Last active: foo" but the user popovers would
just display "foo", which doens't make any sense, since the two
settings have equal context about the string.

We deduplicate that and also arrange that the "Last active:" prefix is
used when it's not clear what we're talking about; i.e. all the values
except for "Active now".
2021-06-03 14:53:21 -07:00
Priyank Patel 2441138a7b settings_orgs: Use button element for save-discard button.
There is no clear reason to not use a button element here. According
to the spec pharasing content, which includes the <span> element,
are allowed in the button element.

Manually tested both buttons to make sure it works and made sure all
the selectors are updated by grepping all the selector classes/id in
the handlebars templates that are parents of the button or are
present on the button.

(One of the jQuery handler code got reformatted due to it fitting
the line limit due to one character deletion for the selector)
2021-06-03 12:41:10 -07:00
Priyank Patel cee94654df minor: Use Array.includes instead of a regex to check for values. 2021-06-03 12:41:10 -07:00
Vishnu KS 5db53029a5 api: Include is_billing_admin as an attribute in user response.
This is sufficiently useful that it should be made available to clients.
2021-06-03 10:27:07 -07:00
akshatdalton b98ad46459 templates: Move edit_bot to settings/.
Since templates for settings UI should be
in `static/templates/settings`.
2021-06-02 20:36:21 -07:00
akshatdalton d48a728fd0 templates: Move bot_avatar_row to settings/.
Since templates for settings UI should be
in `static/templates/settings`.
2021-06-02 20:36:21 -07:00
akshatdalton 55d3090f05 templates: Move uploaded_files_list to settings/.
Since templates for settings UI should be
in `static/templates/settings`.
2021-06-02 20:36:21 -07:00
m-e-l-u-h-a-n a46cb14845 js: Add functions to get user groups by user_id. 2021-06-02 20:06:03 -07:00
aryanshridhar 68111d967a settings_invite: Adjust modal heading for resend_invite modal.
Modified resend_invite modal heading to remove the email
field to avoid it's duplication, since the email feild is
also displayed within the actual modal body.
2021-06-02 17:17:36 -07:00
aryanshridhar 994a965aa5 settings_invite: Refactor resend_invite modal to confirm_dialog module. 2021-06-02 17:17:36 -07:00
aryanshridhar 0e3a305a67 settings_invite: Refactor revoke_invite modal to confirm_dialog module. 2021-06-02 17:17:36 -07:00
aryanshridhar e79acba4dc subscription: Refactor subscription_invite modal to confirm_dialog module. 2021-06-02 17:17:36 -07:00
aryanshridhar 91b83cf09f delete_topic: Refactor delete_topic modal to confirm_dialog module. 2021-06-02 17:17:36 -07:00
Priyank Patel bf179b7d2f composebox_typeahead: Use e.key instead of deprecated e.keyCode.
Tested by the adding a console log to the handlers and typing Tab
and Enter in the group PM and stream compose box. This two event
handlers are attached to form#send_message_form which is the compose
box form.

The tests set keyCode to 42 previously, which does not represent a
valid key, so I assume they were trying to test a random key, and
replace it with "a".
2021-06-02 14:04:53 -07:00
Priyank Patel 37f96e85ff compose: Use event.key instead of deprecated event.keyCode.
There is no functionality change caused by this change. We turn the
event key to lowercase so hotkeys work even when Caps Lock is on as
it did before.

Tested by using the keybinds with and without Caps Lock in compose
box:
 - "Ctrl + B" and "Ctrl + Shift + B",
 - "Ctrl + I", and
 - "Ctrl + Shift + L".

(Also tested that "Ctrl + Shift + I" and "Ctrl + L" do not work.)
2021-06-02 14:04:53 -07:00
Priyank Patel e5005cf4cc input_pill: Use e.key instead of deprecated e.keyCode.
Tested by doing the following in the compose box input for PMs:
  - "Enter" works as expcected with and without input
  - "Backspace" when there is no input deletes the last pill
  - Left arrow in the input focuses last pill
  - Comma works as expected for correct and incorrect input
  - Left arrow, Right arrow and Backspace work correctly for pills.
2021-06-02 14:04:53 -07:00
Priyank Patel 94459f1425 dropdown_list_widget: Use e.key instead of deprecated e.keyCode.
We use e.key for our side of code and still pass e.keyCode and
e.which to the custom jQuery event we trigger. The event is handled
by our patched copy of outdated bootstrap and it still requires the
e.keyCode and e.which properties.

One of the places this widget is used is in the settings panel, at
Manage Organization > Organization Settings > Notifications > New
stream notifications. One of the handler is attached to the
dropdown menu items that shows up when you click the "#announce"
button. The other one is attached to the search button. The second
one triggers the custom jQuery event and passes the event data to
bootstrap unless the Up & Down arrow or Esacape is used. The first
event handler handles the Enter click on one of the items and saves
it. Verified that the widget works as expected.
2021-06-02 14:04:53 -07:00
Priyank Patel 283412a5b8 ui_util: Use e.key instead of deprecated e.which.
Tested by making sure Enter is treated as click at one of the places
this function is used, recent topics view. Using the keyboard to
focus the mute or read button and click Enter treats it like a
click.
2021-06-02 14:04:53 -07:00
Priyank Patel a7a9f3eb92 subs: Use e.key instead of deprecated e.which.
Tested by making sure the "Filter stream" search box filters stream
on user input (when Enter is not pressed) in the Streams modal.
2021-06-02 14:04:53 -07:00
Priyank Patel 90bd3e9123 stream_popover: Use e.key instead of deprecated e.which.
Tested by making sure that Enter and other keys work as expected in
the streams dropdown in the Move topic modal.
2021-06-02 14:04:53 -07:00
Priyank Patel f2aae91cc1 stream_edit: Use e.key instead of deprecated e.which.
Tested by making sure Enter works as expected in Stream membership
input in Stream setttings.
2021-06-02 14:04:53 -07:00
Priyank Patel 7f87ea7e79 settings_user_groups: Use e.key instead of deprecated e.which.
Tested by making sure pressing Enter in the user group name and
description does not create a new line at Manage organization > User
groups.
2021-06-02 14:04:53 -07:00
Priyank Patel 08f5349666 settings_streams: Use e.key instead of deprecated e.which.
Tested by making sure Enter works as expected in the default stream
input at Manage organization > Default stream.
2021-06-02 14:04:53 -07:00
Priyank Patel a218143db7 search: Use e.key instead of deprecated e.which.
Tested by making sure Enter works and expected in the navbar search
with and without the typeahead being present.
2021-06-02 14:04:53 -07:00
Priyank Patel 607abc0b77 signup: Use e.key instead of deprecated e.which.
Tested by making sure Enter works as expected in the signup flow.
2021-06-02 14:04:53 -07:00
Priyank Patel baad874689 integrations: Use e.key instead of deprecated e.which.
Tested by making sure Enter does the search in the integrations page
when the input is not empty.
2021-06-02 14:04:53 -07:00
Priyank Patel 969874d633 alert_words_ui: Use e.key instead of deprecated e.which.
Tested by making sure alert word is added when Enter is pressed in
the alert word input.
2021-06-02 14:04:53 -07:00
Priyank Patel 98cb0e339c click_handlers: Use e.key instead of deprecated e.which.
Tested by making sure Enter and Escape works as expected in the edit
stream name in the subscriptions modal.
2021-06-02 14:04:53 -07:00
Priyank Patel 5fdcf7b534 click_handlers: Use e.button instead of deceprated e.which.
The middle button click is represented by 1. Tested by clicking
middle button on zulip logo and making sure it is not focused.
2021-06-02 14:04:53 -07:00
Priyank Patel 53d2712027 settings_org: Use e.key instead of deprecated e.keyCode.
Tested by making sure pressing Enter in the input field of the
changed organization settings (the organization name for example)
clicks the save changes button if present.
2021-06-02 14:04:53 -07:00
Priyank Patel 63cf47b63a stream_create: Use e.key instead of deprecated e.keyCode.
Tested by making sure pressing Enter in the stream creation
description did not create a new line.
2021-06-02 14:04:53 -07:00
Priyank Patel 121e21d3b9 poll_widget: Use e.key instead of deprecated e.keyCode.
Tested by making sure Enter and Escape work for editing poll title
and adding new poll options.
2021-06-02 14:04:53 -07:00
Priyank Patel c292ade96a message_edit: Use e.key instead of deprecated e.keyCode.
Tested by making sure Enter and Escape works as expected for editing
topics and messages.
2021-06-02 14:04:53 -07:00
Priyank Patel 2cb71ccc7b emoji_picker: Use e.key instead of deprecated e.keyCode.
Tested by opening the emoji picker from the composebox and making
sure Enter works as expected on the input.
2021-06-02 14:04:53 -07:00
Priyank Patel 6e59d08a74 settings_org: Fix incorrect selector for the save changes button.
This change fixes a bug where pressing Enter does not save the
changes as expected, due to an incorrect selector, when the
save/discard changes button shows up in settings. Tested by changing
the Organization name and pressing Enter at Manage Organization >
Organization profile > Organization name.
2021-06-01 14:56:10 -07:00
Anders Kaseorg 6702f434ca giphy: Load Giphy SDK lazily.
The Giphy SDK sends tracking pings when it loads; we don’t want those
to be sent for visitors who aren’t using Giphy.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-05-28 15:44:49 -07:00
Aman Agrawal 07f972f45a message_events: Pass correct new stream id to recent_senders.
We were passing new_stream_id as undefined in case of topic
edit as event.new_stream_id is undefined in that case.

We pass the correct stream_id to fix it.
2021-05-28 09:41:02 -07:00
Priyank Patel 7999d52400 ts: Convert keydown_util to TypeScript.
We also add JQuery to globals which is a global type.
2021-05-27 23:33:21 -07:00
Priyank Patel 6ab66ea17a keydown_util: Use Event.key instead of deprecated properties.
The Event.which and Event.keyCode are deprecated as pointed out by
TypeScript intellisense based on the jQuery types. We use Event.key
instead which behaves similarly to Event.which & Event.keyCode for
our use case.

The only difference in functionality by this change is that the vim
keys won't work when Caps Lock is on. This is because, in this case,
the key property will be "J" instead of 'j'. We can fix this by
adding a mapping for this, however, I think we don't want to handle
this case so I left this change out. Tested by trying out the
everywhere keydown_util is used.

Finally, we also turn off the new-cap rule for tests since I think
it fine to only enforce it on real code and exempting test code is
fine.
2021-05-27 23:33:17 -07:00
sahil839 d37ddf13a4 registration: Show spinner and disable button while processing.
This commit disables the button and shows a loading spinner on
the button when signup request is being processed to avoid race
conditions caused by user clicking on the button multiple times.

The fix is done observing that for the case when form is invalid
the whole page is rerendered and thus we do not need to remove
the spinner and enable the button again and for other errors
we redirect to some other page.

And for the validation taking place in client-side, the button
is disabled and spinner is shown, only is form is valid, by
using "$('#registration').valid()".
2021-05-27 22:51:13 -07:00
sahil839 df43d6d99e stream_edit: Fix bug of disabling of "Add" button on subscribing.
We live update the "Add subscribers" UI on subscribing/unsubscribing
the stream and the field sub.can_add_subscribers is used to check
whether user is allowed to add subscribers or not.

The sub object used here is not the complete sub object and thus
sub.can_add_subscribers is undefined. We need to use the updated
sub obejcts with all the setting fields that we can get from
'stream_settings_data.get_sub_for_settings' before rendering UI.

This calculation of additional fields was done previously by
'stream_data.update_calculated_fields', but in d50462568b
call to 'updated_calculated_fields' was removed with the aim to
call 'get_sub_for_settings' before updating UI which was missed
in this part of UI update.

Fixes #18616.
2021-05-27 16:49:10 -07:00
Gaurav Pandey 64bd461bad register api: Rename realm_upload_quota.
Rename `realm_upload_quota` to `realm_upload_quota_mib`
reflecting file size in mebibytes. Update frontend and bump
API_FEATURE_LEVEL.
2021-05-26 11:38:24 -07:00
Gaurav Pandey 1da818f848 register api: Rename max_logo_file_size.
Renaming `max_logo_file_size` to `max_logo_file_size_mib`
reflecting the file size in mebibyte and update the frontend.
2021-05-26 11:38:24 -07:00
Gaurav Pandey 531cf041f1 register api: Rename max_icon_file_size.
Renaming `max_icon_file_size` to `max_icon_file_size_mib`
reflecting the file size in mebibyte and update the frontend.
2021-05-26 11:38:24 -07:00
Vishnu KS 3e62a793f7 user status: Remove data attributes from user status options.
I don't see any good reason why we have to store the status
values in data attributes when they are already stored as
the content of the buttons.
2021-05-26 11:04:04 -07:00
m-e-l-u-h-a-n 22b1f6e1ab typeahead: Make typeahead_helper.sort_recipients more readable. 2021-05-25 08:03:02 -07:00
m-e-l-u-h-a-n 069718cdc7 pills: Cleanup source initialization in pill_typeahead.
Source in pill_typeahead, was intialized in a
very tricky way. In this cleanup, we refactor it
to clearly reflect how source is initialized for
different cases. These changes do not change its
behavior for its current use and solve potential
issues, so that it could be safely used at places
that do not require user pills at all.
2021-05-25 08:01:56 -07:00
m-e-l-u-h-a-n 0080daa5a3 minor: Specify types of pills while initializing pill typeahead.
In options that we pass to pill_typeahead.set_up we
specify if we want typeahead to support stream or
user_group pills, and use users as source by default.

Using users for source by default, can have unnecessary
suggestions in typeaheads where only user_groups or streams
are needed.

So to solve that, we specify if we want users pill in the input.
This is then utilized in further commits, to clean up hacky code
that deals with intializing source for typeahead.
2021-05-25 08:01:05 -07:00
m-e-l-u-h-a-n 637f648828 message view: Show re-hide option in revealed muted user's message only. 2021-05-25 07:56:13 -07:00
Sumanth V Rao 386ddf1517 typehead_helper: Show a maximum of one alias per language.
We make the typeahead a little more nicer but only showing one alias
per language. For example if the user searches for prefix "j", then
the typeahead list should contain "javascript" only, and not "js" and
"javascript".
2021-05-24 23:15:40 -07:00
Tim Abbott c44a922b15 settings_data: Avoid using undefined for false. 2021-05-23 14:26:45 -07:00
sahil839 6a792c93df setting: Add moderator option in email visibility setting in frontend. 2021-05-23 14:26:00 -07:00
Riken Shah 51e24519b8 refactor: Rename `panels.js` to `navbar_alerts.js` as it better explains it. 2021-05-21 17:49:12 -07:00
m-e-l-u-h-a-n 2fce386657 message view: Refactor _rerender_message to accept object of parameters.
It is changed to improve readability, about what parameters are being
passed.
2021-05-21 17:47:05 -07:00
m-e-l-u-h-a-n 61cc26667d popovers: Hide message action popover on revealing muted user messsage.
When muted user's message is revealed, popover should have
an option for hiding the message again. But in case if the
popover is already open while message is being revealed then
option for undo reveal in the popover could be out of sync.

To avoid this, we hide the message actions popover before
revealing muted user's message.
2021-05-21 17:23:29 -07:00
m-e-l-u-h-a-n caa5ec74c2 message view: Allow muted user message to be rehidden.
An new option is added in message action popover of a muted user
message that allows the message to be rehidden.

Fixes: #18452.
2021-05-21 17:23:29 -07:00
Priyank Patel f4524467e0 ts: Convert reload_state to typescript. 2021-05-21 16:53:30 -07:00
Priyank Patel 3b46ec0e5f ts: Convert colorspace to typescript. 2021-05-21 16:53:30 -07:00
Priyank Patel cafe2b4d11 colorspace: Remove unused methods.
The getDecimalColor, getLighterColor & getHexColor were unused.
2021-05-21 16:53:30 -07:00
Priyank Patel e18377162c ts: Convert search_utils to typescript. 2021-05-21 16:53:30 -07:00
Priyank Patel 1325b25704 ts: Convert message_user_ids to typescript. 2021-05-21 16:53:30 -07:00
Priyank Patel 3c84a883c5 ts: Convert feature_flags to typescript. 2021-05-21 16:53:27 -07:00
m-e-l-u-h-a-n c97956c5ff message view: Fix tooltips in message action icons.
Tooltips in message action buttons for failed message were
not shown properly because they were initialized two times
first because of general tippy-zulip-tooltip class and then
because of message_control_button class. So to avoid showing
an extra empty tooltip for failed message icons we return
false from onShow() method of message_control_button class
initialization of tooltip.
2021-05-20 17:30:24 -07:00
m-e-l-u-h-a-n 03a3879aa0 message view: Remove unnecessary expectOne check in tippyjs.
This check was not needded as it is possible to have even zero
edit message buttons in cases when a message is fails. So it
raises unncesary errors on hovering over icons of those failed
messages.
2021-05-20 17:30:24 -07:00
Tim Abbott af2b1ef3a1 page_params: Remove duplicate debug_mode field.
This had the same value as development_environment, I believe in a way
likely to persist long term, and was less clear about its meaning.
2021-05-20 14:57:34 -07:00
Tim Abbott 2e67b879ed api: Add server_timestamp to register response.
Since this is currently only useful to interpret presence data, we
send this only if presence is requested.

I'm not sure that server_timestamp is the right name for this field,
but ultimately it should match the main presence API format.
2021-05-20 14:57:34 -07:00
Aman Agrawal 637c7e297c streams_filter_icon: Convert from id to class.
This will allow us repeat the class which we cannot do with id.
2021-05-20 14:41:40 -07:00
Aman Agrawal d666b465b9 hotkeys: Go through hashchange to open drafts.
This helps us keep all the logic related to changing hash of
webapp in hashchange itself, like not showing drafts to
web-pubic-visitors.
2021-05-20 14:41:40 -07:00
akshatdalton 78b59fa756 people: Fix `get_mention_syntax` when `full_name` matches wildcard.
When quoting a reply or mentioning a person having full name matching
wildcard mention, in such case, `get_mention_syntax` doesn't return
mention syntax of format: **full_name|user_id**.
As a result, a normal user can't mention such users and users who
can mention them may unwillingly trigger wildcard mention.
This commit fixes such issue.
2021-05-20 11:41:56 -07:00
akshatdalton b636a9199b compose: Add typeahead for user group silent mentions.
Prior to this, we restricted to show any user group suggestions
if silent mention syntax is used. But with the addition of
user group silent mentions, there are cases where one may want to
refer to some user groups without actually notifying them.
So, we add typeahead logic for such cases.

Test cases for silent syntax (@_*) and non-silent syntax (@*)
are added.
2021-05-20 11:41:55 -07:00
akshatdalton bf96d7eae8 markdown: Add support for local rendering of user group mention in quote.
This also adds test cases to test the local rendering of
user group mention in blockquotes.
2021-05-20 11:35:04 -07:00
akshatdalton e50d189191 minor: Refactor `user_mention_re` to match characters except `>`.
The regex could have match a bunch of characters including `>`
and hence end up matching across multiple adjacent spans in
a weird way. This commit fixes such an issue.
2021-05-20 11:35:04 -07:00
akshatdalton 5bab65e82f markdown: Add support for local rendering of user group silent mention.
This also adds test cases to test the local rendering of
silently mentioned user group.
2021-05-20 11:35:04 -07:00