Commit Graph

66823 Commits

Author SHA1 Message Date
Lauryn Menard
692e907b68 help: Add mobile instructions for deleting a message completely. 2025-09-30 11:27:12 -07:00
Sahil Batra
e3fb292fb1 settings: Fix input field overflowing in channel and group edit UI.
Name input for stream and group edit modal was too wide in narrow
width screens and overflowed the modal. This commit adds CSS to
make sure that maximum width of input field is set to fit inside
the modal respecting the modal container paddings on narrow width
screens.

Fixes #35301.
2025-09-30 11:26:25 -07:00
Sahil Batra
31f8dcba6c settings: Improve label of can_set_topics_policy_group.
This commit updates the label for can_set_topics_policy_group
to specify that the user must be a channel administrator in
order to change the topics policy for a channel.

We did that before but it was removed in d8261d4b96.
2025-09-30 11:26:01 -07:00
Evy Kassirer
5b0f135497 stream_list: Fix inactive/muted count bug.
We shouldn't include muted topics from unmuted channels in the
inactive/muted toggle count, since those unreads aren't in the
inactive/muted section. This fixes that.

Reported here: https://github.com/zulip/zulip/issues/36011#issuecomment-3327042885
2025-09-29 15:14:00 -07:00
Lauryn Menard
06daab7174 api-docs: Add realm_can_delete_any_message_group content access note.
Users in this user group must also have content access to the message
in order to permanently delete it.
2025-09-29 11:06:40 -07:00
Lauryn Menard
b7815d9e2a api-docs: Update delete-messages description for current permissions.
Prior to feature level 281, the only users who had permissions to
permanently delete any message in the organization were organization
administrators.

Currently, various realm and channel permission settings, which use
the user group model, determine if a user is able to permanently
delete a specific message.

Updates the main description of the endpoint to note these settings
and removes the note that the endpoint is limited to organization
administrators.
2025-09-29 11:06:40 -07:00
Sahil Batra
d8261d4b96 settings: Improve label for can_set_topics_policy_group setting.
This commit updates the label for can_set_topics_policy_group
setting to be more clear by mentioning that it is used to
configure who can set the per-channel "general chat" configuration.

We also add a link to "/help/require-topics" with the label.
2025-09-29 11:00:26 -07:00
Karl Stolley
c609b55950 postprocess: Access data- attributes directly.
This makes for much easier grepping of these values
across the codebase, especially for squaring server-
side processing and tests.
2025-09-26 16:53:20 -07:00
Karl Stolley
b7b409002e postprocess: Set up new loop for message embeds. 2025-09-26 16:53:20 -07:00
Karl Stolley
31c49a7258 postprocess: Process YouTube images in image loop. 2025-09-26 16:53:20 -07:00
Karl Stolley
c7a651da60 postprocess: Handle images all within a single loop. 2025-09-26 16:53:20 -07:00
Karl Stolley
2e40359dd6 postprocess: Move refactored upload processing to own loop. 2025-09-26 16:53:20 -07:00
Karl Stolley
f9b52d4df5 postprocess: Move download processing nearer to links. 2025-09-26 16:53:20 -07:00
Karl Stolley
716333c6be postprocess: Move list-processing to the top.
This is the most simple loop, so sticking it at the top
keeps it from getting lost among the more complex
processing that follows.
2025-09-26 16:53:20 -07:00
Tim Abbott
e217340b23 help: Shorten title for apps link.
This avoids unnecessary line-wrapping, and I think sets expectations
correctly for anyone reading this sidebar.
2025-09-26 12:21:35 -07:00
Shubham Padia
f426936c6c help: Add external link icon as suffix in sidebar for external links.
Fixes https://chat.zulip.org/#narrow/channel/19-documentation/topic/left.20sidebar.20icon.20for.20external.20links.3F/with/2257078

These links should also open in a new window.
2025-09-26 12:20:55 -07:00
Shubham Padia
c3fbe00eb0 help: Add default page to display on /help when help server is off.
We've copied the button and error colors from portico_signin.css. We did
not want the new HTML file to depend on portico_signin.css since they
are unrelated. In addition, having those colors diverge over time might
not be an issue.

We make the raw mode work with /help and /help/ both.

See https://chat.zulip.org/#narrow/channel/19-documentation/topic/edits.20not.20appearing.20with.20vagrant/near/2257442

Co-authored-by: Alya Abbott <alya@zulip.com>
2025-09-26 11:41:10 -07:00
Shubham Padia
3b6d8de815 help: Rename --help-center to --help-center-static-build for run-dev.
Having it name --help-center made it sound like it was the default mode.
The new name reflects that option more accurately.
2025-09-26 11:18:26 -07:00
Shubham Padia
b79b068568 help: Add --only-help-center to run-dev.
The astro dev server takes a lot of memory and is disabled by default in
`run-dev`. We add another option to only run the dev server which is the
recommended mode for development. We still keep around the
`--help-center-dev-server` mode for folks who have machines with higher
specifications.

