Commit Graph

1929 Commits

Author SHA1 Message Date
Shubham Padia
7bd0c37d3c stream_events: Remove remove_deactivated_user_from_all_streams.
We changed the API in 53983c9 so that the server nows sends explicit
peer_remove events before the deactivation event. This means that we
should not have to remove subscribers when receiving a user deactivation
event.

We convert the existing function to raise a blueslip error instead if
our understanding of the system is somehow wrong. That way the error
would be caught instead of slipping through the cracks.
2025-11-04 11:14:59 -08:00
Sahil Batra
649a518b19 upload-widget: Add support to crop realm logo, icon and user avatar.
This commit adds code to support cropping realm logo, icon and
user avatar using "ImageEditor" plugin from Uppy.

We do not use Dashboard plugin from Uppy, which is the default
way to allow cropping using Uppy, since we do not want to
show dashboard UI from uppy and we would need some workarounds
which are not trivial to not show the dashboard UI in the upload
workflow.

Fixes part of #24324.
2025-11-03 16:55:04 -08:00
Sahil Batra
ca46e09f41 groups-ui: Live update permissions panel on losing stream access.
This commit adds code to live update the group permissions panel
when user loses access to a stream by removing the stream and its
settings from the UI.
2025-11-02 11:42:36 -08:00
santhoshkumarCodes
ecdfb14cb7 message-view: Fix banner/bookend for private channel no content access.
Previously, when a user navigated to a private channel that they had
metadata access to but not content access, they would see a confusing
"You are not subscribed" bookend and a generic empty-feed banner. This
was misleading, as the issue is about permissions, not subscription
status.

The empty message feed placeholder displays a more accurate message
for this case. And the logic in `message_list.ts` is changed to
prevent the trailing bookend from rendering at all in this case.

Fixes #36075

Co-authored-by: Lauryn Menard <lauryn@zulip.com>
2025-11-02 11:35:53 -08:00
Vector73
5704abf8b4 settings: Convert language picker to dropdown widget.
Fixes #35861.
2025-11-01 10:51:01 -07:00
Anders Kaseorg
55293f57a8 eslint: Fix unicorn/no-immediate-mutation.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-11-01 07:24:57 -07:00
Anders Kaseorg
71ebbb30f1 eslint: Fix unicorn/no-useless-collection-argument.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-11-01 07:24:57 -07:00
Evy Kassirer
1e78447c50 message_store: Edit message content in a helper function.
In a future commit, this will be where we ensure the saved
topic links are up to date.
2025-10-30 17:46:10 -07:00
apoorvapendse
421ba8afcf paste: Prevent insertion of extraneous newlines in Firefox.
Firefox preserves the newlines when copying a visually
line-wrapped paragraph that originally contains zero
"intentional" newlines.

This fix removes those newlines from the text content before
pasting into the compose box.

This probably won't cause removall of intentional newlines,
as they are represented with <br/> tags in the `paste_html`.

Original report: https://rust-lang.zulipchat.com/#narrow/channel/122653-zulip/topic/Copy-paste.20includes.20hard.20newlines.20when.20message.20didn't/with/544174740

Discussion: https://chat.zulip.org/#narrow/channel/9-issues/topic/extraneous.20newlines.20when.20pasting.20in.20Firefox/with/2275319

Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>

Co-authored-by: Alex Vandiver <alexmv@zulip.com>
2025-10-27 16:19:22 -07:00
Aman Agrawal
aa17bc20cd message_list_view: Fix failing test.
It was throwing error when running test for
message_list_view without failing the entire test suite.
2025-10-21 08:27:39 -07:00
Sahil Batra
2abbc058ab settings: Live update role text in "Profile" panel. 2025-10-20 16:40:01 -07:00
Pratik Chanda
81ca9e1b36 message_list: Hide group DMs where everyone is muted.
This commit hides group DMs where all recipients are muted from
different views.

Fixes: zulip#34886.

