Commit Graph

6238 Commits

Author SHA1 Message Date
Prakhar Pratyush 55f97cd06f realm_export: Add support to create full data export via /export/realm.
Earlier, only public data export was possible via `POST /export/realm`
endpoint. This commit adds support to create full data export with
member consent via that endpoint.

Also, this adds a 'export_type' parameter to the dictionaries
in `realm_export` event type and `GET /export/realm` response.

Fixes part of #31201.
2024-10-11 13:20:42 -07:00
evykassirer 2367c46455 buddy_list: Fix bug where headers weren't being updated often enough.
`$(".buddy-list-subsection-header").children()` has length more often
than I had thought. Using the narrow filter is more direct way of
managing this state.
2024-10-11 13:16:45 -07:00
evykassirer d61ec2a0cc settings: Remove unused realm_create_private_stream_policy.
This was replaced with realm_can_create_private_channel_group in
e19524b and wasn't fully removed.
2024-10-11 13:15:36 -07:00
evykassirer 87835b81cb state_data: Flesh out types for realm_schema. 2024-10-11 13:02:45 -07:00
Karl Stolley 979e8ff5d2 inbox: Use plural for Direct messages header. 2024-10-11 12:54:21 -07:00
Kislay Udbhav Verma 8b7820ca71 resolve_topic: Change dialog button text.
We replace the comma in the buttons to an em dash.
This is a follow up to #31312.
2024-10-11 11:49:18 -07:00
Sahil Batra 7db6de340f settings: Clean schemas and types used for group settings.
Removed "type"/"Type" from schema and type names used
for group settings because we want to use "type"/"Type"
only for "type of a type" cases.

So, this commit renames-
- anonymous_group_type => anonymous_group_schema
- group_setting_type_schema => group_setting_value_schema
- GroupSettingType => GroupSettingValue

We also had duplicate definitions for GroupSettingType, in
state_data.ts and in settings_components.ts. So, removed it
from settings_components.ts.
2024-10-11 11:22:47 -07:00
Sahil Batra 96abf2501a user_groups: Handle live-update of group settings like other settings.
This commit updates live-update of group settings like we do for
stream and realm settings.

Current behavior is -
- If the save discard buttons are visible, meaning that the current
user was in the middle of changing a setting, then all the settings
elements are synced to the original value irrespective of whether
that setting was actual updated, including the setting which the
current user was changing.
- If the save discard buttons are not visible, then only the
element of updated setting is synced as it is not needed to
reset the UI for other settings.

We make the change similar to what we did for realm and stream
settings in 5da1e57fc2. 5da1e57fc2 did not had the changes
for group settings since we had only one group setting then
but now we have multiple settings.
2024-10-11 11:21:56 -07:00
Sahil Batra d7ad951172 settings_components: Compare group setting values correctly.
Since group setting value can be an object containing
direct_members and direct_subgroups fields, this code
updates check_group_property_changed function to use
isEqual to compare the setting values instead of using
"===".

This makes sure that save-discard widget is shown and
hidden as expected.
2024-10-11 11:21:56 -07:00
evykassirer 36183761f8 settings_notifications: Add specificity to select classname to justify type. 2024-10-10 14:36:07 -07:00
evykassirer 9dc0e55835 settings_notifications: Convert module to typescript. 2024-10-10 14:36:07 -07:00
evykassirer daf9954c8b notifications: Add specificity to notification_sound_elem.
This will help justify upcoming types in settings_notifications.ts
2024-10-10 14:36:07 -07:00
evykassirer 52b33868f1 settings_notifications: Pass currentTarget instead using e.target.
This function only uses `e` for its `target`, so it could instead be
passed the `HTMLInputElement` instead of the `JQuery.ChangeEvent`. The
caller is an event handler for the selector `"input, select"` and
`<input>` has no children, so there’s no difference here between
`.target` and `.currentTarget`.

