The newly added "can_create_write_only_bots_group" and
"can_create_bots_group" were not added in "Permissions" panel
of groups UI if the group has that permission and this commit
fixes it.
We also add a function called in ui_init.ts to make sure that
the settings data defined in settings_config.ts used for
"Permissions" panel contains all the group settings.
Value for "can_administer_channel_group" passed in stream
creation event was incorrect when there was no value passed
for the setting while creating the stream and thus the setting
was set to anonymous group containing stream creator as default.
This was because code for creating setting_groups_dict, which
is used to send setting values in the stream creation event,
incorrectly assumed that defaults for all settings is a system
group.
This was not noticed before because we pass all the settings
when creating streams using webapp, but can be reproduced
by creating streams using API without passing any value for
"can_administer_channel_group".
This commit adds a note to the confirmation banner when a message is
scheduled for less than the MINIMUM_SCHEDULED_MESSAGE_DELAY_SECONDS.
The approach here is to use the flatpickr's onClose method.
onClose callback is triggered when the user selects a date. We compare
the selected date with the minDate set in the flatpickr and based on the
time set by the user we update the flag
minimum_scheduled_message_delay_minutes_note.
Fixes: #28503.
Co-authored-by: ankur prabhu <ankurprabhu0531@gmail.com>
This commit prevents sending the message when pressing
enter while on focus at topic input box.
The variable target_sel has a value of '#stream_messagee_recipient_topic'
instead of 'input#stream_message_reciepient_topic', which is one of the
reason of this bug.
Fixes: #32596
Co-Authored-By: Aman Agrawal <amanagr@zulip.com>
Creates a new `filter_text_input.hbs` file to enhance reusability of the
filter component.
The set_up_event_handlers function of `list_widget.ts` has been
modified to listen to the click event of the `.clear-filter` selector.
Additionally, the CSS for the input filter has been updated.
Referenced PR #19578.
Co-authored-by: Nikhil <59444243+nikhilmaske-2001@users.noreply.github.com>
Fixes#32599.
The integrations - GoSquared, Greenhouse, OpsGenie and Zendesk - have
been using `000.png` as their example screenshots, renamed them to
match the default name `001.png`, to avoid passing them as arguments.
Instead of a separate `test_integration_doc_images` function, the test
is executed as part of `test_integration_doc_endpoints`, to optimize
performance by re-using the doc response.
Function call hierarchy:
`_test` -> `_check_basic_fetch` -> `get_doc` -> `client_get`
All the functions in the chain return the request returned by
`client_get`, except for `_test`.
Now, `_test` also returns the response from the URL on the root
subdomain when the ROOT_DOMAIN_LANDING_PAGE is set to False.
This enables us to re-use the fetched reponse in our test functions,
and limit each URL to a single call of `client_get`.
Remove images that are no longer referenced in the integration docs.
This is in preparation for adding a test that checks image links in
integration docs. This commit is required to make the test pass.
The content `look` does not render as a
link, nor an image upload (were it to `/user_uploads/...`). The
`` syntax is intended for inline images, but unsupported in
Zulip, and as such does not link or render as _anything_.
Ensure a newline between message content and any attachments.
This removes a race which parallels 6f20c15ae9, but in the import
path; thumbnails could have been generated while the message content
was being rendered, leaving them permanently with spinners.
The act of rendering the message markdown is what enqueues the
thumbnailing of referenced images; previously, images were enqueued at
least _twice_: once when the row was created, and again for every
message they were referenced in.
This means that only ImageAttachment row needs to be fetched, and
removes the need to pass around an extra parameter. This
denormalization is safe, since in general Attachment rows are
read-only, so we are not concerned with drift between the Attachment
and ImageAttachment tables.
We cannot make content_type non-null, since while the both the
`content_type` column in Attachment and populating that from requests
predates the ImageAttachment table, we have both backfilled
ImageAttachment rows to consider, and imports may also leave files
with no `content_type`. Any backfill of currently-null `content_type`
values will thus need to update both tables.
This change fixes a race condition when importing. ImageAttachment
rows are imported before rendering Messages, which are both before
importing Attachment rows; if the thumbnailing finished after the
Message was imported but before Attachment rows were imported, then
the re-rendering step would not know the image's content-type.
This commit adds support for empty string as a valid topic name
in syntax for linking to channel messages.
The server stores it after empty string is replaced with
`realm_empty_topic_display_name` and wrapped with an <em> tag.
The web client parses the rendered_content and updates
the topic_name part in the HTML with topic_name in user's language
+ wraps it in a <span> tag with 'empty-topic-display' css class.
Earlier, pasting a message_link for a message in empty string topic in
the compose area resulted in #**channel_name@100** syntax instead of the
correct #**channel_name>@100** syntax.
This commit fixes that bug.
This commit adds support for empty string as a valid topic name
in syntax for linking to topics.
The server stores it after empty string is replaced with
`realm_empty_topic_display_name` and wrapped with an <em> tag.
The web client parses the rendered_content and updates
the topic_name part in the HTML with topic_name in user's language
+ wraps it in a <span> tag with 'empty-topic-display' css class.
This commit updates 'handleStreamTopic' & 'handleStreamTopicMessage'
to use handlebar templates for the rendering.
We avoid using JS template literals for constructing complex HTML
that requires escaping.
On smaller screens, where left_sidebar is hidden by default,
clicking the `New topic` and `New direct message` buttons did not
close the left_sidebar because these buttons are located within
the left_sidebar.
Clicking these buttons made the cursor to focus over the compose
but the compose remained half hidden by the left_sidebar.
This commit enables the left_sidebar to automatically hide
when these buttons are clicked by introducing the
auto-hide-left-sidebar-overlay class on these buttons.
Previously, clicking on left_sidebar popovers on smaller screens,
where the left_sidebar is hidden by default, caused the left_sidebar
to close automatically. This required users to repeatedly reopen
the sidebar if they wanted to perform multiple actions on the popover.
This commit resolves the issue by adding the
no-auto-hide-left-sidebar-overlay class to the left_sidebar popovers.
Fixes: #27625
We now hide the "Organization permissions", "Channel permissions" and
"User group permissions" heading if there are no permissions
under that section after removing the permission.
Also, "This group has no assigned permissions" text is shown if the
last permission for that group is removed.
This means that the URL is only hard-coded on the bouncer side. That's
useful, because now we'll be able to change the URL and only need a
bouncer deployment for users to get the new URL when they encounter
HostnameAlreadyInUseBouncerError. As opposed to self-hosted servers
being stuck with an outdated docs link hardcoded in their
register_server.py.
We now use "zulip-icon zulip-icon-all-messages" for the direct
message feed icon in the left sidebar. Previously the icon used
was "fa fa-align-right".
The functionality of gravatar can break anonymity if
the user has had a gravatar account set up previously.
This option allows specifically cloud instances to
have gravatar disabled selectively.
An even better way than the current json error message recommending the
--registration-transfer option is to return an appropriate error code
and have that get picked up by the register_server command.
The register_server command can then display a more comprehensive,
better formatted error message with proper whitespaces and a pointer to
the documentation.