Commit Graph

5379 Commits

Author SHA1 Message Date
Sahil Batra
53cdfddf5b groups-ui: Add option to copy membership from group.
Instead of adding group as a subgroup, we now provide option
to add direct members and direct subgroups of a group to a
user group by providing an expand button in the group pill.

Fixes #32335.
2025-04-24 11:36:49 -07:00
Sahil Batra
592ee2de1c groups-ui: Fix order of members typeahead.
We previously showed "Everyone except guests" group at the
top for group members and stream subscribers typeahead. It
makes sense for stream subscribers typeahead but not for
group members typeahead, so this commit fixes that.
2025-04-24 11:36:49 -07:00
Sahil Batra
b63b484f8d typeahead_helper: Rename functions used for sorting.
d11537a8cd modified how we sort options in typeahead for stream
subscribers and group members. The function names added in that
commit were confusing since the names included "settings" when
the function is used to sort the typehead for adding and updating
stream subscribers and group members. This commit fixes the names
of these functions.

This commit also renames sort_setting_options since that function
is now used for adding and updating stream subscribers and group
members apart from being used for sorting typeahead for group
settings.
2025-04-24 11:36:49 -07:00
Sahil Batra
9ebc877bbe pill_typeahead: Refactor code for set_up_combined.
Since set_up_combined was only being called with
is_stream_subscriber_input as true, there is no
need to have this variable in opts as we use same
sorting function for all the cases.
2025-04-24 11:36:49 -07:00
Lauryn Menard
79061c08d2 demo-orgs: Disable invite user modal before owner sets email.
Until the owner of a demo organization sets an email, the submit
button on the invite user modal is now disabled.

The input div for email addresses is also disabled, which wasn't
disabled before because it's not an input element on the form.
2025-04-24 09:48:38 -07:00
Alex Vandiver
eae18738a6 signup: Add optional Altcha to realm registration. 2025-04-23 17:18:40 -07:00
Karl Stolley
ad75ab590a thumbnails: Structure adjacent images into galleries. 2025-04-23 10:53:05 -07:00
Karl Stolley
3671a6a39c decorated_channels: Rename privacy-icon class. 2025-04-22 11:26:12 -07:00
Karl Stolley
1c55004cda decorated_channels: Rename partial as 'decorated_channel'. 2025-04-22 11:26:12 -07:00
Shubham Padia
b8ba174455 users: Return true for admins for is_moderator.
This change is for consistency with how is_admin works.

API design discussion at https://chat.zulip.org/#narrow/channel/378-api-design/topic/Should.20is_moderator.20have.20admins
2025-04-22 11:24:49 -07:00
Shubham Padia
50fbaa4da6 popover_menus_data: Remove unused is_moderator from topic context. 2025-04-22 11:24:49 -07:00
Ines Falcato
8d96b7879f keyboard_UI: Allow use of e hotkey for spectators.
Previously, when in anonymous login, pressing the "view original
message" button showed the original message and allowed copying it.
However, the corresponding keyboard shortcut ('e') did not work as
expected and a login pop-up appeared instead.

Now, by fixing the UI features' permissions for anonymous users, by
adding "edit_message" as a feature they can perform, they are allowed
to use the 'e' keyboard shortcut as intended.

Fixes #33838
2025-04-21 14:36:10 -07:00
apoorvapendse
18fdbc1519 message_header: Use topic permalink.
Fixes:
https://chat.zulip.org/#narrow/channel/137-feedback/topic/star.20topics/near/2154280.
2025-04-21 12:08:37 -07:00
apoorvapendse
1285151be8 compose_validate: Show disabled save tooltip when message is long.
Fixes:
https://chat.zulip.org/#narrow/channel/101-design/topic/validation.20tooltip.20in.20message.20edit.20same.20as.20compose.3F/near/2149696.
2025-04-21 12:07:45 -07:00
Lauryn Menard
b074288bac upgrade: Remove demo_organization_scheduled_deletion_date page param.
The demo_organization_scheduled_deletion_date has never been used
on the upgrade page, and currently raises a Zod error as what is
being sent for the value of that page param is a datetime object,
and not the datetime object converted to an integer.

