The invite user modal's tab toggler was being hidden when all the steps
mentioned in the invite tips banner were fulfilled. This happened due
to an error in logic in commit 8a06a6e108
which returned early in the common codepath, when the banner was not to
be shown, preventing the tab toggler from being initialized & rendered.
For users imported from other chat applications, is_imported_stub flag
is set to True until the user logs in for the first time.
This is preparation for #26950 to add a separated imported users tab
in "Users" settings panel.
`views_util.is_in_focus` didn't account for pill elements, which
resulted in expanded topic search in left sidebar being bugged.
Fixed by checking for `focused_element.isContentEditable` which
is always true for focused pill input elements.
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
The default height for the action buttons equalled to 28px at 16px/1em
due to the line-height of 1.25 applied to the label element inside
the button. However, the icons inside the button did not have any
line-height specified, which made the icon-only action buttons slightly
shorter than the buttons with labels. This commit adds the same
line-height to the icons inside action buttons to ensure a consistent
height across all action buttons.
This commit also modifies the padding for the inline topic edit buttons
to counter the increased line-height of the icons, ensuring these
buttons fit the receipient bar.
This fixes the weird behavior that occurs when you click
on some message belonging to a stream where you cannot
post.
Currently, this open the stream recipient dropdown filter
which is confusing.
With this fix, we avoid opening the composebox on clicking
some message belonging to a stream where the user is not
allowed to post.
Using the `R` hotkey triggers a toast stating that
the user cannot reply to that conversation.
And pressing `C` opens up the composebox in the
"Start New Conversation" state with the stream filter
dropdown open.
Fixes: #35866.
Discussion: https://chat.zulip.org/#narrow/channel/9-issues/topic/Recipient.20filter.20appears.20on.20clicking.20some.20message
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
Since we have the complete list of topics of the channel when
showing list of topics view for the channel, we update
the channel in left sidebar as the new fetched data.
This provides a nicer experince for old channels for which we
don't have any messages to extract any topic info from.
This commit adds a `+` button inside compose-direct-recipient box
which on click moves focus to private_message_recipient and opens
up the dm recipient typeahead.
Fixes: zulip#34848.
We use `#recipient_box_clear_topic_button` to apply styles to the
clear topic button. We may end up adding this button to separate
places as well. It will be better to scope the styles to a common
class name and apply it throughout all buttons.
Removes the CSS rules for upgrade-or-sponsorship-tip and upgrade-tip
as they no longer are in use.
The last use of upgrade-or-sponsorship-tip was removed in commit
a93a015b2.
The last use of upgrade-tip was removed in commit 021af590e.
This will help us club various fetch user calls especially during
initial app load to avoid us hitting API rate limits.
Also, added inifite retry to fetch user on failure.
We do check if the user is in `valid_user_ids` before each retry,
so we will know if the user becomes invalid.
This removes kludgy font-size adjustments on the group
icon, whose path was previously smaller than the 16x16
viewbox.
By adjusting the icon to take up the full width, it is
no longer necessary to fiddle with the icon's size, in
keeping with the app-wide move to 16x16 icons.
That simplifies some headache-inducing sizing and
calculations on the typeahead as well.
This commit ensures that the pill color is consistently purple across
the app including the display only pills.
Pills appearing inside of .person_picker elements also receive a hover
color.
Display-only pills do not take a border when clicked.
Fixes: #34815.
Previously, the pill image was hiding the box shadow of the pill upon
hovering.
We correct this by placing the same .pill-image-border element used
in other pills in the app.
Fixes part of #34815.
Since the pill-container containing display_only_pills
will never be a container with more than one pill, it is sufficient
to override the default pill-container styles.
Fixes part of #34815.
The .zulip-icon selector replaced here was introduced in
6f4d14ddde, which was
targeted at channel privacy icons.
This fixes poor alignment especially noticeable on the
closing X icons on input pills, e.g., in the Groups
permissions area.
- We rename a bunch of functions in integrations.ts to better reflect
the work they do after integrations page started being rendered server
side.
- Use .search_input class instead of input[type="text"] for integrations
searchbar.
- Use elif instead of if in build_integration_doc_html when checking
the type of an integration.
Co-authored-by: Niloth P <20315308+Niloth-p@users.noreply.github.com>
We redirect existing URLs to the new URLs. We want to use
`/integrations/category/{category_slug}` for categories and
`/integrations/{integration_name}` instead of
`/integrations/doc/{integration_name}` for individual integrations page.
Last commit broke the back to list functionality and redirected back to
the `all` integrations page no matter which category you navigated from.
This commit fixes that.
This was a kept as a separate commit since that commit has a lot of
changes already and this felt like a commit that could live on it's own.
We take the user back to all in case of an invalid or mis-matched
category.
Decision made in https://chat.zulip.org/#narrow/channel/19-documentation/topic/integrations.20docs.20per-page.20info/near/2268569
Integrations and the related docs were all running as an SPA. But to run
them in single page, we had a lot of logic on the frontend to make this
happen. We noticed that we missed to replicate page title changes on the
frontend. With the added burden of maintaining that integrations.ts page
navigation code and the uncertainty of not knowing what we might have
missed to replicate on the frontend, we decided to just render all the
pages server side while keeping our search on the backend.
This commit splits index.html into two templates, catalog.html for
integrations catalog and doc.html for the individual integration details
page.
We use a @typed_endpoint instead of a class based view since there are
very few class based views left in our codebase and this felt like a
nice opportunity to have integrations use them as well.
We port over any special non-navigation logic we were doing in
integrations.ts serverside.
We used to use animations for the lozenges when changing categories, we
don't do that anymore, since every category is a new page fetch and
animation does not make sense in that case.
We also port over the logic of adding the `without-category` class to
the lozenge icon on the indivdidual integration doc page.
We have a few integrations with legacy set to true. We used to set
their display to none in the CSS for the catalog page and we used to
remove that legacy class in integrations.ts for the individual doc page.
We remove legacy integrations from `visible_integrations` now, while the
individual doc page of the legacy integration works just fine without
the use of `legacy` class anywhere.
Main commit we want here is
0f8050018a
which eliminates the use of relative URL for integrations catagory. This
is needed since the URL structure of /integrations is going to change in
upcoming commits.
Gitea integration doc was referencing #filtering-incoming-events for
which we need to include `event-filtering-additional-feature.md`. This
commit adds that missing include.
Since it is now possible to generate export with no usable owner
accounts, this adds a couple of warning notes in the "Start export?"
confirmation modal:
- A note indicating the number of unusable user accounts after export
→ import due to inaccessible user emails.
- If there are any owner/admin accounts in that list, an additional
note will display their names.
Fixes#34275.
Earlier we were using asymmetric cryptography.
We were using libsodium "sealed box" which is unauthenticated
by design. The sender could have been anyone, as long as they
had the receiver's public key.
We had authenticity but only because the device's public key
is effectively kept secret. We were relying on the public key
being kept secret - which was a security risk. It's easy to
end up with code somewhere that treats the public key as public,
and can leak it.
This commit makes changes to use symmetric cryptography -
libsodium's `crypto_secretbox_easy` which provides authenticated
encryption using XSalsa20 and Poly1305.
`push_public_key` is replaced with `push_key` and it represents
a base64 encoded 33-byte value: one-byte prefix followed by 32-byte
secret key generated by the client.
The prefix `0x31` indicates the current cryptosystem in use.
It allows for future extensibility - for example, `0x32` could denote
a different cryptosystem.
Involves API changes to replace the `push_public_key` parameter
with `push_key` in `/api/v1/mobile_push/register` endpoint.
Signed-off-by: Prakhar Pratyush <prakhar@zulip.com>