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.
When creating a new organization, the new user default for email
address visibility is now limited to admins for most organization
types. The exceptions are education organizations, which have the
default set to moderators, and business organizations, which have
the default set to all users.
Fixes#34859.
In the analytics tests, where users are created as part of the set up
of the test, we want to get users by the delivery email and not the
visible-to-other-users email field.
Prep for setting default new user email visibility in realm creation
by the organization type.
Set organization type as business when making realms for tests,
and get newly created users with delivery email.
Prep for changes to the default email visibility setting for new
realms based on organization type.
These links do not work for the general help center docs as there
is no Zulip organization for the relative link to go to. Instead
we link to other help center documentation that's relevant to the
context of these articles.
On removing a user or group pill from input, the user or group
was not being removed from the table. This was because of
onPillRemove not being set for the pill widget as it was
removed by mistake while doing other changes in ec65dad063.
In user signup context, we are okay with there being an existing mirror
dummy user with the matching email - at the end of the signup, that
mirror dummy account will be activated and control of it given to the
user doing this signup.
However, in email change contexts (SCIM API and regular email change
flow), we can't change an account's email address to the address that
already belongs to an existing mirror dummy user.
To avoid subtle bugs like this, we make callers have to explicitly
specify whether existance of mirror dummies with the matching email
address is okay or not.
We obviously shouldn't set such objects to REVOKED as that introduces
misleading information into our data. USED objects cannot be re-used, so
they can stay as they are.
Just like with signup confirmation links, we shouldn't trigger email
change based on a GET to the confirmation URL - POST should be required.
So upon GET of the confirmation link, we serve a form which will
immediately be POSTed by JS code to finalize the email change.
The get_object_from_key call should be included in the transaction - we
shouldn't modify the object if the rest of the function fails to
actually confirm the email change (e.g. due to IntegrityError occurring).
This commit is a preparatory step for allowing organization owners to
reset user preferences, defines a set of sensitive user settings
that will be protected from resets by organization owners.