Commit Graph

6077 Commits

Author SHA1 Message Date
Pratik Chanda f3432b731f composebox_typeahead: Replace parentheses around pronouns with comma.
Currently, we show pronouns inside parentheses just after name in
@-mention typeaheads.

This commit changes it by removing parentheses and adding comma if
more info is present after pronouns. The pronouns also have the same
styles as that of the user emails.

Fixes part of zulip#31245.
2024-09-20 15:16:21 -07:00
Anders Kaseorg 203315958b test-js-with-node: Keep running after some tests fail.
This lets us collect all failures rather than the first failure in
each process.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-20 15:13:26 -07:00
evykassirer 52440c1cff unread_ops: Convert stream ids to integers before sending request to server.
This bug was introduced in #31299, which replaced the channel name
with a string id. It's still valid to send the channel id to the
server, but it shouldn't be a string, it should be a number.
(See https://zulip.com/api/construct-narrow#channel-and-user-ids)

In the future, we hope to update NarrowTerm to allow for integer
operands for channel terms.
2024-09-20 14:55:50 -07:00
Anders Kaseorg 57c39fc257 stream_data: Simplify ApiGenericStreamSubscription type.
The removed alternative is a subtype of NeverSubscribedStream and thus
already included.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-20 14:46:32 -07:00
Lauryn Menard 137f4fccde billing: Highlight manual license management errors for admins.
In the billing portal UI for manual license management, limit
decreasing the number of licenses for the next billing period to
be less than the currently used licenses. If the customer is exempt
from license number checks, then this limit is not applied.

Also, visually highlight manual license management errors so that
the billing admin is aware of potential issues.

As of these changes, current licenses can be under the seat count
when a guest user is changed to a non-guest user. And next billing
period licenses can be under the seat cout when a user joins with a
currently available, purchased license after a billing admin has
decreased the number of licenses set for the next billing period.
2024-09-20 12:02:39 -07:00
Lauryn Menard 900a7fa3ac billing: Remove settings tab from billing urls.
In commit 89003dcb25, we removed the tabs from the billing page.
2024-09-20 12:02:39 -07:00
Aman Agrawal ea4e48afa7 filter: Add function to check if we can show the next unread button.
These function will be used when we add `Next unread conversation`
button below message list.
2024-09-20 11:54:18 -07:00
Aman Agrawal 0fb63eeddf filter: Rename local variable.
`term_types` is consistently used to store return value of
sorted_term_types in the file.
2024-09-20 11:54:18 -07:00
Aman Agrawal 56d4bad92b filter: Fix filter variable not updated as per new terms. 2024-09-20 11:54:18 -07:00
Karl Stolley 3d875bd140 integration_events: Restore checkbox in events modal. 2024-09-20 11:53:01 -07:00
Aman Agrawal a35c8a08de message_edit: Attach keydown to $form instead of textarea.
This allows any event handlers that are attached to textarea
like typeahead to handle the keypress and stop propagation if
they successfully handle it.

This fixes a bug where message edit form gets saved on enter keypress
instead of selecting the active item in the message edit typeahead.

Introduced in 0696e234bd.
2024-09-20 09:50:38 -07:00
Inge ffbf2aaaff right-sidebar: Others collapsed by default
"Others" will on default be collapsed. If it is expanded it will be preserved when switching view.

Fixes #31628
2024-09-20 09:09:03 -07:00
Sayam Samal 19c29af4bb icons: Cleanup redundant `.fa-group` related styling.
This also fixes the opacity of the `.zulip-icon-triple-users` icon in
the recent view.
2024-09-20 09:07:05 -07:00
Sayam Samal 030f93595e icons: Replace previous bot icon with new single antenna bot icon.
Co-authored-by: Alex Vandiver <alexmv@zulip.com>
2024-09-20 09:07:05 -07:00
evykassirer 3e2efc736c stream_data: Add test cases for getting stream id from slug. 2024-09-19 19:52:18 -07:00
evykassirer 50b43421f1 search: Hide outline unless focus-visible.
Followup to https://github.com/zulip/zulip/pull/31647#discussion_r1767352535
2024-09-19 19:51:43 -07:00
Karl Stolley d73044ee57 compose: Decouple compose buttons from button classes.
In the 2024 redesigned button configurations, the compose buttons
become outliers. This retains their previous style inherited from
.button, allowing that base component class to move forward.
2024-09-19 16:16:11 -07:00
evykassirer 5ddcbb8516 buddy_list: Show offline subscribed users for small channels in big orgs.
Previously, for big orgs, we hid all offline users in the buddy list to cut down
its size. But this can be weird for small channels where you might want to see
who's in the channel. This commit makes a tweak to show offline users in big
orgs for channels of size <= 50.
2024-09-19 15:43:28 -07:00
Tim Abbott 9dd8de64a9 message_list: Add should_trigger_message_selected_event to type. 2024-09-19 15:43:28 -07:00
evykassirer deb5d90941 message_list: Convert module to typescript. 2024-09-19 15:31:16 -07:00
evykassirer 620db3057b message_list: Fix bug accessing filter incorrectly.
I checked this with Aman who wrote this originally, and he said
this is what he meant to write.
2024-09-19 15:31:16 -07:00
evykassirer c9f49cefdd message_list: Remove unused preserve_rendered_state attribute.
Aman said  we should be running this even if it wasn’t running before.
https://github.com/zulip/zulip/pull/31591#pullrequestreview-2300886181
2024-09-19 15:31:16 -07:00
Aman Agrawal fd441fd3d3 hashchange: Extract function to get home view hash. 2024-09-19 13:50:47 -07:00
Aman Agrawal 02f84bda34 message_list: Avoid recursive calls to message_selected event.
Note that even though we no longer trigger message selection
events from within the rerender calls with their different `opts`,
it doesn't effect the scroll position and selected id since
the events are triggered synchronously and the final message
selection event call has the opts of the initial caller.
2024-09-19 13:20:49 -07:00
Alex Vandiver 94dad72b75 upload: Use @uppy/tus to upload files through tusd.
Replace the XHRUpload plugin for Uppy with the Tus plugin, to make use
of the new tusd endpoint.  This allows for resumable files, as well as
files which are larger than comfortably fit in memory (the source of
the old 25MB limit).

MAX_FILE_UPLOAD_SIZE is still applied, but can safely be raised above
25MB.

Fixes: #9391.

Co-authored-by: Brijmohan Siyag <brijsiyag@gmail.com>
2024-09-19 11:37:29 -07:00
evykassirer 56adeb335f search: Fix cutoff focus outline. 2024-09-19 10:50:21 -07:00
Sahil Batra 1f16c0fdb7 popovers: Increase contrast of deactivated information text.
This commit increases the contrast for "This user has been deactivated"
text in user popover and "This group has been deactivated" text in
group popover in both light and dark mode by making the opacity 1 as
this is important information and should be clearly visible.

The text color and opacity matches with the role text shown in user
popover.
2024-09-19 10:50:02 -07:00
Sayam Samal 4ed27a9a5f tooltips: Fix hotkey hints wrapping when next to longer tooltip labels.
Earlier, mostly in non-English languages, the tooltip labels would
force the tooltip hotkey hints to wrap. This commit adds the
`white-space: nowrap` property to ensure that the hotkey hint texts
are forced to be in a single line.
2024-09-19 10:49:15 -07:00
evykassirer 86564381cf message_view_header: Rename current_stream to more accurate current_sub. 2024-09-19 10:06:57 -07:00
Sahil Batra 63a7c9061b settings: Use new pills UI for can_manage_group setting.
This UI enables the user to set can_manage_group setting to a
combination of users and groups, replacing the old dropdown UI
which just allowed setting user to a single system group.

Fixes part of #28808.
2024-09-19 09:08:33 -07:00
Sahil Batra 8068b6e55e group_setting_pill: Add code for showing typeahead.
This commit adds code to show typeahead for group setting
pill container. We add a separate function as we only
want to show groups and users in the typeahead and the
options are also sorted in a different order compared
to other typeaheads.
2024-09-19 09:08:33 -07:00
Sahil Batra 053686669a composebox_typeahead: Use query_matches_group_name to match group.
Though we can use query_matches_name for groups as we do not allow
system groups in the composebox typeahead and the other groups have
same display_name and name values, but still would be better for
consistency.

And with this change, query_matches_name function is only used for
streams, so updated that accordingly.
2024-09-19 09:08:33 -07:00
Sahil Batra def78ddf09 user_groups: Do not show "role:" prefix for system groups.
Instead of showing the actual names like "role:everyone",
"role:moderators", etc. for system groups, we show
"Everyone", "Moderators", etc. for system user group in
pills, typeaheads and popovers.

Though system groups are not shown in typeahead as of
this commit, we update the typeahead code as well to
not conside "role:" prefix while matching with the
query as we would soon show system groups in typeahead
when we would add new UI for group-based settings.

Previously, only "role:everyone" group was shown as
"Everyone" in popover and pills but for other system
groups their original names for shown and this commit
changes that behavior to be same for all system groups.

The original display_name field for
settings_config.system_user_groups_list objects, which
was used for dropdown widgets, is also renamed so that
we can use display_name field for the names to be used
in other places.
2024-09-19 09:08:33 -07:00
Sahil Batra 2fff124ec9 settings: Add new module to handle pills for group settings.
This commit creates a new module similar to add_subscribers_pill
for handling the pill widget to be used for group settings.
2024-09-19 09:08:33 -07:00
Anders Kaseorg 2c8ad219b1 styles: Fix invalid CSS generated due to @extend misusage.
@extend can only be used in an element selector, not directly within
@media.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-18 15:33:28 -07:00
Anders Kaseorg dc6ba1c9e2 localstorage: Remove unused expiry feature.
This was introduced by commit 8b22b94ab1
with no actual cleanup mechanism, and has never been used.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-18 15:32:07 -07:00
Anders Kaseorg 97ffccb45f reload: Convert module to TypeScript.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-18 15:31:41 -07:00
Anders Kaseorg 0be5cc232c reload: Remove obsolete location.reload(true) usage.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-18 15:31:41 -07:00
Anders Kaseorg 16d37eb80a tests: Call reload.is_stale_refresh_token correctly.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-18 15:31:41 -07:00
Karl Stolley c3b13654a7 left_sidebar: Ensure brackets are not shown while zoomed in. 2024-09-18 15:29:20 -07:00
Sahil Batra 5f3a8334be user_groups: Do not allow deleting user groups. 2024-09-18 13:41:13 -07:00
Sahil Batra 6a739e263f user_groups: Allow deactivating groups from webapp. 2024-09-18 13:41:13 -07:00
Sahil Batra c53563d0e7 user_groups: Handle deactivated groups in webapp. 2024-09-18 13:41:13 -07:00
Anders Kaseorg 782fa2a803 localstorage: Fix removeDataRegexWithCondition to check parsed data.
Commit bca41fd29f (#23028) introduced
this for reload.is_stale_refresh_token, which had always returned true
because it was operating on the raw JSON string rather than the parsed
data.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-18 13:16:25 -07:00
evykassirer dba1af84e0 filter: Use stream id instead of stream name. 2024-09-18 13:08:14 -07:00
evykassirer 2be181c367 stream_data: Check for null more explicitly.
Otherwise 0 is treated specially, different from other numbers.
2024-09-18 13:08:14 -07:00
evykassirer 2ad1dc7014 stream_data: Make slug regex a bit more readable.
This clarifies that the second group is purely for use internal
to the regexp (it's there for the ? to act on) and won't be saved
as a substring for the surrounding code to look at (like match[2]).
In a hot path that could be a performance savings; here it just
makes things a bit more explicit for the reader.
2024-09-18 13:08:14 -07:00
Sahil Batra 7a6135371e settings: Handle guests separately for group-based settings.
This commit adds code to handle guests separately for group
based settings, where guest will only have permission if
that particular setting can be set to "role:everyone" group
even if the guest user is part of the group which is used
for that setting. This is to make sure that guests do not
get permissions for actions that we generally do not want
guests to have.

Currently the guests do not have permission for most of them
except for "Who can delete any message", where guest could
delete a message if the setting was set to a user defined
group with guest being its member. But this commit still
update the code to use the new function for all the settings
as we want to have a consistent pattern of how to check whether
a user has permission for group-based settings.
2024-09-18 11:51:11 -07:00
sujal shah fcbb1cd558 todo_widget: Add `type`` as Optional in `new_task_inbound_data_schema`.
This commit corrects the `type` parameter in
`new_task_inbound_data_schema`, which was previously optional
but not added as such.
2024-09-18 10:06:00 -07:00
evykassirer 13e3ced486 message edit: Fix bug preventing messages from being edited.
More context in this thread on CZO:
https://chat.zulip.org/#narrow/stream/9-issues/topic/Blueslip.20error.20on.20editing.20a.20message/near/1943476
2024-09-17 15:50:33 -07:00
Karl Stolley 708d07a885 lightbox: Address edge case where media may be unavailable. 2024-09-17 11:55:18 -07:00
Karl Stolley ead6f29200 lightbox: Restore centered media list. 2024-09-17 11:55:18 -07:00
Aman Agrawal 5e084a2128 message_view: Fix load_local_messages called without superset_data.
This was missed in the migration that happend in #31326.

Fixes error when pressing `Home` button in message list.
2024-09-17 09:14:36 -07:00
Sahil Batra ccddbba7a3 user_groups: Extract code to check system groups allowed for setting. 2024-09-16 16:28:52 -07:00
Sahil Batra 5fda195eab user_groups: Refactor function to get groups to be used for settings.
This commit refactors the code to get groups to be used for settings
as we would now have two UIs for settings for some time - dropdown
widget and pills, so we can just have a single function which just
returns the valid UserGroup objects and then a separate function to
get the appropriate format to be used for dropdown widgets and pills.
2024-09-16 16:28:52 -07:00
Sahil Batra 6482f0c2ea user_groups: Pass correct group object for adding new group to UI.
We previously passed the UserGroupRaw type object received in
the user group creation event to user_group_edit.add_group_to_table
instead of the UserGroup type object.

The add_group_to_table function is called after receiving creation
event only, but other functions called later in the flow are called
at other times as well like when opening edit panel for a particular
group and they expect UserGroup type object, so this commit fixes it.
2024-09-16 16:28:52 -07:00
Sahil Batra f3fafc719f settings: Add function to check permission for anonymous setting group. 2024-09-16 16:28:52 -07:00
Sahil Batra ffeb542b22 settings_components: Remove unnecessary toString calls.
The value for which the toString is called is already a string, so
there is no need to call it. It would have been added to make sure
that linter does not complain, so added an assert statement for it.
2024-09-16 16:28:52 -07:00
Prakhar Pratyush 764083d31b settings: Add 'allow_private_data_export' user setting.
This commit adds a user-setting to allow users to decide
whether to let administrators export their private data.

Fixes part of #31201.
2024-09-16 15:48:40 -07:00
Karl Stolley da91ebc592 checkboxes: Render border-color-matched SVGs in light and dark modes.
This obviates the need for the buggy use of a brightness filter,
which causes rendering problems on iOS devices and possibly others.
2024-09-16 15:43:47 -07:00
Karl Stolley 8741c9e43f dark_mode: Introduce higher-contrast, opaque text.
Fixes: #31615
2024-09-16 15:43:47 -07:00
Sayam Samal b8d4bddacf echo: Fix handling of `locally_echoed` flag after successful msg resend.
The `on_success` function within `echo.resend_message` is executed when
the server successfully acknowledges a resent message. In this scenario,
the `locally_echoed` flag should be set to false, as the message has
been confirmed by the server.

This behavior is already correctly handled within the
`echo.reify_message_id()` function, which is triggered through the
`compose.send_message_success()` flow.

However, the on_success function incorrectly sets the `locally_echoed`
flag to true, which is unnecessary and likely a mistake. This led to
the bug where message controls would disappear from the resent messages
on slow networks.

This commit removes the erroneous line to ensure proper flag handling
during message resend.
2024-09-16 13:06:30 -07:00
Sayam Samal 5583ddd3bf echo: Update message controls dynamically for failed messages.
Previously, the message controls for failed messages was present for
all messages, regardless of their status, and was being rendered
unconditionally; only being hidden for successfully sent messages.

This commit adds dynamic rendering for the failed message controls,
only rendering them via the handlebars template when a message is
confirmed to be failed.

Fixes #31132.
2024-09-16 13:06:30 -07:00
sujal shah 614caf111e user_groups: Add `creator` and `date_created` field in user groups.
This commit introduced 'creator' and 'date_created'
fields in user groups, allowing users to view who
created the groups and when.

Both fields can be null for groups without creator data.
2024-09-13 18:44:58 -07:00
sujal shah 3b69f2e5d9 stream_settings: Extract `creator_detail` section.
Extract display_pill and date code to separate
'creator_detail.hbs' file.
Rename 'stream_creator_details' to 'creator_details'.
2024-09-13 18:44:58 -07:00
opmkumar d4b1d0a68e stream_data: Add can_edit_description function.
Added can_edit_description function in stream_data to check if the user has permission to edit the description of the stream.
2024-09-13 15:51:39 -07:00
Lauryn Menard f31371969d integration-docs: Limit client-side error reporting to 40x errors. 2024-09-13 08:56:03 -07:00
evykassirer ed42e971ed search: Switch to pressing tab able to select typeahead item.
By request:
https://chat.zulip.org/#narrow/stream/9-issues/topic/search.3A.20press.20tab.20to.20select.20item.20in.20autocomplete/near/1936714
2024-09-12 09:46:34 -07:00
Vector73 0cd51f2fea settings: Remove `delete_own_message_policy` realm property.
Removed `delete_own_message_policy` realm property as the permission
to delete own messages is controlled by `can_delete_own_message_group`
setting.
2024-09-12 09:36:02 -07:00
Vector73 28c7a04734 settings: Add `can_delete_own_message_group` realm setting.
Added `can_delete_message_group` realm setting to replace
`delete_own_message_policy` property.
2024-09-12 09:36:02 -07:00
evykassirer 26da3300ec message_list_view: Remove undefined option for two parameters. 2024-09-12 09:34:29 -07:00
evykassirer d0c63be9be message_list_view: Add TODO for followup for later.
From comments from #31576.
2024-09-12 09:34:29 -07:00
evykassirer c19b3b0826 message_list_view: Simplify type of mention_classname. 2024-09-12 09:34:29 -07:00
evykassirer 0c4186d91f message_list_view: Use more specific type for message_id_to_focus. 2024-09-12 09:34:29 -07:00
evykassirer 93d8db11bf message_list_view: Change moved and modified to pure booleans, not optional. 2024-09-12 09:34:29 -07:00
evykassirer 97705efb5a message_list_view: Remove unused edited_* vars. 2024-09-12 09:34:29 -07:00
evykassirer 09de447dd9 message_list_view: Move relevant types to module. 2024-09-11 14:59:31 -07:00
evykassirer e41e365085 message_list_view: Convert module to typescript. 2024-09-11 14:59:31 -07:00
evykassirer bf64ac7918 message_list_view: Create group and message container all at once.
To be able to convert this module to typescript, we can't create
these objects iteratively, we have to collect the property values
and create it all at once. Partially formed objects aren't very
easy to type.
2024-09-11 14:59:31 -07:00
evykassirer e65bf5cbe2 message_list_view: Set up new group in start_group function.
This will make the upcoming refactor a bit easier to read.
2024-09-11 14:59:31 -07:00
evykassirer 22d2111130 message_list_view: Check message type instead of stream_id. 2024-09-11 14:59:31 -07:00
evykassirer 1ff5bc0fca message_list_view: Remove stale reference to rerender_messages. 2024-09-11 14:59:31 -07:00
Karl Stolley 554221e3c8 cleanup: Remove structural .new-style references. 2024-09-11 14:22:45 -07:00
Karl Stolley d91321a2c4 cleanup: Remove singleton .new-style class refs. 2024-09-11 14:22:45 -07:00
Karl Stolley 7b7e21384f cleanup: Remove remaining CSS, JS .new-style references. 2024-09-11 14:22:45 -07:00
Karl Stolley c43aaed37c settings: Leverage .settings_text_input class. 2024-09-11 14:22:45 -07:00
Karl Stolley a0fc663490 todo_widget: Replicate necessary checkbox styles. 2024-09-11 14:22:45 -07:00
Karl Stolley 8c984f68ec checkboxes: Decouple label.checkbox from .new-style tangle. 2024-09-11 14:22:45 -07:00
Karl Stolley 148169546d buttons: Set Zulip styles on :focus-visible. 2024-09-11 14:22:45 -07:00
Karl Stolley df3d3197ff buttons: Simplify color declarations attached to .button. 2024-09-11 14:22:45 -07:00
Karl Stolley dca1ecf3b0 bootstrap-btn: Remove unnecessary warning, danger styles.
With Zulip's own .button class rewriting these everywhere, outside
of .new-style, there is no need to maintain the Bootrap
definitions.
2024-09-11 14:22:45 -07:00
Karl Stolley 7cb55d2f91 buttons: Remove unused .btn-link styles. 2024-09-11 14:22:45 -07:00
Karl Stolley af066842b1 components: Decouple .button from .new-style tangle. 2024-09-11 14:22:45 -07:00
Karl Stolley 7674318332 settings: Move tab-switcher out of .new-style block. 2024-09-11 14:22:45 -07:00
Sahil Batra e1cfe61452 user_groups: Add API support for deactivating user groups. 2024-09-11 09:43:56 -07:00
Alex Vandiver 38053e9c7c emoji: Convert spritesheets to webp.
This provides significant size savings:

| Emoji set   | png size | webp size | webp/png percent |
| ----------- | -------- | --------- | ---------------- |
| google-blob |  1968954 |   1373350 |           69.75% |
| twitter     |  2972820 |   2149672 |           72.31% |
| google      |  3455270 |   2327834 |           67.37% |

Since these are the largest assets that we ship to clients, it is
worth shaving off every byte we can.
2024-09-11 09:03:47 -07:00
Aman Agrawal a6e3a38e68 typeahead: Remove unsubscribe icon. 2024-09-11 08:26:52 -07:00
Aman Agrawal 93e0561857 message_events: Fix CI failure.
Broken in #31540
2024-09-11 12:05:44 +05:30
evykassirer 05e58de3f5 stream_data: Get stream id instead of name from slug.
This more closely matches the mobile code.
https://github.com/zulip/zulip/pull/31299#discussion_r1719556337

This shouldn't have any functional changes.
2024-09-10 17:51:39 -07:00
evykassirer b6830ff5df narrow_state: Remove unused search_string function. 2024-09-10 17:51:39 -07:00
evykassirer a4f7db3c4b compose_reply: Use narrow stream_id instead of parsing filter operand. 2024-09-10 17:51:39 -07:00
Aman Agrawal 8763d55911 message_events: Fix live update for views based on message property.
Fixes #31208
Fixes #14510
2024-09-10 17:28:04 -07:00
Aman Agrawal c653508aa5 message_parser: Directly use message content to check property.
This will allow us to use these functions in message events where
the full message object is not available.
2024-09-10 17:28:04 -07:00
evykassirer d6cad7c018 message_list_view: Calculate subscription markers without group.
This is part of a bigger refactor to calculate message list group
attributes and creating the group all at once instead of piecewise.
This is necessary to convert this module to typescript, since a
partially formed group is hard to type.
2024-09-10 17:20:00 -07:00
evykassirer d1a05bbdac message_list_view: Calculate edited_notice_locations without message_container.
This is part of a bigger refactor to calculate message container
attributes without the container, so that we can create the message
container all at once instead of piecewise, to be able to convert
to typescript.
2024-09-10 17:20:00 -07:00
evykassirer 0b4f8e56b7 message_list_view: Move class properties to top of class. 2024-09-10 17:20:00 -07:00
evykassirer f57221e78d message_lists: Remove duplicate MessageContainer type.
Note that the `MessageContainer` type in `compose_fade` doesn't
include the `url` property, but I haven't encountered a need for
this property during the work to convert `message_list_view` to
typescript, so it seems fine to remove it here.
2024-09-10 17:20:00 -07:00
evykassirer c02f4ff941 message_list_view: Calculate message_container_variables without the container.
This is part of a bigger refactor to calculate message container
attributes just from the message, so that we can create the message
container all at once instead of piecewise, to be able to convert
to typescript.
2024-09-10 17:20:00 -07:00
evykassirer df6d592d1c message_list_view: Calculate message_edited_vars from just the message.
This is part of a bigger refactor to calculate message container
attributes just from the message, so that we can create the message
container all at once instead of piecewise, to be able to convert
to typescript.
2024-09-10 17:20:00 -07:00
evykassirer e40efcc390 message_list_view: Get topic edit properties instead of mutating group.
This is part of a bigger refactor to calculate message list group
attributes and creating the group all at once instead of piecewise.
This is necessary to convert this module to typescript, since a
partially formed group is hard to type.
2024-09-10 17:20:00 -07:00
evykassirer 541228f817 message_list_view: Only pass messages to update_group_date.
This is part of a bigger refactor to calculate message container
attributes just from the message, so that we can create the message
container all at once instead of piecewise, to be able to convert
to typescript.
2024-09-10 17:20:00 -07:00
evykassirer 71d01291b6 message_list_view: Replace util.same_sender with sender_id check. 2024-09-10 17:20:00 -07:00
evykassirer b387ad24fa timerender: Move util.the into render_date. 2024-09-10 17:20:00 -07:00
roanster007 bc384094d3 narrow: Make `with` operator behaviour consistent with API behaviour.
Previously, in presence of `dm` operators, the `with` operator
behaviour in the web client was not consistent with that of
the API. For instance, when `with` points to a stream message,
in presence of a `dm` term, then rather than narrowing to the
corresponding channel of `with` operand, the `with` term simply
used to be ignored, and narrowed to the corresponding `dm`
narrow.

Also, in cases when the `with` used to point to a direct message,
in presence of a `channel` term, then after correcting to the
right narrow, the `with` term used to be removed. The `with`
term would still be needed after correcting the narrow to
maintain consistency between channel and dm conversations.

This commit removes these inconsistencies of `with` in case
of `dm` operators, and makes it consistent to those mentioned
in the api documentation.
2024-09-10 16:29:49 -07:00
opmkumar 719518baba popovers: Add stream-info-popover when channel pill is clicked.
Shows a stream info popover whenever a channel pill is clicked (such
as in the pill widgets for adding subscribers to a channel or
invitations). The stream info popover contains channel icon and name,
channel description and a link to channel settings.

Fixes #30567.
2024-09-10 16:16:53 -07:00
opmkumar 5ecdf56336 popovers: Fix references to nonexistant popover-menu-inner-list-item.
These should have been popover-menu-list-item.
2024-09-10 16:16:53 -07:00
Varun Singh d6c34f64dd tests: Use `make_user` & `make_bot` to create test user & bot. 2024-09-10 16:02:35 -07:00
Varun Singh f9f2c32d21 example_user: Add helper functions to create user. 2024-09-10 16:02:35 -07:00
Varun Singh 4c2bb4dbe3 tests: Rename `test_stream.js` to `example_stream.js`. 2024-09-10 16:02:35 -07:00
Tim Abbott ad890890f6 lint: Fix several duplicate word typos. 2024-09-10 15:59:00 -07:00
Aman Agrawal 21b6bb9887 message_list_data_cache: Update when receiving new messages.
If we receive a message that we can add to the data cache without
talking to the server, we do that, otherwise we remove it from the
cache to avoid us having wrong filter status cached.
2024-09-10 15:58:15 -07:00
Aman Agrawal 5b9a2584c5 message_list_data_cache: Cache MessageListData objects.
We start caching MessageListData objects for the narrows which
user has visited. We restore the cached objects if the filters
match. Also, the cached objects are updated based on events. One
major piece is update path the is pending implementation is the
message move code path.
2024-09-10 15:58:15 -07:00
Aman Agrawal 259e77fbf6 message_list_data: Track if the data is rendered using message list id.
This is an easy way to track if a MessageListData is rendered.
Storing MessageList object would make us liable to cleanup the
MessageList object when the data is no longer in use.

Note that this is more like "likely / past rendered message list id",
we will have to check currently rendered message list data to verify
if the data object is really rendered.
2024-09-10 15:58:15 -07:00
Aman Agrawal fee108949d messsage_lists: Extract method to delete a rendered list. 2024-09-10 15:58:15 -07:00
joseph 65893292b5 channel_subscribe: Use IDs instead of emails when processing results.
As part of our todo in the code, we want to use the unique user IDs
instead of emails when processing the results of subscribing users to a
channel. These changes apply those changes and streamlines the use of IDs.
2024-09-10 15:37:38 -07:00
opmkumar 62f74fcb83 search: Hide close button in empty filter streams and filter topics.
Fixes #21297.
2024-09-10 15:36:30 -07:00
Karl Stolley 8ff3fb5fec message_row: Reduce space above collapsed Show More button.
This only impacts collapsed Show More buttons in a message with a
sender.

Fixes #31221
2024-09-10 14:06:58 -07:00
adnan-td eaaf26e182 buddy_list: Remove deactivated users from right sidebar.
Filter out inactive people from the buddy list in the right
sidebar.
2024-09-10 14:04:26 -07:00
Mateusz Mandera a36f906d1a presence: Add history_limit_days param to the API.
This param allows clients to specify how much presence history they want
to fetch. Previously, the server always returned 14 days of history.
With the recent migration of the presence API to the much more efficient
system relying on incremental fetches via the last_update_id param added
in #29999, we can now afford to provide much more history to clients
that request it - as all that historical data will only be fetched once.

There are three endpoints involved:
- `/register` - this is the main useful endpoint for this, used by API
clients to fetch initial data and register an events queue. Clients can
pass the `presence_history_limit_days` param here.
- `/users/me/presence` - this endpoint is currently used by clients to
update their presence status and fetch incremental data, making the new
functionality not particularly useful here. However, we still add the
new `history_limit_days` param here, in case in the future clients
transition to using this also for the initial presence data fetch.
- `/` - used when opening the webapp. Naturally, params aren't passed
here, so the server just assumes a value from
`settings.PRESENCE_HISTORY_LIMIT_DAYS_FOR_WEB_APP` and returns
information about this default value in page_params.
2024-09-10 13:15:35 -07:00
Aman Agrawal 93f0581197 messages_overlay: Fix multiple IDs selected accidentally.
Since `success_message_scheduled_banner` and scheduled message overlay
both use `data-scheduled-message-id`, `get_element_by_id` needs
to be more specific which selector it wants.
2024-09-10 09:51:18 -07:00
Prakhar Pratyush 00fb8f3014 settings: Move the user-privacy settings related code at one place.
This commit makes small refactoring to place all the user-privacy
settings code in 'server_events_dispatch.js' at one place and use
a common function 'settings_account.update_privacy_settings_box' to
update the UI.

This also helps in early return instead of executing a lot
of `if` statements related to user-preferences settings.
2024-09-10 09:34:24 -07:00
Prakhar Pratyush 75f6ae6d20 settings: Fix live-update bug for privacy settings.
The following three privacy settings weren't being live
updated across multiple browser tabs/windows:
* send_stream_typing_notifications
* send_private_typing_notifications
* send_read_receipts

This commit fixes the bug.
2024-09-10 09:34:24 -07:00
Prakhar Pratyush 340140954b settings: Use the generic code block to set 'enter_sends' value.
This commit performs a minor code restructuring to use the
generic code block for updating all the user_preferences
settings values.

No need to use a separate code block for 'enter_sends' setting.
2024-09-10 09:34:24 -07:00
Alex Vandiver 8bd94b82bf upload: Name the link based on the uploaded filename.
We previously parsed the filename as stored on disk, which is rather
sanitized.  Use as close to the original filename as possible.
2024-09-09 12:40:17 -07:00
Alex Vandiver 8e5cdcc174 upload: Remove impossible undefined-url test and code.
This came in during the initial conversion to Uppy in 5bab2a3762,
but it tests a case which should not be possible according to Uppy's
API, and ours.
2024-09-09 12:40:17 -07:00
Sanchit Sharma 48b60db4a4 settings_config: Use `kbd` for `realm_enter_send` label.
Fixes: #29083.
2024-09-06 11:47:04 -07:00
Sanchit Sharma 671946351c settings: Improve visibility of "Enter Sends Message" setting.
Addresses user research feedback by duplicating the "Enter Sends
Message" setting in the Settings > Preferences menu, specifically within
the General section, ensuring users can easily locate and configure
this option.

server_events_dispatch: Remove break statement.
The settings page needs to be updated when
`enter_sends` property is updated.

css: Update vertical-align to middle for the checkbox element.

Co-authored-by: Akarsh Jain<akarsh.jain.790@gmail.com>.
2024-09-06 11:47:04 -07:00
sanchi-t a8acd0ce25 compose_box: Remove non-existent classes.
The .enter_sends_true and .enter_sends_false classes were originally
removed in commit b4b71880e1.
2024-09-06 11:47:04 -07:00
joseph 5d3edf06c8 message_edit: Ask users to delete attachments after editing.
currently, after a user edits a message and removes an reference to the
uploaded file, the uploaded file stays on the storage taking up space.
We want to ask the user to possibly delete the removed attachments if
they are no longer needed. These changes applies a modal that will appear
prompting the user to delete the attachments.

Fixes: #25525.

Co-authored-by: brijsiyag
Co-authored-by: wandrew0
2024-09-06 11:40:51 -07:00
joseph 5133f34a05 attachments: Reuse base attachments schemas.
This is a prepatory commit to reuse the base attachments schemas in
other schemas that are expecting attachments as a field.
2024-09-06 11:40:51 -07:00
Karl Stolley e1e9ab0d06 portico: Ensure comparison tabs take precedence over plans. 2024-09-06 09:35:32 -07:00
Anders Kaseorg 7515cb8c6e invite: Avoid slow jQuery :input selector extension.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-06 09:33:31 -07:00
Anders Kaseorg cf186a4d86 sponsorship: Avoid slow jQuery :selected selector extension.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-06 09:33:31 -07:00
Anders Kaseorg 081c0dc97f signup: Avoid slow jQuery :selected selector extension.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-09-06 09:33:31 -07:00
Sahil Batra 6efa6b354c stream-settings: Check if overlay is opened when removing stream.
This commit adds code to add a check if overlay is opened before
executing the code for removing stream from UI on receiving the
stream deletion event. This makes sure that the we do not
call code which expects certain UI elements to be present in the
DOM and thus avoid errors in cases where the stream settings UI
is not opened and the related elements are not in DOM.
2024-09-06 09:32:53 -07:00
Jaimin Godhani 731575344e settings: Rename display_settings to preferences.
Fixes zulip#26874.
2024-09-05 16:17:36 -07:00
Alya Abbott 9933165e75 help modal: Remove small_hotkey style. 2024-09-03 20:52:16 -07:00
Alya Abbott b65e02ed98 help: Add missing line to Navigation section of keyboard shortcuts. 2024-09-03 20:52:16 -07:00
evykassirer ec43b41c2f move_topic: Remove extraneous classname on hidden input, fixes bug.
We initialize the topic typeahead in the modal with the element
`$("#move_topic_form .move_messages_edit_topic")`, which previously
was capturing two elements, the second one being a hidden input
element.

This wasn't causing issues, but once we added `util.the` in the
typeahead code we were getting errors for having multiple elements
where we expected one.

The fix is removing `move_messages_edit_topic` from the hidden
element's classnames, since that class is only used for input
and styling things.
2024-09-03 20:50:34 -07:00
roanster007 519614ffbb narrow: Fix last unread when narrowed to a `dm` message using `with`.
Previously, on narrowing to a direct message using the `with`
operator, we used to end up at the last message rather than
the last unread message.

This was because while correcting the narrow using the `with`
operand, we used to consider all the users of `display_recipient`.
This would also include the `current_user`. This is not right because
the unread messages for direct messages are bucketed with a
`user_ids_string`, that does not include the user id of the current
user. Hence, when looked up for the last unread id by the `with`
operator, it used to return undefined.

This is fixed by removing the current user's user id from the user ids
string if current user is not the only display recipient to the
direct message.
2024-09-03 16:35:35 -07:00
evykassirer 58bc98afb5 util: Use blueslip error for util.the instead of an assert. 2024-09-03 13:49:30 -07:00
Aman Agrawal 240c870815 typeahead: Fix compose topic typeahead partially hidden.
The `flip` popper function is not working properly here since
we migrated to use Simplebar (Can be verified by removing
`data-simplebar`).

To fix it, we need to force trigger the function as soon as tippy
is attached to DOM.
2024-09-03 12:37:33 -07:00
Shubham Padia 1ec4539550 css: Rename .icon to .sidebar-item-icon for the name to be unique.
See
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1901490
for more details.
2024-09-03 12:20:42 -07:00
Shubham Padia 2f120d2572 settings: Make show more tab look similar to other tabs.
Fixes https://chat.zulip.org/#narrow/stream/101-design/topic/org.20settings.20-.20show.20more.20-.20icon.20alignment/near/1935512
Also renames `.collapse-settings-btn` to `.collapse-settings-button`.
2024-09-03 12:20:42 -07:00
Shubham Padia 4a7983fad3 css: Use a class for spoiler header text.
Having the :not() rule there affected the performance, see
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1920156
for more details.
2024-09-03 10:24:40 -07:00
Shubham Padia 28d9c02479 css: Have `move-handle` for every movable row instance.
The original motivation was to remove the `+ i` instances because of
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1934360.
But it seemed better to have similar html structure and css across all
movable rows.
2024-09-03 10:22:44 -07:00
Shubham Padia 77ebdfac77 css: Use classname for show_my_user_profile_modal icon styles.
Having the selector there affects the performance. See
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1845719
for more details.
2024-09-03 10:22:44 -07:00
Shubham Padia a764e80a1b css: Use classname for scroll-to-bottom icon styles.
Having the selector there affects the performance. See
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1845719
for more details.
2024-09-03 10:22:44 -07:00
Shubham Padia fe44ce3e24 css: Use classname for all-messages-search-caution icon styles.
Having the selector there affects the performance. See
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1845719
for more details.
2024-09-03 10:22:44 -07:00
Shubham Padia 82b68e9bdb css: Use classname for play_notification_sound icon styles.
Having the selector there affects the performance. See
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1845719
for more details.
Also does some refactoring to account for the fact that
.setting_notification_sound does not have any icons as children.
2024-09-03 10:22:44 -07:00
Shubham Padia 6ec1b89502 css: Use classname for navbar_icon_and_title icon styles.
Having the selector there affects the performance. See
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1845719
for more details.
2024-09-03 10:22:44 -07:00
Shubham Padia ea60fee0ac css: Use classname for subscribe-to-more-streams icon styles.
Having the selector there affects the performance. See
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1845719
for more details.
2024-09-03 10:22:44 -07:00
Shubham Padia 9de064dc3e css: Use classname for setting-disabled-option icon.
Having the selector there affects the performance. See
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1845719
for more details.
2024-09-03 10:18:29 -07:00
Vector73 b2a07971ec dropdown_widget: Allow more than one click on dropdown.
The new saved replies feature requires removing saved replies by clicking on
trash icon on dropdown item. So dropdown widget should allow more than
one click without closing it to delete multiple saved replies.
2024-09-03 09:20:27 -07:00
Aditya Kumar Kasaudhan b2ab77746b compose: Fix disabled buttons after exiting preview mode in edit UI.
This commit fixes the issue by ensuring that the `clear_preview_area` function is called within the `end_message_row_edit` method. This ensures that when the edit UI is reopened, it resets to the correct state, with all buttons enabled and functioning as expected.

Fixes #31503.
2024-09-03 09:19:10 -07:00
Karl Stolley a8ecba8ab8 settings: Remove .new-style, unused .button ul selector. 2024-08-30 14:06:27 -07:00
Karl Stolley 7a94d484ff settings: Remove unused or unnecessary center classes from .new-style cluster. 2024-08-30 14:06:27 -07:00
Karl Stolley f98551f128 settings: Remove unnecessary .block from .new-style cluster. 2024-08-30 14:06:27 -07:00
Karl Stolley 0cfddc9874 settings: Remove .w-200 class from .new-style cluster.
All elements that use this have their width already superseded by
other selectors.
2024-08-30 14:06:27 -07:00
Karl Stolley 2e6a34042f settings: Remove unnecesary inline-block div.
This also removes the need for any min-width declarations on the
labels, which will behave as block elements and take up the
containing block's available width.
2024-08-30 14:06:27 -07:00
Karl Stolley 668660bc71 settings: Remove unused .warning from .new-style cluster.
This seems to have been used with the `password_warning()` function
in `password_quality.ts`, but that function does not appear to be
called in the app--only in the portico.
2024-08-30 14:06:27 -07:00
Karl Stolley 35f84e5381 message_row: Allow moved/edit markers to scale. 2024-08-30 10:45:39 -07:00
Karl Stolley 776a90d9ba left_sidebar: Render brackets only on non-empty channels. 2024-08-30 10:34:07 -07:00
sujal shah 2c4596d990 settings_users: Fix for filter search text issue in settings users.
This commit addresses an issue where the search query applied in
one tab was inadvertently affecting all tabs
(Users, Deactivated, Invitations).

Now, the search functionality is properly isolated to the active tab,
ensuring that users can filter results without interference
from other tabs.

(One change needed for this was included in the previous commit).
2024-08-30 10:31:07 -07:00
Shubham Padia dad40eb296 settings_users: Show previously entered text in search filter. 2024-08-30 10:30:44 -07:00
Shubham Padia 548c583cf9 settings_users: Show previously selected value in role code dropdown.
Fixes
https://chat.zulip.org/#narrow/stream/9-issues/topic/filters.20are.20not.20working.20properly/near/1923794.
This commit also changes the datatype used for the dropdown to number
which is more suitable for our case.
2024-08-30 10:30:44 -07:00
Shubham Padia f38fe78e53 css: Use classnames for settings page .sidebar li items.
Having the > ul selector there affects the performance. See
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1845719
for more details.
2024-08-30 10:23:19 -07:00
Shubham Padia 3afc34050b css: Use classnames for settings page .sidebar li items.
Having the `*` selector there affects the performance. See
https://chat.zulip.org/#narrow/stream/6-frontend/topic/CSS.20selector.20performance/near/1845719
for more details.
We've used `sidebar` instead of `sidebar-wrapper` for the rules in
dark-theme also, since that is the rule being followed for light theme.
We've introduced a new class called `sidebar-item`.
2024-08-30 10:23:19 -07:00
Jaimin Godhani c1755e3d94 settings: Rename display_settings.hbs to preferences.hbs.
Fixes part of zulip#26874.
2024-08-30 10:20:06 -07:00
Aman Agrawal 6d2cda4308 typeahead: Remove patch for IME enter events.
Key value for IME enter keypress is "Process", so we
don't need to patch it here.
2024-08-29 16:32:31 -07:00
Aman Agrawal 04aada3589 typeahead: Migrate to use `key` instead of `keyCode`.
`keyCode` is deprecated and those values are not readable.
2024-08-29 16:32:31 -07:00
Sayam Samal e4f1156bea condense: Dynamically render content for message length toggle.
This moves the content inside `message_length_controller` to a new
handlerbars template `message_length_toggle.hbs`, and dynamically
renders the content based on the message length.

Since the majority of the messages aren't collapsed/condensed, this
change should improve the initial rendering of the message list.

Fixes #31133.
2024-08-29 15:52:08 -07:00
Prakhar Pratyush 656c65c74c edit_history: Remove 'prev_rendered_content_version' field.
This commit removes the 'prev_rendered_content_version'
field from:

* the 'edit_history' object within message objects in the
API response of `GET /messages`, `GET /messages/{message_id}`
and `POST /zulip-outgoing-webhook`.
* the 'update_message' event type

as it is an internal server implementation detail not used
by any client.

Note: The field is still stored in the 'edit_history' column
of the 'Message' table as it will be helpful when making
major changes to the markup rendering process.
2024-08-29 15:37:12 -07:00
Sayam Samal c51bd1eab8 message_list: Conditionally render message edit form container element.
This commit moves the placeholder elements for the message edit form,
to `message_edit_form.hbs`, so they are conditionally rendered only
when a message is being edited, rather than being present for every
message in the list.

Fixes #31134.
2024-08-29 13:32:28 -07:00
Alex Vandiver b8e4bdccd8 postprocess_content: Un-URI-escape filename in title.
The filename contains URI-escaped characters, which do not need to be
escaped for safety -- they only make the filename in the tooltip less
readable.
2024-08-29 13:29:33 -07:00
sujal shah 333eedb351 stream_settings: Add text in the left panel.
Display "No channels match your filter" in the left panel
when no matches are found for filter queries in
"Subscribed", "All channels" and "Not subscribed" tabs.

Fixes #18332.
2024-08-28 14:23:46 -07:00
sujal aafcd43038 stream_settings: Show disabled create stream button and text.
Now user who don't have permission can see disabled stream create
button with message.
2024-08-28 14:23:46 -07:00
Lauryn Menard d54ca85de2 activity: Add view to see the ledger entries for a customer plan.
Adds a link to the plan ledger view in the current plan information
shown in the support views. Link is not shown if the plan is 100%
sponsored, e.g., the Community plan.

Adds a formatted header area to the activity table template so
that it's easy to add useful information to these activity views.
2024-08-28 14:12:36 -07:00
Varun Singh 3d6dcf8fe5 compose_fade: Remove duplicate `AllVisibilityPolicies` type. 2024-08-28 11:02:26 -07:00
Varun Singh 51ff57f1bf settings_config: Rename type`ColorSchemeDetails` to `ColorSchemaValues`. 2024-08-28 11:02:26 -07:00
Jaimin Godhani 243b57154b settings: Rename user_display_settings to user_preferences.
Fixes part of zulip#26874.
2024-08-28 11:01:02 -07:00
adnan-td e23d863981 narrow_banner: Fix message view banner for dm with deactivated user.
Previously the empty view banner for DM with any recipients
contained "Why not start the conversation".

For deactivated users/bots, we are now not displaying it.
2024-08-27 15:58:29 -07:00
adnan-td 120cfa8987 narrow_banner: Refactor recipient_user in direct message. 2024-08-27 15:58:29 -07:00
Sayam Samal ccb65795d9 user_card_popover: Display bot role conditionally in user card. 2024-08-27 15:52:39 -07:00
Sayam Samal 96a105b315 bots: Display bot role in lowercase in user card and user profile modal. 2024-08-27 15:52:39 -07:00
Sayam Samal 051221002a user_profile_modal: Display detailed bot role in the "Role" field.
The "Role" field previously only displayed "Bot" for the  non-system
bot users, this commit adds the detailed bot role to the "Role" field
in the format "Bot ({role})".
2024-08-27 15:52:39 -07:00
Sayam Samal 4cdd484755 user_card_popover: Display bot owner user card popover as an overlay.
This commit displays the bot owner card as an overlay in the middle of
the screen, like we do for mobile screen sizes where the reference
elements are hidden.

This also hides the bot user card when it's bot owner card is opened.
2024-08-27 15:52:39 -07:00
Sayam Samal adbfb35bb7 user_card_popover: Display bot's role in bot user card popover.
As a follow-up to the previous commit which repositions the bot owner
field, this commit adds the bot's role in the format "Bot ({role})" to
the previous position of the bot owner field in the bot user card.
2024-08-27 15:52:39 -07:00
Sayam Samal 5590c704ca user_card_popover: Reposition bot owner field and display as user pill.
This commit repositions the bot owner field from below the bot’s name to
align with the user fields, providing more space for the newly added
bot owner user pill.
2024-08-27 15:52:39 -07:00
sujal shah 8cc4252062 settings: Convert name to pills in custom emoji section.
previously, author names are displayed in plain text, now
they are converted to pills.

Fixes #30990.
2024-08-27 13:22:34 -07:00