This will be helpful for typescript, because `currentTarget` has
clearer typing.
2024-10-10 14:36:07 -07:00
evykassirer b5352df782 ui_util: Fix elem type in play_audio to match how it's called. 2024-10-10 14:36:07 -07:00
evykassirer faeee04472 settings_notifications: Initialize user_settings_panel to undefined instead of {}.
This will make the conversion to typescript easier.
2024-10-10 14:36:07 -07:00
evykassirer 9ee489700b buddy_list: Move invite users link to inside scrollable section.
Fixes #31653 (second half).
2024-10-10 14:34:11 -07:00
evykassirer 33cbaf598a buddy_list: Add three dot menu beside search button, with invite link.
Fixes part of #31653.
2024-10-10 14:34:11 -07:00
evykassirer 0dedd00112 buddy_list: Add span for search section of header.
This is in preparation for adding a three-dot menu to the header,
which we don't want to be a click/hover target in the way the
search parts are.
2024-10-10 14:34:11 -07:00
evykassirer 17252a70ed buddy_list: Un-nest menu icon styles, for ease of sharing. 2024-10-10 14:34:11 -07:00
Varun Singh f4de1c4313 personal_menu_popover: Convert module to TypeScript. 2024-10-10 14:07:57 -07:00
Varun Singh 9d2a82d477 personal_menu_popover: Remove unused field from function call.
The API structure does not contain the `user_id` field.
2024-10-10 14:07:57 -07:00
Aman Agrawal ec23f5e77b hello: Add interactive block showing basic usage.
Co-Authored-By: Vlad Korobov <terpimost@gmail.com>
2024-10-10 11:42:29 -07:00
Sahil Batra 7b27948518 user_groups: Live update members list if a member is deactivated. 2024-10-10 11:37:44 -07:00
Sahil Batra 4fe12c1860 user_group_settings: Remove redundant is_person_active check.
The "members" field for user groups sent by servers only include
active users, so there is no need for is_person_active check to
filter out the deactivated users.
2024-10-10 11:37:44 -07:00
Karl Stolley bef66b7c40 starred_messages: Match header to left-sidebar icon. 2024-10-10 11:26:46 -07:00
Kislay Udbhav Verma a787c7ff80 topic: Add a first-time explanation for "Resolve topic".
We show a confirmation dialog explaining the "resolve topics"
feature when the user marks a topic resolved for the first time.
If the user confirms the action, we mark the
topic resolved, else we don't.

We don't show anything the first time a topic is marked
unresolved.

Fixes #31242
2024-10-09 18:12:55 -07:00
Sayam Samal e0d685ce92 message: Improve the copy codeblock and playground buttons.
This commit improves the copy codeblock button and playground button
in the codeblocks to improve their visibility, particularly when on
top of some code.

Previously, the text under these buttons was difficult to select, as the
buttons would block the selection. This commit now hides these buttons
when a user clicks on any part of the codeblock, allowing to view the
code without any distractions, as well as, allowing the user to select
any part of the code.
2024-10-09 17:37:08 -07:00
Anders Kaseorg ca8d25f830 tests: Unmock realm_user_settings_defaults.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-09 16:33:38 -07:00
Anders Kaseorg a2c4e3a220 tests: Use override for realm_user_settings_defaults.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-09 16:33:38 -07:00
Anders Kaseorg ddf0fafab7 tests: Use override more for realm.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-09 16:20:50 -07:00
Anders Kaseorg e84bb9ff2c tests: Unmock state_data.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-09 15:34:58 -07:00
Anders Kaseorg 95153b3f0c tests: Use override for realm.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-09 15:34:58 -07:00
Anders Kaseorg 9cd2408e0d tests: Use override for current_user.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-09 15:34:58 -07:00
Anders Kaseorg 8e49ca163b tests: Unmock user_settings.
We previously auto-mocked this out of expediency, but that made it
impossible to test anything that uses the Zod schemata in the same
module.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-09 15:34:58 -07:00
Anders Kaseorg 4d74ecccf3 tests: Use override for user_settings.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-09 15:34:58 -07:00
Karl Stolley 1f2ce2e7e6 left_sidebar: Use calendar-days icon with scheduled messages. 2024-10-09 11:14:27 -07:00
Sayam Samal 2e0cd48141 popovers: Fix initial focus on popover simplebar container.
This commit is a follow-up of 43eebbf9c6,
and it sets `data-simplebar-tab-index="-1"` on the remaining popovers.

