Commit Graph

62106 Commits

Author SHA1 Message Date
Alya Abbott
a04759f7f9 funding: Add a funding.json file.
See https://floss.fund/funding-manifest/ for details.
2024-12-13 13:36:51 -08:00
Karl Stolley
27c6d5c836 dark_theme: Extend higher-contrast color to sidebars. 2024-12-13 13:36:20 -08:00
Karl Stolley
a13008b1d3 dark_theme: Adjust message colors for higher contrast. 2024-12-13 13:36:20 -08:00
Aman Agrawal
7e0705913d footer: Fix footer items mis-aligned in Russian.
Change alignment of footer rows to flex-start a bit earlier.
`1280px` is chosen since that's the standard `max-width` for
the screens on the page and that is width around which the
massive gap before the first item on the footer is diminished which
allows us to left align the elements.
2024-12-13 13:02:06 -08:00
Kislay Verma
b6d8bf3a80 navbar_alerts: Add alert to update time zone.
If the user has enabled the option to automatically offer to update
their profile time zone with the browser's time zone, we show an alert
offering that.
Clicking on "Yes" updates the timezone.
Clicking on "No, don't ask again" disables (unchecks) the option.

A feedback toast is displayed to indicate the success/failure of the
request.

The alert is also shown if the user has not set their time zone.

Fixes #16957.
2024-12-13 12:58:09 -08:00
Kislay Udbhav Verma
a2c6c11296 timerender: Track browser time zone.
We add a variable `browser_time_zone` to track the same
separately from `display_time_zone`.

This is used to check whether the user profile time zone matches
the browser's time zone, as a part of #16957, and will later be
used in #16958.

We also add methods to check whether a given timezone is the same
as that of the browser, making use of the browser's own
canonicalization process.

Tests are added to ensure that the time zone comparison
logic works for timezones observing DST.

Fixes part of #16957
2024-12-13 12:58:09 -08:00
Kislay Verma
a817671809 settings_ui: Add checkbox for toggling field.
Added a checkbox to toggle the option to automatically offer
to update the time zone with the browser time zone,
which is handled by the user profile field
"web_suggest_update_timezone".

A tooltip is also attached explaining the feature.

Fixes part of #16957
2024-12-13 12:58:09 -08:00
Kislay Verma
00df8a593d user_settings: Add field web_suggest_update_timezone.
This field tracks whether the user should be shown an
alert offering to update their profile time zone to the
time zone of the browser in case they differ.

The field is added to RealmUserDefault and UserProfile
models with a default value of True.

Fixes part of #16957
2024-12-13 12:58:07 -08:00
Vector73
143ca5065e api: Remove user object from reactions objects in the API.
Removes deprecated `user` object from reactions objects returned by
the API as it is redundant because of the presence of `user_id` field in
the API and is not used by any clients now.
2024-12-13 09:58:25 -08:00
Karl Stolley
eed844caef compose: Maintain circular shape for conversation arrow. 2024-12-13 09:48:41 -08:00
Aman Agrawal
f452d64d64 topic_list: Scroll user to the selected topic in left sidebar.
Fixes #32601
2024-12-12 18:41:34 -08:00
Aman Agrawal
0af738269a stream_list: Ignore left sidebar scroll until initial fetch is complete.
Since the initial fetch has a lot of messages, it can add many topics
to the left sidebar which can move the selected topic out of the view.

Note that `has_scrolled` is triggered even for the scrolls not triggered
by user since it is not easy to differentiate between the two events.
So, it is okay to ignore it initially.
2024-12-12 18:40:19 -08:00
evykassirer
23551c7774 compose: Use em for enter send setting font size. 2024-12-12 17:51:01 -08:00
Mateusz Mandera
81c2c0b328 docs: Finish renaming AzureAD to Entra ID.
Microsoft has been renaming AzureAD to Entra ID. Though both names still
seem to function, even if unofficially, so this mostly renames to `Entra
ID (AzureAD)` to reference both for clarity.
2024-12-12 17:48:54 -08:00
apoorvapendse
5787a11b53 typeahead: Increase token limit to scan '#'.
This commit prepares for a future change where the logic
will switch from returning "topic_jump" in
`tokenize_compose_str`, which causes the typeahead to close,
to returning the sliced token starting from '#'.

A test has been updated to validate the change.

To accommodate typeahead triggers for long stream and
topic names, the token limit is increased from 25 to 40
characters.
2024-12-12 17:35:46 -08:00
apoorvapendse
f6839995d5 compose: Check for topic token before stream.
This is a prep commit done to facilitate the
selection of topic right after stream is selected
from the typeahead.
Related #32184.
2024-12-12 17:33:51 -08:00
Niloth P
478b09beba integration-docs: Update Codebase for new doc format.
Part of zulip#29592.
2024-12-12 15:16:28 -08:00
Niloth P
a6fce7982e integration-docs: Update Capistrano for new doc format.
Remove outdated example screenshot.