See https://chat.zulip.org/#narrow/channel/19-documentation/topic/edits.20not.20appearing.20with.20vagrant/near/2256856
2025-09-26 11:18:26 -07:00
Shubham Padia
8ddc7bee00 help: Make include a sibling of content/docs directory.
When moving content between the include files and the docs files while
copy pasting them, there was a need to change the imports everytime
this was done. This was inconvenient to do.

We considered path aliases to solve this problem but not all editors
support path resolution via those aliases and thus we change the
directory structure instead.

We change imports for components, include files and images in this
commit.

See
https://chat.zulip.org/#narrow/channel/19-documentation/topic/confused.20about.20include.20file
for more info.
2025-09-26 11:12:21 -07:00
Shubham Padia
3b1f4a9d09 help: Move static/images/help to starlight_help/src/images.
Astro was importing these images and doing it's own processing anyways,
there was not a reason for these images to stay in the static folder.

For channels-and-topics.png, we keep the help center directory as the
source directory for two symlinks since that is where the image is
likely to stay the longest.
2025-09-26 11:12:21 -07:00
Shubham Padia
50545d04db images: De-duplicate channels-and-topics.png.
The image is being duplicated across two places. We make the help
directory the source since it is more likely that an images of channels
and topics will stay in help (given that it has more information)
compared to the emails directory.
2025-09-26 11:12:21 -07:00
Alya Abbott
0ea04f31bc compose and feed: Improve label for DMs to yourself. 2025-09-26 11:07:48 -07:00
Aman Agrawal
8b8d23cc5f realm_redirect: Add help for self hosted users to login. 2025-09-26 11:02:26 -07:00
Lauryn Menard
05b2036acd narrow-banner: Update invalid "sender" case for empty narrow banner.
Updates the empty narrow banner for an invalid user in the "Messages
sent by ..." view to better match what we show for an unknown channel.
2025-09-26 10:16:19 -07:00
Lauryn Menard
52cad38f3e narrow-title: Use filter title for invalid "sender" operand case.
Since we have a generic title for the unknown user case for the
"sender" operator, we can now use that when we set the document
title for the narrow view.
2025-09-26 10:16:19 -07:00
Lauryn Menard
d82083ca24 filter: Add title for an unknown user for the "sender" narrow case.
Previously, the message header for the "Messages sent by" view for
an invalid or unknown user was the value of the "sender" operand,
which was not a valid/known user email.

Now we show a standard title in the message header for this case:
"Messages sent by unknown user".
2025-09-26 10:16:19 -07:00
Lauryn Menard
ba33ef0054 narrow-title: Use filter title for valid sender view.
If the operand value for the "sender" operand is a known/valid
user, then we can return the value of filter.get_title here,
which correctly handles the guest user case.

Because filter.get_title already returns the translated "Reactions"
string, we can also remove the duplicate logic in compute_narrow_title
for that special view.
2025-09-26 10:16:03 -07:00
Lauryn Menard
be4af12366 narrow-state: Move pm_emails_string logic to pm_ids_string.
As the only caller of pm_emails_string is now pm_ids_string, we
can move getting and checking for the operand value of the "dm"
operator's to be in one function.

Removing pm_emails_string is helpful because it was less obvious
that it could return a value that was not a valid direct message
recipient, i.e., in the case that the user changed the URL manually
or made an error when copy/pasting the URL into the browser.
2025-09-26 09:52:51 -07:00
Lauryn Menard
328f2e217a search-suggestions: Use narrowed_by_pm_reply for empty search query.
Use narrow_state.narrowed_by_pm_reply when getting suggestions for
an empty search query to check if the current filter corresponds to
a particular direct message conversation.
2025-09-26 09:52:51 -07:00
Lauryn Menard
11dcf3bef7 search-suggestions: Use narrowed_by_topic for empty search query.
Use narrow_state.narrowed_by_topic when getting suggestions for
an empty search query to check if the current filter corresponds to
a specific channel/topic conversation.