This prevents the simplebar container from taking focus while trying to
navigate the popovers via the keyboard, thus fixing the bug where the
user had to click the down key twice before reaching the first
focus-able popover menu option.
2024-10-09 11:13:17 -07:00
Tim Abbott a1d616f8c0 upload: Disable the tus-js-client fingerprinting feature.
This feature isn't likely to be useful for our use case and generates
some risk; see the comment for details.
2024-10-08 18:04:24 -07:00
evykassirer 6c62ce567f setting_org: Remove unused params sent to build_realm_icon_widget. 2024-10-08 17:52:15 -07:00
evykassirer dd0b5b56c2 settings_org: Explicitly pass undefined for missing sub argument. 2024-10-08 17:52:15 -07:00
evykassirer efe8c4754b settings_org: Use this instead of e.target.
This should work because all the events are either `change` events or
`click` events on elements without children. This change is being made
to make typescript migration easier, ecause we can type `this` more
easily than `e.target`.
2024-10-08 17:52:15 -07:00
evykassirer 0f1f42f3a5 settings_org: Add default value for null realm_jitsi_server_url. 2024-10-08 17:52:15 -07:00
evykassirer 0c29e067b4 buddy_list: Rotate the header triangle when collapsing a section. 2024-10-08 17:41:30 -07:00
evykassirer 4adf6e6c1e buddy_list: Don't rerender whole header when toggling sections.
This will be necessary to get the triangle to rotate when toggled.
2024-10-08 17:41:30 -07:00
evykassirer 83dc7fc4d9 typeahead: Prevent blue styling from mouse hover on typeahead item. 2024-10-08 17:36:40 -07:00
Anders Kaseorg ba8b9a445b eslint: Fix unicorn/prefer-node-protocol.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-08 16:54:15 -07:00
Anders Kaseorg 9c2f38193d stream_data: Always initialize pin_to_top.
This simplifies the StreamSubscription type, and parallels how we
always initialize every other property that isn’t in
NeverSubscribedStream (audible_notifications, desktop_notifications,
email_notifications, push_notifications, wildcard_mentions_notify,
color, is_muted).  email_address was already optional.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-08 16:52:42 -07:00
Sahil Batra 7a1277ea95 user_groups: Allow setting and changing can_join_group setting.
Fixes part of #25938.
2024-10-08 12:18:13 -07:00
Sahil Batra 701e391def user_groups: Use can_join_group setting to check permisison.
This commit adds code to use can_join_group setting when
checking permission to join group in webapp.

Fixes part of #25938.
2024-10-08 12:18:13 -07:00
Sahil Batra 1033230b52 user_groups: Include "can_join_group" field in user group objects.
Fixes part of #25938.
2024-10-08 12:18:13 -07:00
Karl Stolley a073eaa534 left_sidebar: Use unfilled star icon in sidebar navigation. 2024-10-08 10:43:28 -07:00
Aman Agrawal 777f6be88f puppeteer: Fix incorrectly passed `false` value to check narrow change.
This caused another CI flake.

Also, added a comment to the only other place where we pass false
explicitly explaining why.
2024-10-07 16:07:08 -07:00
Karl Stolley 3209086370 widgets: Assign zulip-button colors to edit buttons. 2024-10-07 13:57:20 -07:00
Aman Agrawal d5b8193a0a hashchanged: Fix near links being ignored if already in that view.
Fixes #31701.

This fixes a bug where when the user clicks on a near link, the
pointer doesn't shift to the `near` linked message. This can
be a confusing experience for the user.
2024-10-07 11:06:58 -07:00
Aman Agrawal 787a37176d message_view: Update date on sticky header after rendering narrow.
On a fresh render of a narrow if the view doesn't scroll,
`update_sticky_recipient_headers` is not called. So, we need call
it after we have scrolled to the message we want to select.
2024-10-07 11:02:13 -07:00
Aman Agrawal 69c1b7c64e message_events: Use the new message_ids param of /messages.
This helps us better update the views where we don't have the
messages that were updated cached or the filter cannot be
applied locally.

Tested using browser breakpoints for search `zulip` in starred narrow
for `!filter.can_apply_locally()` and setting message_fetch
constants to single digit for `messages_to_fetch.length > 0`.
2024-10-07 11:00:40 -07:00
Aman Agrawal 334a195627 message_events: Fix property_value not being passed.
This was not passed by mistake.
2024-10-07 11:00:40 -07:00
Aman Agrawal dae2a68ad9 puppeteer: Fix flaky wait for narrow change after sending a message.
This flake was happening since `wait_for_fully_processed_message`
only checks if the `star` icon is displayed on the message but
doesn't check for current narrow or waits for the narrow to
change.

Since narrow is changed to the message narrow after sending a
message. If we don't wait for narrow to change, this narrow change
can make the `get_current_msg_list_id` call return true for the
wrong narrow change. Which causes message list id of the wrong
message list to be returned and hence we cannot locate this
message list id.

