"max_user_group_name_length" is now defined in user_groups.ts
instead of user_group_edit.ts because we would use that value
in further commits in user_group_create.ts and importing it
from user_group_edit.ts would result in import cycle.
We missed to update this when changing our method of doing DNS lookups
in e5a0b3b3c5.
This caused these tests to make outgoing requests and thus not work
when offline.
This commit adds support to display `realm_empty_topic_display_name`
value in the SETTINGS/TOPICS table for topics having the actual
value of empty string.
This commit adds support to display `realm_empty_topic_display_name`
value in the confirm dialog for unstar all messages in topic,
for topics having the actual value of empty string.
This commit adds support to display `realm_empty_topic_display_name`
value in the scheduled messages overlay UI for topics having the
actual value of empty string.
This commit adds support to display `realm_empty_topic_display_name`
value in the delete topic modal for topics having the actual value
of empty string.
This commit adds support to display `realm_empty_topic_display_name`
value in the topic actions popover for topics having the actual value
of empty string.
These topic actions popover can be accessed via kebab menu in:
* Left sidebar topic list
* Topic rows in inbox view
* Message headers
This commit adds support to display `realm_empty_topic_display_name`
value in the recent conversations view for topics having the actual
value of empty string.
This commit ensures that narrow links involving
empty topic names, such as:
* #narrow/channel/1-general/topic//near/12345
* #narrow/channel/1-general/topic/
work correctly in the web client.
This change ensures proper navigation and behavior
for such links.
Previously, the client tweaked messages sent in a channel with
an empty topic box to use the topic "(no topic)".
This commit updates the behavior to stop applying that tweak.
Messages will now be sent with an empty string as the topic
as we now support the empty string as a valid topic name.
This commit adds `allow_empty_name: true` to the following
endpoints to receive empty strings as topic name when such
topics are available:
* `GET /messages`
* `GET /messages/{message_id}`
* `GET /messages/{message_id}/history`
Also, it adds `empty_topic_name` client capability for spectators.
These changes are part of the broader effort to enable
support for empty string as a topic name.
Since Zulip channel and topic names cannot
contain newlines, we should not show channel
or topic suggestions if the `#**stream>topic`
syntax is spread across multiple lines.
So we tweak the regexes to exclude \n.
We do not need to change the regexes in `marked.js`
or `markdown/__init.py__` since
the message text is already split at newlines
before being matched against those regexes,
so a newline will never be present during matching,
both in the frontend and the backend.
This commit makes the modal title responsive for font-sizes 12px to
20px. For #add-poll-modal, we remove the .modal__title rule for
font-size set to 1.375em. That removal technically increases it's font
size from 1.375em to 1.5714em, but that new font size is the same as the
previous 1.375rem that was changed in
e80a23642d (r1904958062)
This commit simplifies a compose_validate test by
using FakeComposeBox.
It also exposes $send_message_form to the callers.
(The general idea here is that for any individual
test, we don't want the developer to have to
switch between thinking about low-level zjquery
idioms and higher-level abstractions.)
This commit also removes the use of mock_template,
since the template in question generates trivially
easy html to deal with (and we verify the actual
effects to the DOM).
Within FakeComposeBox I **mostly** want to keep the code
concrete (using explicit selectors), but these two
concepts are an exception to that rule:
content textarea
preview message area
In particular, for the DOM element that is the textarea
where you compose your message in markdown (i.e. the
main edit area), the real code has different ways of
expressing that in jQuery.
Since the content area is a singleton on the entire page,
a lot of code sensibly does an id search for the element.
There are some other pieces of code that do another
sensible thing, which is to search for the DOM element
within the container by the class name of .message-textarea.
This aliasing may cause some headaches down the road
for testing, but this commit should make it a little
easier to work around that in the future.
For now compose_helpers only includes FakeComposeBox.
I don't love either of the names, but some of the alternatives
that I thought of have their own tradeoffs.
The compose_helpers module will soon have other
helper classes or functions in it, possibly including
the mock_banners helper from lib/compose_banner.
I don't want to step on mock_banners yet, because
I have two possible plans for improving that code,
and I haven't decided what's best yet, so for now
I don't want to step on it or move it, so I am
just leaving that alone for now.
Gotta start somewhere.
We now allow users to create voice calls when their call provider is
BigBlueButton. This is done by creating a call where cameras are
disabled for all participants in the call -- a voice call, and making
only the call creator the moderator, so no one else can switch a voice
only call to a video call.
Also, we stop using the deprecated fields "attendeePW" and "moderatorPW"
in the Big Blue Button API, and use "role" instead.
The side effects are that now we only support BigBlueButton 2.4 and
above, and that only the call creator is a moderator and all other
joinees are viewers for all BigBlueButton calls.
Fixes: #26550.
Most of the code for the integration was written by Nehal.
Apoorva made the changes that resolve conflicts which were
introduced because of the `typed_endpoint` decorator.
With some documentation tweaks by tabbott.
Co-authored-by: Apoorva Pendse <apoorvavpendse@gmail.com>
Previously, the read-receipts dialog did not update if
someone viewed the focused message while the dialog
box was open. Users had to close and reopen it to see
the updated receipts. Now, the dialog refreshes every
minute to keep the read-receipts updated while open.
Fixes: #24716.
The NOT EXISTS structure might be better optimized by the Postgres query
planner and might lead to slightly better performance than the id NOT IN
(<subquery>) structure.
This can happen if `post_render` is called to show loading indicator
before the submit button is rendered. This results in the submit
button having no width / height dimensions.
Fixed by ensuring post_render is called post render.
This commit sets the default for user_list_style to
USER_LIST_STYLE_WITH_AVATAR so that the organization
level defaults for new users of this setting is set
to show avatar in right sidebar for new orgs.
`data-video-original-url` is duplicative with the `href` on the
surrounding `a` tag, which is never run through the Camo URL
translation. The `data-video-original-url` attribute was never
documented, and is not used by either mobile project, so is simply
removed.