Part of zulip#29592.
2024-12-12 15:16:28 -08:00
Niloth P
b80d1a021e integration-docs: Update BigBlueButton for new doc format.
Part of zulip#29592.
2024-12-12 15:16:28 -08:00
Niloth P
eff89d83bb integration-docs: Update Asana for new doc format.
Part of zulip#29592.
2024-12-12 15:16:28 -08:00
Niloth P
0d14ae1acf integration-docs: Remove the second screenshot from CircleCI doc.
The file had already been deleted, leaving behind its entry in the doc.
2024-12-12 15:04:02 -08:00
Maneesh Shukla
1feb650284 password: Add debounce to password validation.
Added debouncing to the password input field to reduce lag when
the password size is large.

Fixes: #29429.
2024-12-12 14:01:46 -08:00
Saubhagya Patel
cb75feafbb css: Remove unused CSS.
This commit removes some unused CSS from the
`app_components.css` file.

Fixes part of #32168.
2024-12-12 13:06:18 -08:00
Saubhagya Patel
14a8fd124a popovers: Restructure the Move Messages and Move Topic Modals.
This commit restructures the layout of the move messages and move topic
modals to follow standard patterns from other modals (e.g., the invite
user modal). It includes the following changes:
- The intro text is removed from the modal for renaming a topic,
  moving a topic, and moving messages between topics.
- The intro text is moved to the modal heading.
- If the heading doesn't fit on one line, it is abbreviated using
  ellipsis.

Fixes #32168.
2024-12-12 13:04:32 -08:00
shivam_sharma
2138885fbf integrations: Update example screenshot for Capistrano.
Fixes #32462
2024-12-12 11:06:23 -08:00
Lauryn Menard
36210c1ff3 billing: Replace legacy plan languagae with complimentary access.
Replaces the billing context variable for billing entities on a
temporary courtesy plan to use 'complimentary access' instead of
'legacy'.
2024-12-12 11:04:23 -08:00
Lauryn Menard
a6ca968a29 corporate: Add and use CustomerPlan.COMPLIMENTARY_PLAN_TIERS.
Adds COMPLIMENTARY_PLAN_TIERS to the CustomerPlan model so that
we start transitioning from the "legacy plan" language in the
billing system code. Adds a helper function that checks if the
plan tier is in COMPLIMENTARY_PLAN_TIERS.

Updates the sponsorship page context to use that helper function
and updates the relevant template for the updated user-facing
terminology.
2024-12-12 11:04:23 -08:00
Lauryn Menard
e1ae7dba18 stripe: Rename add_sponsorship_info_to_context to clarify function.
Renames add_sponsorship_info_to_context to instead be
add_org_type_data_to_sponsorship_context since this function for
all billing entities is adding information about the organization
type for the sponsorship request form.
2024-12-12 11:04:23 -08:00
Lauryn Menard
18686e06bb sponsorship: Remove free_trial from sponsorship page context.
Being on a free trial also means that the billing entity is on a
paid plan.

If they are on a sponsored plan, then they are not on a free trial.
If they have a pending sponsorship request, then they will be
redirected to the billing page. Otherwise, they will be shown the
form to request a sponsored/discounted plan, which does not use
the free_trial boolean.
2024-12-12 11:04:23 -08:00
Lauryn Menard
93c10fccb4 sponsorship-template: Update current plan div for readability. 2024-12-12 11:04:23 -08:00
Lauryn Menard
710f36cade stripe: Refactor function for getting sponsorship page context.
Reorders the logic in get_sponsorship_request_context so that the
early return for billing entities with a pending sponsorship request
that are also on a current paid plan is clearer.
2024-12-12 11:04:23 -08:00
Lauryn Menard
282e42c04b sponsorship: Show correct pending sponsorship message for Zulip Basic. 2024-12-12 11:04:23 -08:00
evykassirer
2fd51e3bc4 settings: Refactor styles for user list style picker.
* Uses em for width instead of px, matching the width of
  the emoji style picker.
* Uses grid to line up columns, instead of flex with pixel widths
  for the preview column.