To fix it, we check if sending this message will cause a narrow
change and if true, we wait for the narrow to change before
checking if the message is visible.
2024-10-07 14:17:02 +05:30
Aman Agrawal 882e4f56c1 copy-and-paste: Remove not required click on all messages narrow.
This change might also fix the flaky nature of this test but needs
to be tested by running online on CI.
2024-10-07 08:27:10 +05:30
Aditya Kumar Kasaudhan 8994266137 left-sidebar: Use -, _, :, and / as additional topic word separators.
Previously, only spaces were used as word separators when searching
for topics. This meant that searching for "support" would not find a
topic named "topic_support" or "topic/support," which could lead to
unexpected results.

To address this, hyphen (-), underscore (_), colon (:), and slash (/)
have been added as additional word separators for topic filtering in
the left sidebar, as these characters are commonly used as separators
in topic names.

Fixes: #31844
2024-10-04 14:18:43 -07:00
Shubham Padia 6968d7374a compose: Change cursor to default instead of not-allowed.
Fixes #31214.
2024-10-04 11:40:15 -07:00
Shubham Padia 0634f75582 settings: Rearrange group settings in alphabetical order. 2024-10-04 11:15:01 -07:00
Shubham Padia 72de37e737 settings_data: Move spectator check to a single function.
Move spectator check to user_has_permission_for_group_setting.
2024-10-04 11:15:01 -07:00
Sayam Samal b09dfb782d reactions: Optimize DOM cost of message reactions via dynamic rendering.
Before, the message reactions section along with the add reaction button
was being rendered for every message even when there were no reactions
present - this led to additional DOM cost.

This commit adds the message reactions section only when there is
at least a single reaction on the message, and follows up with a cleanup
of the message reactions section when there are no reactions.

Fixes #31137.

Co-authored-by: Anmol-dev45 <basnetanmol2020@gmail.com>
2024-10-04 11:09:43 -07:00
Sahil Batra 74fb851958 settings: Do not store pill widgets for new groups in map.
Instead of storing setting pill widgets for new groups
in group_setting_widget_map, we just use variable in the
user_group_create file to store the widget.

This helps in accessing the widget with the key having
"new_group_" as prefix which we want to avoid as a pattern.

Note that the classes and IDs in templates still use
"new_group_" prefix.
2024-10-04 08:48:03 -07:00
Sahil Batra 698f3cf41b settings: Refactor code to get group setting pill widget value.
This commit refactors get_group_setting_widget_value function
to accept pill widget as parameter instead of setting name.

This is a prep commit for not needing to store the widgets for
group creation form in settings_components.group_setting_widget_map.
2024-10-04 08:48:03 -07:00
Sahil Batra 4b206b7394 settings: Refactor code to set group setting pill widget value.
This commit refactors set_group_setting_widget_value function
to accept pill widget as parameter instead of setting name.

This is a prep commit for not needing to store the widgets for
group creation form in settings_components.group_setting_widget_map.
2024-10-04 08:48:03 -07:00
Anders Kaseorg 7bd5ec28ae dependencies: Upgrade JavaScript dependencies.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-04 08:47:07 -07:00
Anders Kaseorg 7bd0df408d eslint: Fix unicorn/prefer-math-min-max.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-04 08:47:07 -07:00
Anders Kaseorg 3b79a534a2 eslint: Fix unicorn/consistent-existence-index-check.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-04 08:47:07 -07:00
Anders Kaseorg e7e8062b2e web: Add missing CSS.escape calls.
Any string interpolated into a CSS selector must be CSS escaped.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-04 08:39:30 -07:00
Anders Kaseorg a8304fb324 sentry: Address Sentry JavaScript 7.x deprecations.
https://docs.sentry.io/platforms/javascript/migration/v7-to-v8/

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-03 16:09:48 -07:00
Aman Agrawal 1b47134d0d sponsorship: Fix `#organization-type` not found.
The sponsorship form is not visible once user submits the form,
hence we don't to call these functions.
2024-10-03 09:25:47 -07:00
Anders Kaseorg 9c2da46966 filter: Fix unparse to round-trip Unicode whitespace operands.
Previously [{operator: "topic", operand: "one\xa0two"}] would be
unparsed to "topic:one\xa0two" which parses as [{operator: "topic",
operand: "one"}, {operator: "search", operand: "two"}], leading to
exceptions in the search pill system.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-10-03 09:14:31 -07:00
roanster007 81efecf463 stream_topic_history: Update history to only store acked message ids.
Previously, the "stream_topic_history" used to store unacked float
message ids as well in its "max_message_id" of stream and
"message_id" of topic histories.