Co-authored-by: Aman Agrawal <amanagr@zulip.com>
2025-10-20 15:42:15 -07:00
Evy Kassirer
38e7f11259 hotkey: Specify reactions toggle to message controls.
Sometimes this selector was catching a second
`emoji-message-control-button-container` from an emoji reaction,
which was only caught once we started using `util.the`. This
change avoids catching that irrelevant element.
2025-10-10 09:45:06 -07:00
Anders Kaseorg
800cfc4421 emoji_names: Rebuild with emoji-datasource 16.0.0.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-10-07 22:42:50 -07:00
Anders Kaseorg
9ac9dbdc1c dependencies: Upgrade JavaScript dependencies.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-10-07 22:42:50 -07:00
Anders Kaseorg
910718ccd3 eslint: Fix unicorn/no-array-sort.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-10-07 22:42:50 -07:00
Evy Kassirer
ce56be02bc hotkey: Convert module to typescript. 2025-10-06 11:01:01 -07:00
Evy Kassirer
7c90d2cee5 compose_setup: Convert module to typescript.
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 CI / ${{ matrix.name }} (zulip/ci:trixie, false, false, Debian 13 (Python 3.13, backend), trixie) (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:trixie, , Debian 13 production install, trixie) (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
Zulip production suite / ${{ matrix.name }} (zulip/ci:trixie-11.0, 11.0 Version Upgrade, trixie) (push) Has been cancelled
2025-10-03 18:21:16 -07:00
Pratik Chanda
dc61ad6071 keyboard_shortcuts: Change selector for home view hotkey in help menu.
This commit changes the selector for home view hotkey shortcut hint in
help menu. This will help in internationalization of the keyboard hints.
2025-10-01 16:54:12 -07:00
Evy Kassirer
66b90d3736 message: Create new LocalMessage to fix type of transmit.send_message. 2025-10-01 16:38:55 -07:00
Evy Kassirer
3c4fe73470 message: Differentiate between new local messages and server messages. 2025-10-01 16:38:55 -07:00
Evy Kassirer
2888459f25 peer_data: Add clarity for when we do/don't have the full subscriber set. 2025-10-01 11:10:22 -07:00
Aman Agrawal
180ef91d1a people: Remove incorrect comment.
`error` type blueslip calls are checked.
2025-10-01 11:04:44 -07:00
Evy Kassirer
06845359bd peer_data: Store subscriber counts off of the sub object. 2025-09-30 12:52:47 -07:00
Evy Kassirer
10a815cae7 stream_data: Rename add_sub to add_sub_for_tests. 2025-09-30 12:52:47 -07:00
Evy Kassirer
665bce3c13 transmit: Pass params directly instead of using opts. 2025-09-30 11:49:16 -07:00
Evy Kassirer
240177b87e events: Use more realistic avatar_url in tests. 2025-09-30 11:49:16 -07:00
Sayam Samal
0d9e503add drafts: Add placeholder text for drafts with no channel selected.
This commit handles the empty channel placeholder for drafts saved
without a channel selected. When these drafts also do not have a topic,
we display "No topic selected" in tandem with "No channel selected",
since we are unable to access the channel configuration to determine
if we should display realm_empty_topic_display_name.
2025-09-30 11:37:16 -07:00
Karl Stolley
b7b409002e postprocess: Set up new loop for message embeds. 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
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
Alya Abbott
0ea04f31bc compose and feed: Improve label for DMs to yourself. 2025-09-26 11:07:48 -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
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
Evy Kassirer
19880797db channel_folders: Fix remaining test TODOs.
Fixes #35494.
2025-09-25 17:31:21 -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
Sahil Batra
1e21f7b224 register: Rename stream_creator_or_nobody to channel_creator.
This commit renames `stream_creator_or_nobody` value for
`default_group_name` field in `server_supported_permission_settings`
object to `channel_creator`.
2025-09-23 12:12:23 -07:00
Kislay Verma
1b0ec6e923 stream_list_sort: Add tests for channel folders.
This commit re-enables one of the tests disabled in #35075 and
adds new test cases.

Fixes part of #35494.
2025-09-22 09:38:36 -07:00
Karl Stolley
a64276c58f media: Replace legacy .message_inline_image class.
This introduces two new replacement classes, depending on
whether the inner content is an image or a video.
2025-09-17 13:25:50 -07:00
Karl Stolley
a3831770af postprocess_test: Separate link, media tests. 2025-09-17 13:25:50 -07:00
Karl Stolley
d932d8909b postprocess_test: Replace contrived example with real-world one.
The removed lines appear to be fully contrived, as there is no
apparent case where the server would deliver a block of HTML
with `.message_inline_image` without also delivering an inner
<img> or <video> element.

It appears the original outer block was introduced as part of
3df0cacd9e for ensuring coverage
of the post-processing of the `title` attribute to `aria-label`,
which change has since become covered by numerous other
non-contrived examples.

The replaced (and contrived) `<a role="button">` part introduced
by 911b3b5365 is meant to test the
absence of an `href` attribute, which is the minimal new line
introduced here to maintain test coverage while also testing
a genuinely possible pattern a user could send, namely
`[missing href]()`.

See https://chat.zulip.org/#narrow/channel/43-automated-testing/topic/unusual.20.60.2Emessage_inline_image.60.20HTML/with/2261114 for further discussion.
2025-09-17 13:25:49 -07:00
Anders Kaseorg
40a022dcc3 zephyr: Remove Zephyr mirroring support.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-09-16 11:18:18 -07:00
Sahil Batra
683eca97a7 stream-settings: Replace "Not subscribed" tab with "Available".
This commit replaces "Not subscribed" tab in stream settings
with "Available" tab where only streams which the user can
subscribe to are shown.

Fixes #35919.
2025-09-16 11:16:06 -07:00
Evy Kassirer
24f678feb6 message: Remove unused sender_realm_str.
Briefly discussed here:
https://chat.zulip.org/#narrow/channel/6-frontend/topic/sender_realm_str.20and.20.20client.20in.20message.20objects/near/2254334
2025-09-16 10:55:56 -07:00
Evy Kassirer
9a5c41cb9d compose: Remove Zephyr mirroring custom logic.
Followup to https://github.com/zulip/zulip/pull/35921#discussion_r2320358287
2025-09-10 09:47:05 -07:00
Evy Kassirer
093ce93fa4 message: Make sure submessages is always defined. 2025-09-09 09:20:40 -07:00
Evy Kassirer
d2f7b1a7ac compose: Remove create_message_object.
This will help with typescript conversion by reducing partially
formed message object types.
2025-09-08 14:43:13 -07:00
Evy Kassirer
28a7507b8e echo: Add reactions to LocalMessage.
This will make it easier to type the raw message in
process_new_message. The blueslip error is left here
as a precaution, but I'm fairly confident that if
RawMessage and LocalMessage both have reactions then
that codeblock will never be called.
2025-09-08 14:33:08 -07:00
Aman Agrawal
5dbf584ac5 sidebars: Don't highlight selection by default on search input focus.
Unless user wants to move the selection or type a value in search
input, we don't highlight the current selection.
2025-09-03 16:13:38 -07:00