We really only need the boolean value that checks if the demo
organization scheduled deletion date is not None for the upgrade
page logic, which is set in the context dict for that page, but
not in the page params.
2025-04-17 10:49:02 -07:00
Lauryn Menard
7e1625d58b showroom-banners: Update desktop notifications banner text.
Updates the desktop notificaiton banner example in the devtools
showroom for the banner redesign to have the current banner text
that's used in navbar alert.
2025-04-17 10:48:33 -07:00
Tim Abbott
b76cf0c388 message_edit: Remove useless message_id XHR parameters.
The message ID is passed in the URL.

Caught by reviewing ignored_parameters_unsupported.
2025-04-16 14:05:12 -07:00
Kislay Verma
e2e0603689 message_edit: Check previous message content to prevent races.
Similar to group based setting values, we expect
the client to send the previous content alongwith
the edited content to the edit message endpoint.
We reject the request incase the previous content
doesn't match the current message content, which
could happen in case two users simultaneously edit
a message - which will be implemented in #33051.
2025-04-16 14:05:12 -07:00
Mateusz Mandera
de37ab28a8 signup: Don't run password_strength form validator in ldap signup mode.
When an ldap user is signing up via the registration form, they are
required to enter their ldap password. This is in contract to "regular"
password signup, where the user sets the password for their new account.

Checking password strength makes sense in the latter case, but not in the
ldap case - the password is already set at the ldap level after all.

In any case, the password_strength validator is not even added to the
form field with `id="ldap-password"`, so this was bugged throwing errors
such as

```
TypeError: $.validator.methods[method] is undefined. Exception occurred when checking element ldap-password, check the 'password_strength' method. at http://localhost:9991/webpack/vendors-node_modules_pnpm_jquery-validation_1_21_0_jquery_3_7_1_node_modules_jquery-validatio-b912f7.js:810
at check .pnpm/jquery-validation@1.21.0_jquery@3.7.1/node_modules/jquery-validation/dist/jquery.validate.js:803
at element .pnpm/jquery-validation@1.21.0_jquery@3.7.1/node_modules/jquery-validation/dist/jquery.validate.js:510
at onfocusout .pnpm/jquery-validation@1.21.0_jquery@3.7.1/node_modules/jquery-validation/dist/jquery.validate.js:310
at delegate .pnpm/jquery-validation@1.21.0_jquery@3.7.1/node_modules/jquery-validation/dist/jquery.validate.js:441
at dispatch .pnpm/jquery@3.7.1/node_modules/jquery/dist/jquery.js:5145
at ../node_modules/.pnpm/jquery jquery/dist/jquery.js?1d73/</add/elemData.handle@http://localhost:9991/webpack/vendors-node_modules_pnpm_error-stack-parser_2_1_4_node_modules_error-stack-parser_error-stac-967546.js:16502
at trigger .pnpm/jquery@3.7.1/node_modules/jquery/dist/jquery.js:8629
at simulate .pnpm/jquery@3.7.1/node_modules/jquery/dist/jquery.js:8698
at focusMappedHandler .pnpm/jquery@3.7.1/node_modules/jquery/dist/jquery.js:5574
```

when interacting with the form.
2025-04-15 18:28:16 -07:00
Kartikay5849
3c450074d4 banner: Prevent duplicate desktop notification banners.
Avoids multiple copies of the desktop notification banner being
added to the DOM. Appends the banner only if it doesn't already
exist.
2025-04-15 16:09:09 -07:00
Sahil Batra
4f80823191 settings: Fix opening settings for guests who cannot access all users.
Opening settings and stream settings UI was not working for guests
if they could not access all users. This was because is_person_active
did not handle inaccessible users correctly, if they were not added in
the users data, when being called in get_group_members to render
group pills.
2025-04-14 11:44:11 -07:00
Sahil Batra
3739081792 typeahead: Fix typeahead showing for disabled inputs.
When user cannot type in the input, because of contenteditable
being set to "false", typeahead should not be shown when clicking
on the input element.
2025-04-14 09:24:53 -07:00
Sahil Batra
722d501107 streams: Don't show confirmation modal if user can subscribe.
Previously, we showed confirmation modal when user was unsubscribing
themselves from the private stream from "Unsubscribe" button in
subscribers list, even when user had the permission to subscribe
to the stream again.