This commit updates it to rather store only the acked message ids
here, and rather use the "echo_state" module so as to look up
for unacked messages in case of looking for recent topics, or
max message id in functions.
2024-10-02 18:31:32 -07:00
roanster007 da75fed5be echo: Start tracking local messages before updating sidebars.
Previously, when `insert_local_message` was called, the
data structures in the `echo_state` are updated with the new
local messages after calling `insert_new_message`. This would
update the stream sidebar before even updating the `echo_state`
with the new local messages.

This commit introduces `track_local_message`, which basically
updates the `echo_state` data structures with the local
message before actually updating the stream sidebar.

This is a preparatory commit to update stream_topic_history
to only contain acked message ids.
2024-10-02 18:31:32 -07:00
Tim Abbott 3f307f5941 message_view_header: Remove unnecessary complexity.
The narrow_state module has a function that returns what this needs.

This does remove a log statement, but I don't think it was useful; we
don't need to or have a useful way to colorize a channel that doesn't
exist.
2024-10-02 17:42:02 -07:00
roanster007 359ebfc6c8 filter: Refactor code path which adjusts the narrow containing `with`.
This commit refactors the `ensure_channel_topic_terms` of filter.ts.
Previously, this method used to add channel and topic terms, with
operands as placeholders in case the `with` narrow doesn't have
channel-topic terms.

This commit updates it to rather correct the narrow with the right
terms in case the channel-topic terms are missing in the `with`
narrow, but leave it as it is in case the channel-topic terms are
present, so that it can later be corrected if the channel-topic
terms are not pointing to the right conversation.
2024-10-02 16:22:59 -07:00
Sayam Samal 0a9ae964fe send_later_popover: Improve on-focus styling of enter send choices.
Previously, no custom styling was being applied to the enter send
choice options, which led to uneven styling from the other popover
options, as well as the outline ring being cut-off from the edges of
the popover. This commit fixes these issues by adding custom styling
for the outline ring when the enter send choice options are focused.
2024-10-02 14:35:37 -07:00
Sahil Batra e19f4ed2a8 user_groups: Do not allow click events on disabled pill container.
The typeahead should not open on clicking the pill container when
the container is disabled when the user is not allowed to change
the setting.
2024-10-02 14:23:37 -07:00
evykassirer 9c8cc8c333 buddy_data: Add participants to the top of sorted user list.
This was causing a bug where the participants weren't necessarily
all getting rendered, specifically when there were many subscribers
to a channel, because we render users in batches as buddy list
scrolls, and those users would only show up after some scrolling.

