In #35965 we added `push_device_registered_user_ids` to message &
update_message event.
Zulip servers with such events in their event queues when upgraded
to the new version set push_device_registered_user_ids to empty list,
which is incorrect - it leads to no push notification sent.
This commit adds compatibility code to handle such events. The newly
introduced `push_device_registered` check is used only for events
with `push_device_registered_user_id` present in them.
This fixes behaviour where a Docker image with a memory limit would
immediately OOM, as it would not detect the container's memory limit,
only the host's.
Fixes: #29794
The help center documentation now uses astro/starlight, so the
contributor documentation is updated here for the general changes
to that documentation, such as where to find files, and features
and components used in that documentation.
Moves features that are still used for integrations and API docs,
to those guides, e.g., tabbed sections and our macros system, so
that we still have documentation for those systems/features.
Co-authored-by: Shubham Padia <shubham@zulip.com>
Fixes#35899.
We don't make any visual changes to how the svgs/icons look, we just
move them to use the zulip-icon system.
We also replace use of the raw images of each in the help center and add
appropriate color for both in the help center.
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.
Previously, we enqueued events to "missedmessage_mobile_notifications"
even for users who had no registered push devices.
'handle_push_notification' later used to perform the check & skip
if there were no registered devices.
This commit avoids putting such events into the
"missedmessage_mobile_notifications" queue at all. By doing so,
we reduce unnecessary churn.
We removed this specific feature a few years ago. While the general
docs there are stale in other ways, we can at least remove this
confusing documentation.
Fixes#18326.
GitLab has both integrations and webhooks, and our documentation
should direct users to the webhooks set up for integrating with
Zulip.
Adds a link to GitLab's create a webhook documentation as well.
Previously, clicking the logo always triggered a full page reload,
even if the user was already on the home page. This commit adds logic
to intercept the click and smoothly scroll to the top instead,
avoiding an unnecessary reload.
Fixes#35422.
Co-authored-by: Rakshit Chauhan <rxkshit04@users.noreply.github.com>
This helps to prevent an edge case where clicking the
new-topic button, `[+]`, in the left sidebar when the
topic box was already empty caused an unexpected flash
of the *general chat* topic.
The transitions here do not work correctly across all
states, and directly interfere or look goofy with the
transitions in the recipient-row area.
Particularly with the removal from #message-content-container,
that had the annoying effect of just delaying the
appearance of the focus border, regardless of whether
focus was established via keyboard or mouse.
Previously, if the mouse cursor were in the vicinity of
the compose box, we'd see transitions even on keyboard
interactions, which should not have been happening.
This also allows instantaneous highlighting for keyboard
users, as well as avoiding any transitions when a
mouse user clicks into a recipient-row element (at
which point the hover transitions will have already
run).
It's not good form to register an event handler on a
function that runs fairly frequently--especially one
that stands to override another listener's handler.
Previously, private stream row was removed from the relevant
tab view in left panel in stream settings UI when a user was
subscribed or unsubscribed. Now we only remove the row if the
user does not permission to toggle the subscription state just
like we do for public streams where we keep the row as user
can toggle the subscription state again.
Also updated the comment in update_stream_row_in_settings_tab
to be more clear about the behavior.
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.
If one of the filters is focused or if we cannot determine the
current focus location, any rerender call will scroll user to
top.
Fixed by only scrolling to top when navigating from other views
and when we don't have a cached scroll position.
Tested by calling `complete_rerender` at 1s intervals.
The "light-border" theme was set as the default theme for all the
popovers, but was no longer in use, since all of our current popovers
either use the "popover-menu" theme or the "dropdown-widget" theme.
In response to the above reasoning, this commit removes the redundant
"light-border" Tippyjs theme usage from the codebase.