Previously, if the topic input was disabled when "Move messages"
modal was opened, the clear button was not added to the DOM
which caused the bug where the clear button was not shown even
if the topic input was later enabled because user was allowed to edit
topics in the selected channel.
Users who don't have permission to edit topics cannot move messages
from empty topic to the channel where empty topics are not allowed.
So, those channels should not be shown in the channel selector in the
"Move messages" modal.
Since we know it's a topic header, we don't need a conditional
here. And the one we'd had didn't distinguish `undefined` from `""`,
and thus broke these controls for general chat.
Document the personal setting for displaying or hiding the unread
message summary counters in the left sidebar shown next to the
home view and channels header.
Fixes#35076.
Co-authored-by: Alya Abbott <alya@zulip.com>
This commit adds error message for handling "dataclass_type"
pydantic errors. An example when this occurs is when group
setting value passed to update the setting is invalid like group
ID is passed directly and not in an object with "new" field and
other invalid values as well.
This renames WebhookConfigOption's "description" field to "label". That
name is consistent with how config_data is declared on the events and
API level, it's also a more accurate description of how the field is
used in the web client, as the UI label element for the config_options.
Currently we have 2 implementations of `config_options`:
- It's used for generating optional webhook URL parameters. These
settings also come with custom UI in the "Generate integration URL"
modal.
- In `/bots` API, it's used as schema for the bots `BotConfigData`. Each
type of bots have different ways of defining their `BotConfigData`
fields. Currently, only embedded bots use `BotConfigData`, and only the
incoming webhooks use `config_options` to configure a bot's
`BotConfigData`; thus, the `config_options` remain unused.
To avoid confusion as to which implementation of `config_options` is
used by an integration, this separates the first use case -- to generate
optional webhook URL -- to a new field called `url_options`. Thus, the
`config_options` field is reserved only for the second use case.
This changelog for feature 318 was added in this commit:
d1ff871523. The changelog stated that it
added a new field called `config_options` to the
`realm__incoming_webhook_bots` field, but in reality, the it renamed an
existing field called `config`.
This fixes the changelog for feature 318 and its changes note in the API
documentation to correctly describe the change.
This PR modifies the Preferences button to an action button in neutral,
and 'Send a test notification' into a medium-emphasis neutral action
button.
Fixes: #34535
Co-authored-by: Yatin Sharma <aman1312sharma@gmail.com>
In the past, some API documentation changes were merged with
unresolved placeholders like "ZF-..." instead of actual feature level numbers.
This commit introduces a GitHub Action that scans the API docs for
any occurrence of "ZF-". If found, it will fail the CI check and block the
commit from being merged into main.
This ensures that all feature level references are properly updated before merging.
When pasting a long piece of text into the compose box (or
message edit textarea), we show a banner giving an option to
put the text into a file and upload it.
The banner is only shown if the text is larger than
`MINIMUM_PASTE_SIZE_FOR_FILE_TREATMENT`.
If the user chooses to "convert to file", the textarea content is
restored to its state before pasting and a file with the pasted
content is uploaded. The banner is hidden as soon as any change is
made to the textarea content to avoid inconsistent state and
confusion.
Fixes#33107.
Co-authored-by: Aditya Chaudhary <aditya.chaudhary1558@gmail.com>
Adds support for syncing group memberships for a user when logging in
via SAML. The list of group memberships is passed by the IdP in the
zulip_groups SAML attribute in the SAMLResponse.
Having a logger object will be helpful in the upcoming commit to pass as
argument to sync_groups. We use the root logger here (sticking to
original behavior) rather than setting up `getLogger(__name__)` to avoid
breaking a large number of tests which assert logs content - as there
doesn't seem to be any major upside to using a separate logger for this
file.
This commit extracts the method which handles both relative
URLs starting with `/user_uploads` and `user_uploads`,
converting the latter into former, and attaching the path_id
to it.
This is a preparatory commit to #27007
Previously, when title of media element is updated
the change is not reflected in lightbox view.
This is because the title of the element is cached
from the last time when the media element was opened in
lightbox.
This is fixed by invalidating a message's asset_map cache
whenever the content of message is edited.
Fixes#21311
This commit indexes the `asset_map` cache entries with message_id
so that it can be helpful to invalidate cache of a certain message
when its content is edited.
This is a preparatory commit to #21311
This commit adds a feature, wherein when someone moves a user's
message to be the first message in a topic, and the user has the
Automatically follow topics initiated enabled, then the new topic will
also be followed by the user.
Similarly, if the user has Automatically unmute topics initiated
enabled, the moved topic would also be unmuted.
Fixes#28408.
The payload might contain colons and commas within keys and
values entered by the user. Simply splitting the fields using
", " is therefore unreliable and can lead to incorrect parsing.
Hence, this commit updates the logic for splitting fields in
the pretty data of the Jotform payload.
Fixes#32461.
This commit increases the size of the "check" icon to better fit with
the rest of the icons in the Web UI, especially in the context of the
message headers.
This commit updates the topic edit icon in the recipient row to a new
"pencil" icon (added in the same commit), replacing the previous "edit"
icon for consistency with the rest of the icons used in the same space.
This commit removes the "unresolve topic" button from the recipient row
controls in the message header. The unresolve topic option is already
present in the "Topic Actions" menu, and the operation is rare enough
that it does not warrant a dedicated button in the recipient row.
This commit improves the error handling for the resolve/unresolve
button in the message header bar, by showing an error tooltip when
the operation fails.
This commit improves the loading indicator on the resolve/unresolve
button via the `show_button_loading_indicator` method from
`web/src/buttons.ts` module.
This commit is part of a series of commits aimed at updating the message
header buttons to use the new icon button component which has consistent
styling across the Web UI and offers a larger clickable area for the
users.
Due to deviation from the structure at
"web/templates/components/icon_button.hbs", this commit applies the
icon button classes directly on the template rather than using the
component partial directly in code.
Fixes#34477.
This commit is part of a series of commits aimed at updating the message
header buttons to use the new icon button component which has consistent
styling across the Web UI and offers a larger clickable area for the
users.
This commit also adds a tooltip to the topic actions menu, and updates
the aria-label to match the same.
Fixes part of #34477.
This commit is part of a series of commits aimed at updating the message
header buttons to use the new icon button component which has consistent
styling across the Web UI and offers a larger clickable area for the
users.
In this particular commit, the code doesn't directly use the
`icon_button` component but instead uses the icon button utility
classes to style the `a` tag`. The reason behind this choice is that we
want to keep the browser support associated with the `a` tag intact,
such as previewing the URL link when hovering over it.
This commit also replaces the legacy font awesome external square link
icon to the newer "external-link" icon from the Zulip font icons.
Fixes part of #34477.
This commit is part of a series of commits aimed at updating the message
header buttons to use the new icon button component which has consistent
styling across the Web UI and offers a larger clickable area for the
users.
This commit also replaces the legacy font awesome check icon to the
newer "check" icon from the Zulip font icons.
Fixes part of #34477.
This commit is part of a series of commits aimed at updating the message
header buttons to use the new icon button component which has consistent
styling across the Web UI and offers a larger clickable area for the
users.
This commit also replaces the legacy font awesome check icon to the
newer "check-x" icon from the Zulip font icons.
Fixes part of #34477.
This commit is part of a series of commits aimed at updating the message
header buttons to use the new icon button component which has consistent
styling across the Web UI and offers a larger clickable area for the
users.
This commit also replaces the legacy font awesome pencil icon to the
newer "edit" icon from the Zulip font icons.
Fixes part of #34477.