This is functionally equivalent to what we have been doing since
these suggestions are only added when the search query is empty.
For narrows that have a term with a near operator or additional
filter terms (is:starred, has:link, etc.), the search query would
not be empty when constructing the attacher for the search box
suggestions.
2025-09-26 09:52:49 -07:00
Lauryn Menard
1706aa5c1e search-suggestions: Rename suggestions_for_current_filter.
So that it is clearer that this function is only used when the
search query is empty, we rename suggestions_for_current_filter to
suggestions_for_empty_search_query.
2025-09-26 09:26:23 -07:00
Kislay Verma
951fd388fb compose_banner: Clear convert_pasted_text_to_file_banner correctly.
This is a follow-up to #35476 where we made a change in
`compose.clear_compose_box` to clear this banner.
In this commit, we instead club the clearing logic together
with `compose_banner.clear_uploads`.
2025-09-26 09:21:11 -07:00
Sahil Batra
aa0051abc2 image_upload_widget: Remove blue outline when clicking.
"Upload profile picture" and similar text shown when hovering
over the image shows a blue outline while clicking on it
and same blue outline is shown when clicking on the delete
button ("x") as well. This commit updates the CSS to remove
that outline.
2025-09-26 09:19:45 -07:00
Alex Vandiver
3538455ca8 email_mirror: Drop missed-message emails which are autogenerated.
Emails to missed-message email addressees which are marked
"auto-replied" are clearly auto-replies, and will not contribute
usefully to the conversation.  We also ignore "auto-generated" emails
to missed-message addresses, as they must actually be auto-replies
which are misclassifying themselves, as missed-message addresses are
not meant to be targets for any auto-generated emails.

We accept auto-generated and auto-replied emails to stream incoming
email addresses, as auto-generated emails to those are clearly useful,
and auto-replied emails are unexpected enough to allow (given that
Zulip does not produce outgoing emails From: stream email addresses).
2025-09-26 09:18:13 -07:00
Aman Agrawal
f2a11c5858 inbox: Avoid extra margin from folders hidden by filters.
If all channels in a folder are muted, then this margin is present
in "Standard view", without there being any folder present.

Fixed by only applying margin if the folder has any header or rows
that are not hidden by filters.

This is an alternative fix to #35962 which was reverted in #36123.
2025-09-26 09:16:26 -07:00
Evy Kassirer
19880797db channel_folders: Fix remaining test TODOs.
Fixes #35494.
2025-09-25 17:31:21 -07:00
Karl Stolley
c21d2918da inbox: Correct margin declaration to avoid odd gap. 2025-09-25 17:27:35 -07:00
Alex Vandiver
85d50d09d4 postgresql: Default random_page_cost to 1.1.
The upstream PostgreSQL default is 4, which is more appropriate for
spinning disks.  In general, production deploys almost always use
SSDs; adjust the Zulip default value to a better value for those.
2025-09-25 13:40:02 -07:00
Evy Kassirer
cb36774b14 message_events: Use MessageEditHistoryEntry type.
Followup to https://github.com/zulip/zulip/pull/32492#discussion_r1878636631
2025-09-25 09:24:32 -07:00
Evy Kassirer
51e056f49f topic_list: Don't treat clicked topics as potentially undefined. 2025-09-25 09:24:07 -07:00
Evy Kassirer
d14ef2046b recent_view_ui: Type avatar_element as HTMLElement. 2025-09-25 09:24:07 -07:00
Evy Kassirer
68e86b0905 pygments_data: Remove undefined option for lang value.
It's clear from the removed assert that it's never undefined.
2025-09-25 09:24:07 -07:00
Aman Agrawal
63613051ac deactivated_org: Direct org members to contact org admins.
This helps clarify that normal members cannot reactivate the
org by contacting us.
2025-09-24 12:02:56 -07:00
Aman Agrawal
40f4ad2cb0 register: Add AI/LLM as option for how user found Zulip. 2025-09-24 10:24:23 -07:00
Aman Agrawal
c6bf35b392 registration: Use a loop to set extra content value. 2025-09-24 10:24:23 -07:00
Lauryn Menard
8e385661c5 compose-close: Consolidate current logic for updating buttons.
Refactors compose_closed_ui.update_buttons to cover all three
cases for these button states: direct, stream and non-specfic.

Moves the logic in update_buttons_for_non_specific_views,
update_buttons_for_private, and update_buttons_for_stream_views
to the update_buttons function.

The default case, which is used in views without a filter (i.e.,
recent conversations and inbox), is the non-specific case.
2025-09-23 12:32:40 -07:00
Lauryn Menard
725d22c4c3 compose-closed: Extract shared new conversation button helper. 2025-09-23 12:32:40 -07:00
Lauryn Menard
1c7e4a5e09 compose-closed: Fix updating buttons when not in DM narrow.
When processing a server event or an empty message fetch,
we were incorrectly updating the closed new conversation
button attribute, "data-conversation-type" to be "direct"
without checking to see if the current narrow filter was
actually a direct message view.

Adds a helper function that checks the current filter for
contains_only_private_messages and then calls
compose_closed_ui.update_buttons_for_private when true.

That's the same check that's used in
message_view.handle_post_view_change when
compose_closed_ui.update_buttons_for_private is called,
so we're consistently using the same check when updating
the closed compose box buttons for this state.
2025-09-23 12:32:40 -07:00
Lauryn Menard
c1480bec36 compose-closed: Extract helper for disable reply to dm recipient.
Extracts a helper function with the logic for disabling the reply
to conversation button for the direct message recipient case.
2025-09-23 12:32:40 -07:00