* Add overflow hidden to look better on small widths.
2024-12-12 09:15:18 -08:00
evykassirer
bbc36846c0 settings: Stop using stale CSS variables.
These variables stopped being used in caba06e93d.
2024-12-12 09:15:18 -08:00
evykassirer
a0ca21e1b1 settings: Use em for width of emojiset choices selection box.
This will become important when we support even larger font sizes.
2024-12-12 09:15:18 -08:00
evykassirer
90c06b34c6 compose: Size stream message arrow icon with em. 2024-12-12 09:13:04 -08:00
evykassirer
40c2c31fba show more/less: Use em for height of button. 2024-12-12 09:12:33 -08:00
Alex Vandiver
28c12888da add_emoji: Make "Preview:" translatable. 2024-12-12 09:11:22 -08:00
Aman Agrawal
a97b3c7e41 conversation_participants: Track participants data in with message data.
This will help us accurately track participants in every narrow
to be used buddy list and other components.
2024-12-12 09:09:30 -08:00
Aman Agrawal
04e6b4eb4e textarea-caret: Improve performance of getCaretCoordinates.
`getCaretCoordinates`'s performance is improved 5x on average after
this patch due to reduced forced reflows of the layout.
2024-12-12 09:08:30 -08:00
PieterCK
82e0468071 slack-integration: Update Slack integration documentation.
The doc now shows instructions to setup the integration using
Slack's Events API instead of the legacy Outgoing webhook
service.

Co-authored-by: Alya Abbott <alya@zulip.com>
Co-authored-by: Lauryn Menard <lauryn@zulip.com>
2024-12-11 13:06:52 -08:00
PieterCK
42a22e6aaa slack-integration: Block requests from Slack retries.
A Slack fail condition occurs when we don't respond with HTTP 200 within
3 seconds after Slack calls our endpoint. If this happens, Slack will
retry sending the same payload. This is often triggered because we need
to perform callbacks when converting messages. To avoid sending the same
message multiple times, we block subsequent retry calls from Slack.

This commit returns early HTTP 200 response as soon as we get any retry
calls from Slack.

Part of #30465.
2024-12-11 13:06:52 -08:00
PieterCK
c54d90e5c7 slack-integration: Add callback function to Slack API.
Payloads from Slack's Events API don't include human-readbale
information for a Slack username and for Slack channels.

This commit makes the Slack integration callback to the relevant
Slack API endpoints for that information.

Fixes #30074.
2024-12-11 13:06:52 -08:00
PieterCK
1ebbe2fd99 slack-integration: Add test fixtures for extra Slack payloads.
This commit adds 4 new payload fixtures to the Slack
integration for messages we don't process properly yet:

- Messages with code blocks.
- Messages with overlapping text formatting (e.g, bold
  and italic).
- Messages with formatted mentions.
- Messages with quote blocks.

The follow-up plan to add support for these kind of
Slack messages is tracked in #30827.

Part of #30465.
2024-12-11 13:06:52 -08:00
PieterCK
f29312ce03 slack-integration: Update Slack integration to handle Events API.
This updates the Slack webhook integration to handle the Slack Events
API[1], while maintaining backwards compatibility with Slack's legacy
Outgoing Webhook service.

The Events API introduces the "challenge" handshake[2] to verify and
add a new webhook URL for them to call. This commit adds a handler for
the challenge handshake.

Additionally, this commit reformats incoming payloads using the Slack
text reformatter from `slack_message_conversion.py`. There is some
duplicative code here because of the difference in Slack export data
and Slack's webhook payload.

Part of #30465

[1]: https://api.slack.com/apis/events-api#using-events-api
[2]: https://api.slack.com/apis/events-api#handshake
2024-12-11 13:06:52 -08:00
Tim Abbott
a59a93c436 css: Consolidate move_topic_modal styles. 2024-12-11 12:32:04 -08:00
whilstsomebody
0ce7278edf move_topic_popover: Show the number of messages to be moved.
Added a feature to the move message confirmation box to display the
count of messages that will be moved. The count updates dynamically
based on the selected option in the dropdown.

Fixes #23115.
2024-12-11 12:32:04 -08:00
Alex Vandiver
06d04b4291 migrations: Change migration 0639's dependency for backporting to 9.x.
This moves it "earlier" in the migrations graph, onto the last
migration in 9.x, and adds a merge migration to fold it back into
main's current migrations tip.
2024-12-11 12:21:25 -08:00
Gunnar Samuelsson
876dd7ca60 popover: Fix misleading time description in right side-bar.
In the right side-bar, the popover states "Active x minutes ago",
even though the user could have been idle before going offline.
In that case we are stating something false, as the user was not
"Active x minutes ago", they were "Idle x minutes ago". Always
prioritizing the active_timestamp if possbile rather than taking
the max of active_timestamp and idle_timestamp fixes this issue.
2024-12-11 12:17:41 -08:00
Sahil Batra
143bda8a4b test_user_groups: Use "123456" as invalid group ID.
Since we have many group based settings and many of them
use anonymous groups as default, there might be a group
with ID "1111" as group IDs keep increasing across a test
suite run and it is no longer an invalid group ID.

This commit updates the tests to use a large enough
value like "123456" as invalid group ID.
2024-12-11 12:15:02 -08:00