This commit fixes it to not show the confirmation modal if user
has permission to subscribe again. We already have same behavior
when user tries to unsubscribe from the button present at the
right of tabs.
2025-04-14 09:24:53 -07:00
Sahil Batra
d3c06234e2 streams: Fix warning shown when unsubscribing from private stream.
We no longer archive the stream when private stream becomes
vacant, so removed that part from the warning.

When a private stream becomes vacant, everyone in the organization
can lose content access to it if no one has permission to subscribe
themselves or others to the stream. So, the warning is updated to
mention this.
2025-04-14 09:24:53 -07:00
aditya.chaudhary1558@gmail.com
2e59bb0768 empty-feed: Show special banner if muted topics in channel.
If we're in the feed for a channel and it is visibly empty
because all of the messages are in topics that have been
muted by the user, we now show an empty narrow banner that
informs the user about why the feed is empty, how to view
muted topics and links to the help center article on muting
and unmuting topics.

If the channel feed is empty and there are no messages in
muted topics, then we show the default empty narrow banner.

Fixes #31601.

Co-authored-by: Lauryn Menard <lauryn@zulip.com>
2025-04-13 20:32:11 -07:00
Harsh
f2b33fc3ee compose: Add banner when topic is moved and recipient is updated.
This commit adds the INFO compose banner for new channel/topic when the
recipient is updated when topic is moved.

fixes: #33445.
2025-04-13 20:29:58 -07:00
Sayam Samal
3701c99b0a popup_banners: Update connection error banner label.
This commit updates the connection error banner label to
"Unable to connect to Zulip. Trying to reconnect soon…" when the user
manually retries the connection via the "Try now" button and when the
retry time is less than 5 seconds. And updates the countdown label of
the same banner to "Unable to connect to Zulip. Trying to reconnect in
{retry_delay_secs} seconds…".
2025-04-13 20:25:01 -07:00
Shubham Padia
349e88adc6 settings: Exclude nobody from channel and group settings typeahead.
We have filtered the group in the get_user_groups argument of
set_up_pill_typeahead. We could have done it in `set_up_combined` but
that would have made that function non-generic and specific to these two
settings. We could also have filtered it in get_all_realm_user_groups by
adding an argument on whether to exclude it or not, but that would have
been very hard to read and track. This seemed like the better of the
options we had.

Fixes https://chat.zulip.org/#narrow/channel/9-issues/topic/.22Nobody.22.20group.20in.20UI.20to.20add.20subscribers.2Fgroup.20members
2025-04-13 20:22:26 -07:00
Karl Stolley
1025fd559e left_sidebar: Correct stale #filter-topic-input refs. 2025-04-11 12:08:00 -07:00
Aman Agrawal
cd439c0232 message_overlay: Fix restore tooltips detached with message content.
To avoid restore tooltip of message from being displayed outside
the overlay, we define a boundary, outside which the tooltip
cannot exist. Popper library is smart enough to render the tooltip
correctly by respecting the provided boundary and flipping the
tooltip placement if required.
2025-04-11 10:40:35 -07:00
Kartikay5849
32e6383779 settings: Show desktop notifications warning when permissions needed.
Some checks failed
Code scanning / CodeQL (push) Has been cancelled
Zulip production suite / Ubuntu 22.04 production build (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:bookworm, true, false, Debian 12 (Python 3.11, backend + documentation), bookworm) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:jammy, false, true, Ubuntu 22.04 (Python 3.10, backend + frontend), jammy) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:noble, false, false, Ubuntu 24.04 (Python 3.12, backend), noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm, --test-custom-db, Debian 12 production install with custom db name and user, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy, , Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga, jammy) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble, , Ubuntu 24.04 production install, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-7.0, 7.0 Version Upgrade, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-8.0, 8.0 Version Upgrade, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy-6.0, 6.0 Version Upgrade, jammy) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-10.0, 10.0 Version Upgrade, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-9.0, 9.0 Version Upgrade, noble) (push) Has been cancelled
Display a warning banner in the desktop notifications settings
when browser permissions are not granted.
Hide "Send test notification" button unless permissions are granted.

