Commit Graph

1837 Commits

Author SHA1 Message Date
Kislay Verma
f0a88d51cc message_reminders: Add support for notes.
This commit adds the ability for users to include notes
with their message reminders.

Fixes #35070.

Co-Authored-By: Aman Agrawal <amanagr@zulip.com>
2025-08-07 17:13:12 -07:00
Karl Stolley
05b8fea10f audio_player: Postprocess audio for added structure, classes. 2025-08-06 10:45:31 -07:00
amcdowell226
124a32e819 compose: Save messages as drafts when window loses focus.
Add a check for window blur and save any in-progress
messages as drafts. This will help prevent unnecessary
message loss for the user by creating drafts for them more
whenever they switch away from their Zulip tab.

Tested on my local Ubuntu development with a demo
organization and some of the premade profiles.

Fixes #35262.
2025-08-05 15:28:13 -07:00
Vector73
6c94266bf9 stream_data: Rename is_stream_archived function.
Renames `is_stream_archived` function to `is_stream_archived_by_id`.
2025-08-05 13:41:08 -07:00
Aman Agrawal
8207eaab55 left_sidebar: Refactor to support user's navigation view preference.
Co-authored-by: Aditya Chaudhary <aditya.chaudhary1558@gmail.com>
2025-08-04 18:33:36 -07:00
Sahil Batra
524442bf44 streams-ui: Add UI to update and archive channel folders.
This commit adds edit and delete buttons in the dropdown
list for folder.

Fixes #35498.
2025-08-04 13:22:11 -07:00
Sahil Batra
e70d8c7a80 streams-ui: Reset folder dropdown if selected folder is archived.
This commit adds live-update code to reset the dropdown when user
is changing the folder for a channel or setting the folder for a
new channel and the selected folder is archived.
2025-08-04 13:22:11 -07:00
Sahil Batra
e7cb472188 dropdown-widget: Pass aria-label for icon buttons in options.
This commit updates code to pass aria-label for icon buttons
in dropdown widget options so that they can be used in
dropdown_list.hbs template instead of directly defining them
in the template file.

We currently show buttons in saved snippets dropdown only
so defining the labels in template file worked correctly
but it is good to pass them as variables so that it is
simpler to add buttons for other dropdowns when required.
2025-08-04 13:22:11 -07:00
Lauryn Menard
7a9b78f1f5 settings: Add user setting to ignore channel folders in left sidebar.
Fixes #35573.
2025-08-01 09:18:19 -07:00
Maneesh Shukla
a93a015b21 banners: Redesign organization upgrade banners.
This commit redesigns the upgrade and sponsorship banners by adding
AVAILABLE_ON_STANDARD, UPGRADE_ACCESS_BANNER, and
UPGRADE_OR_SPONSORSHIP_BANNER.

Fixes part of #34252.
2025-08-01 09:08:30 -07:00
Anders Kaseorg
985498a4ff tests: Remove unused mocks.
These became unused in #35075.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-30 17:20:56 -07:00
Evy Kassirer
033ef953db left_sidebar: Fully rerender stream list when count display policy changes.
Now that there are many counts to update, we may as well just rerender
the whole stream list.
2025-07-29 17:37:29 -07:00
Sahil Batra
3483c1dbcb server_events_dispatch: Handle channel_folder/update event. 2025-07-28 12:52:40 -07:00
Evy Kassirer
18463b45a2 left_sidebar: Skip invisible rows in keyboard navigation.
Collapsed sections and inactive channel lists are not visible and so
should be ignored in keyboard naviation.
2025-07-28 10:28:01 -07:00
Evy Kassirer
f984b44ab9 left_sidebar: Remove inactive section, put inactive channels in regular section. 2025-07-28 10:28:01 -07:00
Evy Kassirer
e63ee026fe left_sidebar: Hide inactive channels in channel folders. 2025-07-28 10:28:01 -07:00
Evy Kassirer
e6fecfc8eb left_sidebar: Show channel folders in left sidebar.
Fixes part of #31972.
2025-07-28 10:28:01 -07:00
Evy Kassirer
2a8012b312 left_sidebar: Show faded muted unread for header if no regular unreads. 2025-07-28 10:28:01 -07:00
Evy Kassirer
bc6b0cccf4 left_sidebar: Add unread markers to channel section headers. 2025-07-28 10:28:01 -07:00
Evy Kassirer
739debf7b4 left_sidebar: Add plus icon to channel section headers. 2025-07-28 10:28:01 -07:00
Evy Kassirer
add97effbb left_sidebar: Show highlighted channel/topic even when folder is collapsed. 2025-07-28 10:28:01 -07:00
Evy Kassirer
9478525f15 left_sidebar: Remove #streams_header and related code.
This component no longer exists with the new design.

