Commit Graph

65825 Commits

Author SHA1 Message Date
Sayam Samal
122d93d430 filter_input: Add explicit classname for filter clear button.
This commit adds an explicit "input-close-filter-button" classname to
the filter input clear button, improving the readability of the code.
2025-07-21 23:16:26 -07:00
Mohammad Reza Kianifar
d02cafce52 welcome_bot: Support auto-reply for 1:1 DMs using DM groups.
Welcome Bot should auto-reply to users in 1:1 DMs, including when
the direct message group recipient model is used. This ensures
the bot detects and responds to messages where it is a recipient,
for both PERSONAL and DIRECT_MESSAGE_GROUP recipient types.

Fixes: part of issue #25713.
2025-07-21 22:48:01 -07:00
Mohammad Reza Kianifar
9c036024bd scheduled_messages: Set read_by_sender for self-DMs using DM group.
When using direct message group as the recipient for 1:1 or self DMs,
ensure read_by_sender is set correctly when scheduling a message.
2025-07-21 22:46:38 -07:00
Alya Abbott
bde295806c help: Update unsubscribe instructions and use them on unsubcribe page. 2025-07-21 22:44:45 -07:00
Alya Abbott
94c98c5749 help: Update subscribe instructions and use them on subscribe users page. 2025-07-21 22:44:45 -07:00
Alya Abbott
ccf89b9819 help: Move insructions to subscribe/unsubscribe users to /include. 2025-07-21 22:44:45 -07:00
Aman Agrawal
17a126a926 condense: Fix long unread message collapses after initial render.
After narrowing to a long unread message, the message gets marked
as read and can be collapsed when rerender happens since the
cutoff of read message is different.

Fixed by tracking which messages were unread during initial
render and using the unread cutoff for them until user narrows
again.
2025-07-21 21:47:21 -07:00
Alya Abbott
c90f3682bc docs: Remove outdated section on sending push notifications directly.
With recent work on E2EE, instructions on sending push notifications
directly (without using the service) have become outdated. As questions
about how to do this generally come from users whose goal is
to work around the business model that supports Zulip's development,
we are dropping these instructions rather than updating them. E2EE
should eliminate other motivations for using this documentation.
2025-07-21 16:42:21 -07:00
Anders Kaseorg
a29ed94e5b web: Switch to Zod mini API.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
cb28bff831 web: Avoid Zod .exclude().
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
1d419f864d web: Avoid Zod z.number().int().
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
d5996dd356 web: Avoid Zod .rest().
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
32e1127489 web: Avoid Zod .loose().
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
9266425317 web: Avoid Zod .extend().
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
371c798584 web: Avoid Zod .and().
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
43e4dbd51b state_data: Simplify state_data splitting.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
9515d77b1e web: Use Zod z.keyof() functionally.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
6dafa9f1c7 web: Avoid Zod .or().
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
7c875baf45 web: Use Zod z._default() functionally.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
fec8bc4a61 web: Use Zod z.nullish() functionally.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
2905ce97b6 web: Use Zod z.nullable() functionally.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
21db47989d web: Use Zod z.optional() functionally.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
c431785d3f web: Upgrade to Zod 4.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
73bf77b972 web: Avoid deprecated Zod .merge().
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Anders Kaseorg
1f1839f19b web: Replace one-argument z.record() usage.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-21 16:40:17 -07:00
Sayam Samal
b5aa895042 topic_list: Fix bug related to br element in empty contenteditable div.
When the contenteditable div in the topic list filter is empty, the
browser adds a <br> element to it, which interferes with the ":empty"
selector in the CSS — responsible for showing the placeholder and hiding
the clear button in the input field. Hence, we detect this case of an
empty contenteditable div and clear the content of the div to ensure
that the CSS styles are applied correctly.
2025-07-21 16:36:09 -07:00
Mateusz Mandera
4bd6fd6307 ldap: Use savepoint=True to avoid breaking ldap sync transaction.
Due to the atomic(savepoint=False) here, an LDAP sync exception while
syncing a single user breaks the whole sync_ldap_user_data transaction,
preventing it from successfully syncing other users.

Fixes a regression introduced in
1eecbad381

Closes #35291.
2025-07-21 13:10:04 -07:00
Shubham Padia
21558bd784 help-beta: Decrease line height to make text easier to read. 2025-07-21 12:56:52 -07:00
Shubham Padia
6d93465f3b help-beta: Remove header from Zulip note.
We don't want to have a title of note and the ⓘ  icon in the note aside.
The only way to do this is to have our custom component called
ZulipNote.
2025-07-21 12:56:52 -07:00
Shubham Padia
8f51b93223 help-beta: Convert file includes that don't occupy their own lines.
The regex we were using for file includes was searching for the syntax
at the start of a line but the file includes can be followed by a `- `
as part of a list item, due to which 15 occurences of includes were not
being converted. This commit fixes that.
2025-07-21 12:56:52 -07:00
Aman Agrawal
896fc5e8b6 billing: Fix loading spinner not aligned on upgrade page. 2025-07-21 11:09:19 -07:00
Mateusz Mandera
71f1c5677a import: Add TODO about improving how initial DMs are generated.
For an organization with a very large amount of users, the current
approach of generating all these DMs at import time can be slow.
2025-07-21 11:08:25 -07:00
Mateusz Mandera
2a6c3a7ab8 import: Send channel Welcome Bot messages to imported organizations.
Closes #35280.

