Commit Graph

65029 Commits

Author SHA1 Message Date
Aman Agrawal
9cabf9705a message_feed_bottom_whitespace: Rename for general use.
Renamed file name to be used in other views.
2025-06-10 11:49:05 -07:00
Aman Agrawal
331bb09cdd message_feed_bottom_whitespace: Rename variable for general use.
Rename so that the loading indicator an be used by other views
as well.
2025-06-10 11:49:05 -07:00
Aman Agrawal
bc55c831ea recent_view: Extract function to check when to render more items.
This will be used in inbox channel view for rendering topics list.
2025-06-10 11:49:05 -07:00
apoorvapendse
ed2cdb9435 message_overlay_ui: Remove restore X tooltip function.
We got rid of the only two calls for
`initialize_restore_overlay_message_tooltip`
in the previous commits.
That is why it is safe to get rid of its
definition.

Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-06-10 11:08:35 -07:00
apoorvapendse
a27e1aea96 scheduled_messages: Clarify the editing UI.
Fixes: #34380.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-06-10 11:08:35 -07:00
apoorvapendse
3cd0f87d47 draft_overlay: Clarify the editing UI for drafts.
Co-authored-by: Sayam Samal <sayam@zulip.com>
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-06-10 11:08:35 -07:00
Shubham Padia
3dc54a10d7 filter: Do not set anchor as first_unread for starred messages view.
Fixes
https://chat.zulip.org/#narrow/channel/9-issues/topic/Starred.20messages.20view.20performance/near/2184251.
Anchor for starred messages was `first_unread` and the query to find
first_unread in a user's starred messages can turn out to be expensive.
This commit ensures that we default to newest instead since first_unread
is not of important for the starred messages view.
By excluding starred messages from using `first_unread`, it will default
to newest based on the logic in message_view.ts.
2025-06-09 16:21:09 -07:00
Niloth P
6a1d231689 integrations: Use directory name to get HTTP headers from fixtures.
Previously, the integration's name was directly being used.
Due to this, the GitHub Sponsors integration which is in the same module
as the GitHub integration could not be used with the
`generate-integration-docs-screenshot` script, as it would be unable to
locate the fixtures.
2025-06-09 15:59:39 -07:00
Niloth P
f99772b131 integrations: Add missing parameter to Transifex's screenshot config. 2025-06-09 15:59:39 -07:00
Aman Agrawal
55835bffd3 message_view: Fix error on pressing scroll to latest button.
Reproducer:
* Navigate to a channel using `near` link with no recent history
  such that `all_messages_data` has no history cached for it.
  The data for this channel narrow is not added to `all_messages_data`
  to keep the history of `all_messages_data` contiguous.
* Press scroll down button, you will see an error.

Fixed by checking if the message list data is empty before narrowing
and asking server for messages if that's the case.
2025-06-09 15:52:09 -07:00
Lauryn Menard
b19cdac072 demo-orgs: Rename do_convert_demo_organization frontend function.
Renames the function called to open the web app modal to convert
a demo organization to a permanent organization to instead be
show_convert_demo_organization_modal, as "do_" functions in the
codebase typically means it's called after any checks/dialogs.
2025-06-09 15:36:04 -07:00
Saubhagya Patel
5f164582a4 settings: Add channel notifications customization in Personal settings.
This commit adds an option to change the notification settings
of a channel from default to custom in the Notifications menu
of Personal settings.

Fixes #19849.
2025-06-09 13:50:55 -07:00
Saubhagya Patel
1471e9b828 css: Add class decorated-stream-name-dropdown-widget.
This commit introduces a class
`decorated-stream-name-dropdown-widget`. The class extracts
the styles applied to channel dropdowns in commit:
9ae704510f org_settings: Correctly display long channel names,
so they can be reused at other instances.
2025-06-09 13:50:55 -07:00
Saubhagya Patel
6e38b56405 css: Set white-space: nowrap for channel dropdowns in org_settings.
This commit ensures that long channel names, including those
containing multiple words, are properly abbreviated in the channel
dropdown widgets in organization settings.

Follow up to commit:
9ae704510f org_settings: Correctly display long channel names,
which handled long single-word channel names.
2025-06-09 13:50:55 -07:00
Saubhagya Patel
45f38795e9 settings: Add push_notifications_disabled in notification checkboxes.
This commit adds a variable `push_notifications_disabled` to the
checkboxes used in the notifications table in Settings > Notifications.
The variable is used to control the mobile push notifications
disabled tooltip.
2025-06-09 13:50:55 -07:00
Alex Vandiver
b9ab93068a email_mirror_server: Swallow and log all TLSSetupExceptions.
The only other flavor we have seen so far is ConnectionResetError, but
that is just as much a client error which we should log and move on,
and not log an exception for.
2025-06-09 10:29:33 -07:00
Maneesh Shukla
c41a96a954 trash-icon: Replace remaining fa-trash icons with zulip-icon-trash and update buttons.
Fixes: #34378.
2025-06-08 17:12:27 -07:00
Evy Kassirer
d1023660da search_pill: Prevent adding duplicate search pills.
We shouldn't show duplicate suggestions in the typeahead, but
duplicate pills were still possible by typing a term twice in
the search bar and pressing enter after each one, and this
commit prevents that from putting duplicate pills in the search
bar.
2025-06-07 22:59:14 -07:00
Evy Kassirer
f0210fd6e8 search_suggestion: Prevent duplicate terms in default suggestion. 2025-06-07 22:59:14 -07:00
Lauryn Menard
c797c481b3 demo-orgs: Delete expired demo orgs in archive_messages cron job.
Adds delete_expired_demo_organizations to the archive_messages
management command, which is run as a cron job.