Everything removed here that's still relevant (unread counts, special
logic for spectator view) is added back, at the section/channel folder
layer, over the next several commits.
2025-07-28 10:28:01 -07:00
Evy Kassirer
27092d5543 left_sidebar: Change channel sections to togglable sections. 2025-07-28 10:28:01 -07:00
Evy Kassirer
dc013b6a10 left_sidebar: Show the search bar all the time.
This is preparation for adding channel folders to the sidebar
and removing the CHANNELS header, where we'll want to have an
always open search bar.
2025-07-28 10:28:01 -07:00
Vector73
6f8cb2b787 message_delete: Refactor message delete functions in a new file. 2025-07-24 11:53:34 -07:00
Vector73
6aac806f76 message_delete: Remove explicit is_spectator condition.
Removes explicit `is_spectator` condition when checking if
message can deleted as it is checked by
`user_has_permission_for_group_setting` function.
2025-07-23 11:52:48 -07:00
Anders Kaseorg
adf10dcab9 eslint: Fix unicorn/no-array-reverse.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-22 14:19:56 -07:00
Evy Kassirer
3bb08183f7 stream_list: Remove unused references to stream-filters-label. 2025-07-22 12:15:54 -07:00
Evy Kassirer
c942900b69 stream_list: Hide channels on zoom-in using .hide instead of hide().
This gives us more control, for example `show()` was adding
`display: inline-block;` to channels after unhiding them
which was overriding other code (added for channel folders
in future commits) that was trying to hide the channels.
2025-07-22 12:15:21 -07:00
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
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
Tim Abbott
8d5abc34ac channel_folders: Fix stale code in a node test. 2025-07-18 16:49:36 -07:00
Aman Agrawal
47f42ed149 inbox: Redesign to show channel folders. 2025-07-18 16:41:26 -07:00
Tim Abbott
0f19fda610 filter: Mark messages as read in -is:dm view.
We avoid doing the more complex composability here, since that's
potentially risky.

Fixes #25113.
2025-07-18 16:35:30 -07:00
Pratik Chanda
e04e281413 search: Remove background suggestion highlight for text search.
This commit removes the background suggestion highlight in the
search suggestion for text search suggestion.
2025-07-17 15:57:53 -07:00
Vector73
a02614204a settings: Add can_set_delete_message_policy_group setting.
Adds new organization setting `can_set_delete_message_policy_group`
for defining who can set per-channel message delete permissions.

Fixes #34214.
2025-07-17 15:44:53 -07:00
Vector73
97a43fa6b6 stream_settings: Add can_delete_own_message_group setting.
Adds per-channel `can_delete_own_message_group` setting for
defining who can delete their own message in the channel.
2025-07-17 15:44:52 -07:00
Vector73
c4e641365b stream_settings: Add can_delete_any_message_group setting.
Adds per-channel can_delete_any_message_group setting for
defining who can delete any message in the channel.
2025-07-17 15:44:42 -07:00
Vector73
be1876c01c message_edit: Add is_spectator check for deletability of message. 2025-07-17 15:36:15 -07:00
Evy Kassirer
55634c8fcc peer_data: Use sub.subscriber_count for get_subscriber_count. 2025-07-16 13:11:56 -07:00
Tim Abbott
45941ba4d1 stream_list: Enter should use web_channel_default_view.
This previously misleadingly named on_stream_click masked the fact
that this was not using the actual click handler.
2025-07-16 12:35:14 -07:00
Tim Abbott
85835fae9b stream_list: Rename confusing on_stream_click. 2025-07-16 12:35:14 -07:00
Vector73
f46da0eafb typeahead: Skip topic suggestions for empty-topic-only channels.
When inserting a channel link in the compose box, the topic typeahead
is now not shown for channels that allow only empty topics. This
ensures a direct link to the channel is inserted.
2025-07-16 09:21:31 -07:00
Evy Kassirer
5a23287cf5 peer_data: Stop returning unused boolean from remove_subscriber. 2025-07-15 17:38:02 -07:00
opmkumar
b5fc39044e left_sidebar: Fix unread counts showing for muted channels.
Previously, unmuted unread counts for muted channels were still shown
in the left sidebar even when the "Show unread counts for" setting was
set to "No channels".

This commit ensures that unread counts are correctly hidden for muted
channels based on user settings.
2025-07-15 11:38:13 -07:00
opmkumar
722a2cce9d filter: Update title for spectators when using channels:public filter. 2025-07-15 10:48:39 -07:00
Vector73
741b38ecfa sidebar: Show "New message" tooltip for empty topic only channel.
Show "New message" tooltip for empty topic only channel instead
of "New topic" in left channel sidebar row.
2025-07-11 16:00:11 -07:00
Vector73
71342169ff stream_settings: Update organization default dropdown labels.
Updates labels for organization default options in "topics policy"
and "message retention policy" channel settings.

Fixes #35212.
2025-07-11 12:31:03 -07:00
whilstsomebody
bbc842484f modal: Add options for marking messages as read.
We have updated our read messages confirmation modal
to now offer three options for marking messages as read:

- Muted topic messages
- Messages from topics I don't follow
- All unread messages

Additionally, the modal now displays the count of unread
messages for the selected option.

Fixes: #30025.
2025-07-10 17:57:25 -07:00
Maneesh Shukla
0eea85446b tooltips: Group tooltips for a smooth transition.
This commit introduces the use of createSingleton from the Tippy.js
library to group the tooltips of compose box formatting buttons. The
main benefit is that the hover delay only applies when you move the
cursor into the group for the first time — after that, tooltips show up
instantly as you move between buttons. It makes the whole experience
feel a lot smoother.

We store the singleton instance in a variable to avoid creating multiple
instances unnecessarily. Before initializing a new singleton, we destroy
the previous one to prevent memory leaks and ensure correct behavior.

Previously, each formatting button had its own independent tooltip with
separate delays, which made the experience feel sluggish and disjointed
when hovering across buttons.

Now, by sharing a delay timer across the grouped tooltips, the
transition feels more natural.

Fixes: #24825.

Co-authored-by: Sayam Samal <sayam@zulip.com>
2025-07-10 17:20:41 -07:00