This fix makes sure we always load the participants first.
2024-10-02 09:33:48 -07:00
Aman Agrawal 8e5672dd98 message_view: Fix narrow to compose recipient rerenders in same narrow.
We don't rerender if we are already narrowed to the compose recipient.
2024-10-02 09:32:18 -07:00
opmkumar ee70cd8af3 saved_snippet: Prepopulate new saved snippet content.
Fixes #31827.
2024-10-02 09:30:18 -07:00
Tim Abbott 2807d7fbb8 dropdown_widget: Use CSS variable for disable color. 2024-10-01 18:21:33 -07:00
Tim Abbott 119fa699a7 message_view: Fix invalid target message assumption.
The target_message is just whatever message has the ID in a /near/ or
/id/ link; there's no guarantee it's a channel message.
2024-10-01 17:59:59 -07:00
Tim Abbott 0fa4cd9d09 message_view: Remove incorrect assert for p keyboard shortcut.
This happens routinely when the current view is not a DM view.
2024-10-01 17:47:45 -07:00
Shubham Padia 12ebd97f1f settings: Add group_creator as default for can_manage_group.
We create an unnamed user group with just the group creator as it's
member when trying to set the default. The pattern I've followed across
most of the acting_user additions is to just put the user declared
somewhere before the check_add_user_group and see if the test passes.
If it does not, then I'll look at what kind of user it needs to be set
to `acting_user`.
2024-10-01 17:35:14 -07:00
Shubham Padia 91edf59873 settings: Rename can_edit_all_user_groups to use `manage`.
Having both `manage` and `edit` terminologies was confusing, so
this commit ensures that we use `manage` wherever applicable.
2024-10-01 17:35:14 -07:00
Shubham Padia b7764eb6f0 settings: Remove user_group_edit_policy from the frontend. 2024-10-01 17:35:14 -07:00
Shubham Padia f0b9d610a5 settings: Use `can_manage_all_groups` to control who can manage groups.
We also add the exception for the group creator to be able to edit their
group in this commit. This exception was added in the backend in earlier
commits.
2024-10-01 17:35:14 -07:00
Shubham Padia 2b6414acfb settings: Add can_manage_all_groups setting to realm.
This commit does not add the logic of using this setting to actually
check the permission on the backend. That will be done in a later
commit.
Only owners can modify this setting, but we will add that logic in a
later commit in order to keep changes in this commit minimal.
Adding the setting breaks the frontend, since the frontend tries to find
a dropdown widget for the setting automatically. To avoid this, we've
added a small temporary if statement to `settings_org.js`.
Although, most lists where we insert this setting follow an unofficial
alphabetical order, `can_manage_all_groups` has been bunched together
with `can_create_groups` since keeping those similar settings together
would be nicer when checking any code related to creating/managing a
user group.
2024-10-01 17:35:14 -07:00
Shubham Padia a9e14a184c settings: Use `can_create_groups` to control who can create user groups. 2024-10-01 17:35:14 -07:00
Shubham Padia 17276e95a1 dropdown_widget: Allow passing is_setting_disabled in the template.
This is a preparatory commit to allow disabling
dropdown_widget_with_label for `can_create_groups` and
`can_manage_all_groups` for non-owners.
2024-10-01 17:35:14 -07:00
Shubham Padia fc46673f23 settings: Add can_create_groups setting to realm.
This commit does not add the logic of using this setting to actually
check the permission on the backend. That will be done in a later
commit.

Adding the setting breaks the frontend, since the frontend tries to find
a dropdown widget for the setting automatically. To avoid this, we've
added a small temporary if statement to `settings_org.js`.
2024-10-01 17:35:14 -07:00
Vector73 66113365a5 saved_snippets: Add new feature for saved snippets.
Fixes #31227.
2024-10-01 11:48:15 -07:00
Lauryn Menard 8301dcd421 compose-recipients: Resize compose box text area for placeholder.
When adding or removing recipients for a direct message, the
placeholder text may cause a change in the size of the compose box,
so this adds a call to `compose_ui.autosize_textarea` when setting
that placeholder attribute.
2024-10-01 10:29:16 -07:00
Tim Abbott 2f8e2f77aa user_group_edit: Fix use of stream in user-facing string. 2024-10-01 10:25:59 -07:00
sanchi-t 84f9765b18 css: Remove non-existent class selctor. 2024-10-01 10:24:16 -07:00
sanchi-t 0f506eaf91 css: Refactor theme colors for `kbd`.
This change moves the light and dark theme colors for `kbd` to
CSS variables.
2024-10-01 10:24:16 -07:00
Sahil Batra f97da983cf user_groups: Handle inaccessible streams in group deactivation error.
If the user group being deactivated is used as a setting for a stream
which cannot be accessed by the user trying to deactivate the group,
we show "Unknown stream" in the banner mentioning where the group
is used.
2024-10-01 09:45:37 -07:00
Sahil Batra 58ab97a0b4 user_groups: Show details for group deactivation error.
This commit adds code to list the groups and streams
where the group is being used as settings in a banner.

The banner also mentions if the group is being used for
realm settings.
2024-10-01 09:45:37 -07:00
sanchi-t 19ba94b946 css: Refactor theme colors for `app_components`.
This change moves the light and dark theme colors for
`app_components` to CSS variables.
2024-10-01 09:41:22 -07:00
sanchi-t a8e809e63f css: Refactor theme colors for `.table-striped`.
This change moves the light and dark theme colors for
`.table-striped` to CSS variables.
2024-10-01 09:40:47 -07:00
sanchi-t 72971cda8e css: Refactor theme colors for `.demo-organization-warning`.
This change moves the light and dark theme colors for
`.demo-organization-warning` to CSS variables.
2024-10-01 09:40:47 -07:00
evykassirer 9ba6c18e3a reload: Only add stream_id if it's defined.
This isn't a bug fix, but it does clean up the code. `reload_setup`
only uses the `stream_id` if it can parse it as an integer and
otherwise falls back to `undefined`, so it makes more sense to not
include undefined stream ids.
2024-09-30 17:48:17 -07:00
Shubham Padia 7a0a71b7d1 message_edit: Use display: grid instead of relative positioning.
Fixes #31750.
The control buttons of the edit box were flickering b/w default cursor
and pointer cursor after c1d155d923.
The addition of `position: relative` to `.edit-content-container` was
causing that. We've now added a div to apply position:relative to, this
div does not have any edit controls in it's children.
2024-09-30 17:40:37 -07:00
evykassirer 261f01ede8 input_pill: Highlight previous pill after backspace deletion.
This is helpful for when a user wants to delete multiple pills
in a row, now that a pill needs to be highlighted before it can
be deleted.