Adds "demo_expired" as a `RealmDeactivationReasonType` to be
used for this specific case of calling do_deactivate_realm.

The function loops through non-deactivated realms that have a
demo organization scheduled deletion datetime set that is less
than the current datetime.
2025-06-07 22:53:01 -07:00
Lauryn Menard
0fa5b158df docs: Update links help center links that redirect "/user-roles".
Follow-up to #32553.
2025-06-07 22:48:54 -07:00
theofficialvedantjoshi
cb07605e52 integrations: Prevent logging of MissingHTTPEventHeaderError.
Fixes #34623.
2025-06-06 18:06:06 -07:00
Evy Kassirer
fa03c42009 search: Show correct description string for public channels.
Previously, typing "channels: public" would show "Channels public"
in the typeahead, which was especially confusing because we'd show
"All public channels" until the term was completely typed out.
2025-06-06 18:04:48 -07:00
Anders Kaseorg
5a090c47ad requirements: Upgrade Python requirements.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-06-06 11:35:32 -07:00
Anders Kaseorg
013be33b20 requirements: Remove python-twitter.
Commit dce4a3c98e (#25816) removed
Twitter support.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-06-06 11:35:32 -07:00
Anders Kaseorg
0b776e2c15 mypy: Add types-requests-oauthlib, types-uwsgi.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-06-06 11:35:32 -07:00
Anders Kaseorg
56470bba8d install-uv: Upgrade uv from 0.7.2 to 0.7.11.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-06-06 11:35:32 -07:00
Tim Abbott
bbeede1e52 people: Optimize is_person_active.
Calling settings_data.user_can_access_all_other_users on every call to
this function could be expensive when using this function in loops
over every user in the organization.

After the previous commit, those calls are still somewhat expensive
for guest users.
2025-06-06 10:53:03 -07:00
Tim Abbott
446ba1b538 settings_data: Optimize user_can_access_all_other_users.
This fixes an important issue where this function being called in a
loop can consume as much as 1ms per iteration for users who are in a
lot of groups.
2025-06-06 10:53:03 -07:00
Tim Abbott
0ec07fe4c8 queue: Allow sharding user_activity worker.
This follows the existing patterns for the sharded mobile
notifications worker.
2025-06-06 10:33:20 -07:00
Prakhar Pratyush
9b43e5e3b3 empji_picker: Remove the usage of deprecated keypress event.
This commit removes the deprecated `keypress` event.

Now, we use the `keydown` event.

Earlier, we used `keypress` because it allowed us to distinguish
between lowercase and uppercase characters using `event.which`.

For example:
* For 'r':
  * keypress.which = 114
  * keydown.which = 82
* For 'R':
  * keypress.which = 82
  * keydown.which = 82

As shown, `keydown.which` cannot distinguish between 'r' and 'R',
which is why `keypress` was helpful.

Now, modern browsers support `event.key` on `keydown`, which directly
gives 'r' or 'R' as needed. This makes `keypress` unnecessary, and
we can safely rely on `keydown` with `event.key` to get the exact
character.

An earlier commit in this PR #34825, in which we replaced
the `event.which` with `event.key` plays a major role as a prep
commit to help removing `keypress` event in this commit.
2025-06-06 09:26:42 -07:00
Prakhar Pratyush
46b6436b19 emoji_picker: Replace deprecated e.which with e.key.
The `keydown` and `keypress` event handlers defined in
`emoji_picker.ts` were using `event.which`, which is deprecated.

This commit makes changes to use `event.key` instead.
2025-06-06 09:26:42 -07:00
apoorvapendse
080346c0e0 copy_messages: Expand selection for math expressions and blocks.
With this we introduce selection expansion when
the selection spans across multiple inline expressions
or expressions within mutliple math blocks.

This makes the selection consistent with what is pasted
while also fixing some bugs encountered in cases such as:
1. Focus present in an inline math expression and
anchor present in a different inline math expression
and vice-versa.

2. Focus present in a math block and anchor present
in a different math expression outside that math block
and vice-versa.

3. When selecting expressions within a math block, the
first expression wasn't retained in the past because
of the selection not containing <annotation>.

Fixes #33676.
Also fixes
https://chat.zulip.org/#narrow/channel/9-issues/topic/.F0.9F.93.82.20pasting.20LaTeX/near/2159869
and other related issues.

Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-06-05 17:42:07 -07:00
apoorvapendse
2e294e23c1 docs: Fix broken link for Monosnap screenshot tool.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-06-05 17:33:13 -07:00
apoorvapendse
b478415e88 docs: Fix broken BigBlueButton shared secret docs link.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-06-05 17:33:13 -07:00
apoorvapendse
b1d3dd6322 docs: Fix broken link for Debian 9 upgrade.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-06-05 17:33:13 -07:00
apoorvapendse
cdb46fd3d1 dev_docs: Fix broken GitHub OAuth app link for orgs.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-06-05 17:33:13 -07:00
apoorvapendse
9d1fd76951 docs: Fix broken link for GitHub Actions job.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-06-05 17:33:13 -07:00
Maneesh Shukla
015bd7e6c9 custom_profile_fields: Add "Alphabetize choices" button.
This commit adds a "Alphabetize choices" button for SELECT also known as
"List of options" type custom profile fields. The
options themselves can get out of order from either user text input, or
from list modifications like addition or drag.

We follow case-insensitive alphabetization such that "vim" comes before
"VS Code". This is similar to how we alphabetize elsewhere like stream
lists.

Fixes: #28607.

Co-authored-by: Tanmay Kumar <tnmdotkr@gmail.com>
2025-06-05 17:11:05 -07:00
Maneesh Shukla
bb8bda0bf7 settings_profile_fields: Refactor to use variables.
Fixes part of #28867.

Co-authored-by: Tanmay Kumar <tnmdotkr@gmail.com>
2025-06-05 17:11:05 -07:00
Aditya Kumar Kasaudhan
232c636248 list_widget: Fix placeholder for unmatched deactivated user filters.
Previously, the placeholder text displayed incorrectly after
applying filters.

This commit refactors `list_widget` to check if combinations of
filters applied, such as role and search filters. It ensures that the
correct placeholder message is displayed.

Fixes: #32971.
2025-06-05 17:09:02 -07:00
Saubhagya Patel
74ce93df3c icons: Add attribution references for follow and inherit icons. 2025-06-05 17:05:24 -07:00
Saubhagya Patel
cfadd67c75 icons: Rename zulip-icon-unmute-new to zulip-icon-unmute.
This commit removes the old `zulip-icon-unmute` icon, which is
no longer used. The `zulip-icon-unmute-new` icon is now
renamed to `zulip-icon-unmute`.
2025-06-05 17:05:24 -07:00
Saubhagya Patel
b4f2c4cafc icons: Rename zulip-icon-mute-new to zulip-icon-mute.
This commit removes the old `zulip-icon-mute` icon, which is
no longer used. The `zulip-icon-mute-new` icon is now
renamed to `zulip-icon-mute`.
2025-06-05 17:05:24 -07:00
Mohammad Reza Kianifar
df00b68529 messages: Add unread 1:1/self DMs to pm_dict if DM group exists.
In get_raw_unread_data, 1:1 or self messages are added to pm_dict.
However, if a DirectMessageGroup is the recipient, the message is
added to huddle_dict by default.

To keep API compatibility, we override this behavior to populate
pm_dict for 1:1 and self DMs when a DirectMessageGroup exists.
This ensures clients relying on pm_dict continue to work during
and after the migration.

This PR fixes part of issue #25713.
2025-06-05 17:03:49 -07:00
Mohammad Reza Kianifar
30d2d82d02 export_search: Support --dm option for 1:1 DMs using DM group.
Previously, the export_search command only supported the legacy
Personal recipient type for 1:1 direct messages. With this change,
the command first checks for a DirectMessageGroup for the two users
and uses it if present. If not, we fall back to the legacy logic. This
keeps compatibility as we migrate 1:1 DMs to use DirectMessageGroup.
2025-06-05 17:01:45 -07:00
Shubham Padia
7b925ce94a buddy_list: Set html instead of append for view all subscribers link.
Earlier, we were appending view all subscribers link using
JQuery.append, which leaves open the possibility for the component to
be appended multiple times if the function calling it gets called
multiple times.
It is better to have the link div in right_sidebar.hbs
and then insert the html when required.
2025-06-05 16:13:07 -07:00
Shubham Padia
90a1f0f7aa buddy_list: Set html instead of append for view all users link.
Fixes https://chat.zulip.org/#narrow/channel/9-issues/topic/buddy.20list.20view.20all.20users.20appears.20twice
Earlier, we were appending view all users link using JQuery.append, so
when `render_view_user_list_links` is called twice, `view all users`
appears twice. It is better to have the link div in right_sidebar.hbs
and then insert the html when required.
2025-06-05 16:13:05 -07:00
Evy Kassirer
b31d3ce5b9 search_suggestion: Canonicalize search text terms before suggesting.
Fixes bug reported here
https://chat.zulip.org/#narrow/channel/9-issues/topic/search.20typeahead.20duplicates.20.22sent.20by.20me.22/near/2183976
2025-06-05 16:10:02 -07:00
Evy Kassirer
b63b4a26c8 filter: Don't lowercase search operands.
Searching e.g. "NASA" would put "nasa" in the search bar if you
selected "search for NASA" in the typeahead. This probably looks
weird to users, so let's not lowercase search operands.
2025-06-05 16:10:02 -07:00