Fixes: #33222.
2025-04-10 16:46:40 -07:00
Karl Stolley
72c89404f3 thumbnails: Audition darker borders on typical images. 2025-04-10 12:55:15 -07:00
Karl Stolley
356028729f thumbnails: Handle dinky thumbnail images.
Fixes: #31502
2025-04-10 12:55:15 -07:00
Karl Stolley
d22c6318db thumbnails: Add height and width attributes to images. 2025-04-10 12:55:15 -07:00
Karl Stolley
4e19e82f64 thumbnails: Reference media anchors, images, and video by class. 2025-04-10 12:55:15 -07:00
Aman Agrawal
6fe93a3ff6 inbox_ui: Remove extra effort to return message object.
There is no difference in this case when a message object is
returned vs not. So, we just return as soon as we have the
requried data.

This will useful when won't have message ids associated with topic
easily when rendering inbox style channel view.
2025-04-10 11:52:03 -07:00
Aman Agrawal
30862738d3 topic_list: Extract some params to be passed from child classes.
This will allow child classes complete control over these parameters.
2025-04-10 11:52:03 -07:00
Aman Agrawal
f5714a0c55 topic_list: Generalize use of TopicListWidget.
We introduce a different class to be used for left sidebar which
inherits TopicListWidget. More specifically, we allow the
children classes of TopicListWidget to pass their own method to
filter topics. This will later be used by inbox view when showing
channel view in center pane.
2025-04-10 11:52:03 -07:00
Aman Agrawal
88f71f28cc topic_list: Add method to check if topic list is empty. 2025-04-10 11:52:03 -07:00
Aman Agrawal
22b50e2312 hashchange: Hide other views when showing a view in the same call.
Instead of having two calls everywhere to show a view and hide other
views, we move the logic to hide the other views inside the show
function of the view.

This will help as we will add other views to the app to keep the
logic to hide other views in the `show` function of the view to show.
So, the logic calling `show` for a view
doesn't have to iterate through hiding all the other views first.
2025-04-10 11:51:58 -07:00
Aman Agrawal
5ea42823ba topic_list: Rename function to specify use for left sidebar. 2025-04-10 11:51:20 -07:00
Aman Agrawal
1b012f1eb3 filter: Add function to check if narrow has only 'channel' term.
s
2025-04-10 11:51:20 -07:00
Aman Agrawal
6842615f16 topic_list_data: Extract function to filter topics by search term. 2025-04-10 11:51:20 -07:00
Aman Agrawal
5647be8b9c topic_list: Rename function get search text for topic search. 2025-04-10 11:51:20 -07:00
Aman Agrawal
f87abce487 left_sidebar: Rename topic search element ID for clarity. 2025-04-10 11:51:20 -07:00
Maneesh Shukla
4524225991 delete-code-playground: Fix tooltip being partially hidden.
Co-authored-by: Aman Agrawal <amanagr@zulip.com>
2025-04-10 11:32:43 -07:00
Maneesh Shukla
a062d25aea personal-settings: Redesign buttons in personal settings.
- Changed Alert Words "Delete" button to a danger icon button.
- Updated Uploaded Files "Download" button to an info icon.
- Updated Uploaded Files "Delete" button to a danger icon.
- Changed Muted Users button to use `action-button-quiet-danger`.

Fixes: #34200.
2025-04-10 11:32:43 -07:00
Maneesh Shukla
031b0d3c13 organization-settings: Restyle "Resend" and "Revoke" buttons in Invitations panel.
Fixes part of #34200.
2025-04-10 11:32:43 -07:00
Maneesh Shukla
61acebf0ce organization-settings: Redesign the buttons in the Users tab of organization settings.
- Manage user button -> Neutral icon
- Deactivate user button -> Danger icon
- Reactivate user button -> Success icon

Fixes part of #34200.
2025-04-10 11:32:43 -07:00
Maneesh Shukla
9e2e2da7e1 organization-settings: Redesign edit and delete buttons in settings tables.
Fixes part of #34200.
2025-04-10 11:32:43 -07:00