It makes more sense intuitively for the previous pill to be selected
after backspace, since the direction of deletion is backwards. We
still potentially focus next() if there is no previous pill, which
is most helpful when the input element has no more pills left, since
this focuses the text field.
2024-09-30 16:37:12 -07:00
evykassirer 6e85fa8fcc input_pill: Highlight/focus pill before removing it.
Select the pill on the first backspace and delete the whole pill on
the second backspace. If the pill is already highlighted from
left-pressing, then backspace would delete it right away.

We're making this change because it can be quite annoying to
re-type out a pill that's accidentally deleted, and users might
think pills are editable and accidentally delete the whole thing
with a backspace stroke.
2024-09-30 16:37:12 -07:00
evykassirer f5be62f60d buddy_list: Include offline users in participants list for large orgs. 2024-09-30 16:35:13 -07:00
evykassirer 38e5b4b8fc buddy_list: Show conversation participants in the right sidebar.
Fixes #31129.
2024-09-30 16:35:13 -07:00
evykassirer 12033d6690 message_view_header: Add blueslip logging for undefined sub.
To try to figure out why this is happening:
https://chat.zulip.org/#narrow/stream/464-kandra-js-errors/topic/Error.3A.20Failed.20to.20process.20an.20event
2024-09-30 16:32:03 -07:00
Anders Kaseorg 2440c6d244 electron_bridge: Harden against hypothetical DOM clobbering attacks.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-30 16:31:27 -07:00
Anders Kaseorg b0653d1ea4 uploaded_files_list: Fix id pollution.
The HTML id attribute is supposed to be globally unique; it’s not an
appropriate place to store a user-controlled string, or to identify
part of a component that’s rendered more than once.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-30 14:15:31 -07:00
Karl Stolley 762617e23f left_sidebar: Add hover styles for action headings. 2024-09-30 13:38:33 -07:00
Karl Stolley 04f6082dfb left_sidebar: Add color for collapsed nav item hover. 2024-09-30 13:38:33 -07:00
Karl Stolley f73e39c63d sidebars: Restyle vdots icon colors and hover states. 2024-09-30 13:38:33 -07:00
Karl Stolley 872a1e64a6 left_sidebar: Add hover effects for section headings. 2024-09-30 13:38:33 -07:00
Karl Stolley 8c54c1df3e sidebars: Add active and hover sidebar-row styles. 2024-09-30 13:38:33 -07:00
Karl Stolley 1d4f282cbd sidebars: Present neutral and active sidebar-row states. 2024-09-30 13:38:33 -07:00
evykassirer 471d042a11 message_notifications: Convert module to typescript. 2024-09-30 12:07:27 -07:00
evykassirer 6c390551de unread: Remove useless message_unread function. 2024-09-30 12:07:27 -07:00
evykassirer 4215c9d707 message_notifications: Check if NotificationAPI is undefined.
`window.Notification` can be `undefined` in iOS Safari.
https://bugs.webkit.org/show_bug.cgi?id=247315