When importing from other apps, we want to generate initial channel
messages. We don't have the usual Zulip-style range of channels, so we
just settle on sending all these messages to a single channel, chosen
following the same criteria as already implemented in #35339.
2025-07-21 11:08:25 -07:00
Mateusz Mandera
8378401205 onboarding: Be consistent about channel name realm attr access.
It's messy to sometimes do `realm.ZULIP_..._CHANNEL_NAME` and sometimes
`Realm.ZULIP_..._CHANNEL_NAME`. Let's be consistent and access those as
a class attr `Realm.ZULIP_..._CHANNEL_NAME`.
2025-07-21 11:08:25 -07:00
Lauryn Menard
9b37c803af help: Update Chrome and Firefox troubleshoot desktop notifications. 2025-07-21 10:59:34 -07:00
Mohammad Reza Kianifar
2aad468807 analytics: Support DM groups in count message type query.
To maintain API compatibility during and after the migration to direct
message groups for 1:1 and self messages, update the analytics count
query to treat DM groups of size 2 or less as private messages.
2025-07-21 10:39:40 -07:00
Maneesh Shukla
021d6cb169 filter-topic: Fix Escape keyboard handling in "Filter topics" input.
Previously, pressing Esc while the "Filter topics" input was empty would
de-focus the input. Pressing Esc again would trigger the
"BACK TO CHANNEL" action, hiding the zoomed topic. However, this
behavior was broken as the input was not triggering any blur event,
making Esc a noop.

This commit restores the expected behavior by ensuring the blur event is
properly triggered, allowing Esc to function as intended.
2025-07-21 10:36:40 -07:00
Mateusz Mandera
aef9f1d331 ldap: Slightly tweak wording in unique_account_id doc.
The original sentence is a bit unclear it's talking about mapping to the
same user account *across time* - rather than a situation where a value
might map to multiple accounts at the same time (which should be
impossible for DNs).
2025-07-21 10:35:49 -07:00
Aman Agrawal
50d9464184 popover_menus: Fix channel popover displayed out of visible area.
Fixes #35150

Fixed by adding more fallback options.

Reproduced by clicking on left sidebar or inbox channel popover
triggers at the bottom right corner.
2025-07-21 10:31:26 -07:00
Lauryn Menard
210ac8f328 help: Update section name for org-level user group permission settings. 2025-07-21 10:31:00 -07:00
Mateusz Mandera
df7bb3cdd4 slack: Handle float "ts" in attachment info.
It's rare, but sometimes we see floats in this field.
2025-07-21 09:24:03 -07:00
Lauryn Menard
b60fc736c7 help: Use tooltip text for plus and checkmark icon descriptions. 2025-07-21 09:22:50 -07:00
Lauryn Menard
e0929ffcdc help: Update button labels that are not lower case in documentation. 2025-07-21 09:22:20 -07:00
Tim Abbott
6036dc9812 subscribers: Use _html in content inserted as HTML.
This makes it easier for maintainers to verify that code using `{{{`
is already rendered HTML, intended for insertion into the DOM.
2025-07-18 18:24:57 -07:00
apoorvapendse
0908f0ac30 settings: Include ignored deactivated users in result banner.
This introduces the ignored deactivated user messages
in the channel and user group subscription banners.
Related:
https://chat.zulip.org/#narrow/channel/101-design/topic/New.20channel.2Fgroup.20UX.20changes/near/2215785

Fixes #34347.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-07-18 18:07:38 -07:00
apoorvapendse
3c26086c4b settings: Disable picking users/groups while request in process.
Related:
https://github.com/zulip/zulip/pull/34912/#pullrequestreview-2979808971
(Point 3)
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-07-18 18:07:38 -07:00
apoorvapendse
19b4514106 add-users-button: Avoid tooltip when below check icon.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-07-18 18:07:38 -07:00
apoorvapendse
aa56623deb user_groups: Improve clarity of subscription result message.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-07-18 18:07:37 -07:00
Apoorva Pendse
eb6676f9b5 settings: Show a tick inside of add button on click.
We want the input field to retain
the same width even when
Add button shrinks, when we
show a check icon.

This solution involves layering
of the check and `Add` button
and toggling visibility.

Karl's coment: https://chat.zulip.org/#narrow/channel/6-frontend/topic/.2334347.20rework.20subscribe.20users.20confirmations/near/2206344.

Related: https://github.com/zulip/zulip/pull/34912#issuecomment-3010269391.

Reference:
https://chat.zulip.org/#narrow/channel/6-frontend/topic/.2334347.20rework.20subscribe.20users.20confirmations/with/2193352.
Co-authored-by: Rajeev Tapadia <108951750+rajeevtapadia@users.noreply.github.com>
Co-authored-by: Maneesh Shukla <shuklamaneesh24@gmail.com>
Co-authored-by: Karl Stolley <karl@zulip.com>
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-07-18 18:04:57 -07:00
Apoorva Pendse
f75fbdda8b channel_settings: Improve clarity of subscription result message.
The result message shown when adding members to a stream
previously listed the name of every member being added,
which could be noisy for large groups.

This commit updates stream_subscription_request_result.hbs to
conditionally display clearer, more concise messages based
on the number of subscribed and already subscribed users.

This improves readability and user experience when handling
large subscription actions.

Fixes part of #34347

Co-authored-by: Rajeev Tapadia <108951750+rajeevtapadia@users.noreply.github.com>
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-07-18 18:04:56 -07:00