This hasn't caused any known bugs, but it's better to catch
this case with an undefined check than to assert it's defined
when we convert this file to typescript.
2024-09-30 12:07:27 -07:00
Lauryn Menard 9f3553815e help: Link to dedicated articles vs getting org started guide.
As the guide to getting an organization started is being replaced
by the moving to zulip guide, replace links to subsections of the
old guide to instead go to dedicated articles about those topics.
2024-09-30 11:58:31 -07:00
Lauryn Menard d8fd0d8599 scheduled-messages-ui: Set channel ID in narrow term to a string. 2024-09-30 11:25:02 -07:00
Aman Agrawal e5a0157f84 messages_ovelay: Use specific name for `row_item_selector`. 2024-09-30 11:23:29 -07:00
Aman Agrawal e646b3b7b6 messages_overlay: Force specific name for `message-info-box` selector. 2024-09-30 11:23:29 -07:00
Aman Agrawal d2561b778a scheduled_message: Use specific name for `message-info-box` selector. 2024-09-30 11:23:29 -07:00
Aman Agrawal 4a72801091 scheduled_messages: Use specific name for `items_list_selector`. 2024-09-30 11:23:29 -07:00
Aman Agrawal 3f1b78aab9 scheduled_messages: Use specific name for `items_container_selector`.
This avoids selecting an element from hidden other elements having
the same class.
2024-09-30 11:23:29 -07:00
Karl Stolley a8217aee36 lightbox: Treat $original_media_element as singular. 2024-09-30 11:12:40 -07:00
Karl Stolley cad8330988 lightbox: Make selected-media logic less brittle. 2024-09-30 11:12:40 -07:00
evykassirer cd9dc3959a reload: Handle stream messages without specified stream.
The stream id can be undefined when the compose box is open
to start a stream message, but no stream has been selected
from the dropdown yet.

Fixes this error:
https://chat.zulip.org/#narrow/stream/464-kandra-js-errors/topic/Error.3A.20Failed.20to.20preserve.20state/near/1948680

Introduced in 97ffccb45f
2024-09-29 12:21:20 -07:00
Tim Abbott c73462f124 stream_settings: Fix already-subscribed error handling.
This was not correctly migrated in 65893292b5.
2024-09-27 16:51:07 -07:00
sanchi-t 82fd3c9b32 css: Refactor theme colors for `alerts`.
This change moves the light and dark theme colors for
`alerts` to CSS variables.
2024-09-27 13:27:58 -07:00
Aman Agrawal b6c37a3474 register: Ask which review site for how found zulip. 2024-09-27 13:23:08 -07:00
Karl Stolley 112d7b60fe lightbox: Correctly center lightbox thumbnails. 2024-09-27 13:22:05 -07:00
Karl Stolley b8037a9980 lightbox: Remove any video players when navigating thumbnails. 2024-09-27 13:22:05 -07:00
Karl Stolley c36c561f07 lightbox: Only open the first returned media element. 2024-09-27 13:22:05 -07:00
Karl Stolley cc877f9c83 lightbox: Use temporary class to track selected media. 2024-09-27 13:22:05 -07:00
Karl Stolley 2e26c3bb9d lightbox: Show first media element on hotkey activation. 2024-09-27 13:22:05 -07:00
Benjamin Masters 6180725579
modals: Fix typo in introduce_zulip_view_model. 2024-09-27 17:56:44 +00:00
Aman Agrawal 790d5c44a1 stripe: Allow customer to switch license management type.
Fixes #28633

Added a button to switch license management type on billing page.

Tested that the plan switch works correctly.

Tested that when switching from manual to automatic license
management, customer is only billed for billable users for the
next billing cycle.
2024-09-26 16:13:28 -07:00
Anders Kaseorg b7e02436b8 eslint: Avoid @typescript-eslint/no-deprecated for jQuery ‘on’.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-26 13:27:26 -07:00
Anders Kaseorg 2dce73ecfa bot_data: Avoid deprecated ZodObject.deepPartial().
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-26 13:16:12 -07:00
AJ Kerrigan 697c79a6cc
docs: Advertise Inbox and Recent view navigation shortcuts.
Add to the help center and in-app shortcuts overlay, near the existing
"Go to combined feed" shortcut, documentation for the similar inbox/recent view
navigation shortcuts.
2024-09-26 13:13:35 -07:00
Sahil Batra 6ddaaa4ef9 signup: Show realm name in a tooltip on signup page.
This is needed to make sure that user can see the realm
name in case it does not fits into the UI and is shown
with ellipsis.

Fixes #31676.
2024-09-26 11:58:31 -07:00
Aman Agrawal 6e4895b05f landing-page: Update streams_and_topics_day images.
Removed the night images since they were not being used and these
new day mode images are designed to look not too bright in the
dark mode screens too.
2024-09-26 09:27:01 -07:00
Anders Kaseorg fb623f4450 eslint: Fix @typescript-eslint/no-duplicate-type-constituents.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-25 15:43:37 -07:00
Anders Kaseorg e63365a4da katex_server: Fix import/no-named-as-default.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-25 15:41:01 -07:00
Anders Kaseorg 890f9e67f4 settings_linkifiers: Fix zod import.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-25 15:40:04 -07:00