This commit disables the save button when the topic name is considered
as empty as part of the `realm_mandatory_topics` being set to True.
Since disabled elements do not fire events, it is not possible to
trigger tippy tooltips on disabled elements – such as the Save button
in the inline topic edit UI. Thus this commit adds a tooltip to the
disabled save button by wrapping/unwrapping it inside a `span` wrapper
pragmatically via the `ui_util.disable_element_and_add_tooltip` and
`ui_util.enable_element_and_remove_tooltip` helper methods.
This commit adds the `invalid-input` class to the inline topic edit
input element when the new topic name is considered empty as a result
of realm_mandatory_topics property being set to True. This adds the
red glow borders to the invalid input field, which visually
communicates that some thing is wrong with the new topic name.
Previously, anytime Enter was pressed anywhere inside the inline topic
edit UI, it led to the submission of the form. This logic resulted in
the unintentional saving of the new topic name when Enter was pressed
even on the cancel button; which should have actually closed the inline
topic edit UI instead.
This commit makes sure to only save the new topic name when the user
presses enter when focused on the text input element or the save button.
This commit improves the design of the inline topic edit UI by making
the following changes:
- Increases the dimensions of the text input element.
- Fixes the font scaling inside text input element.
- Replaces the old save and cancel buttons with the new icon buttons.
Fixes#33155.
This commit hides all the recipient bar controls from the recipient
bar when the topic edit UI opens.
Previously we used to only hide some of the controls while some other
were still visible alongside the save and cancel buttons from the
inline topic edit UI which led to confusion.
Fixes#33567.
We have used the flag `is_modifying_message` since it's more generic
than an archived channel specific flag and helps us understand better
what is the condition where we do not want to allow archived channels.
We have not added tests for message edit since it has an existing test
for this.
With the larger, flexibly sized right sidebar, we want to allow
for the middle column to expand to fill its place even outside of
the "Use full width on wide screens" setting.
Some browsers, notably Safari on both iOS and macOS, are not yet
aligned with the CSS specification, which does not force layout
containment but does force an independent formatting context
(see https://github.com/w3c/csswg-drafts/issues/10544).
The little test here will allow us to deliver em-aware container
queries to browsers that are spec aligned, and fall back to media
queries in browsers that are lagging.
In our css variables, we were using sidebar and column interchangably.
But, sidebar is 10px less wider than the column. This commit makes no
behaviour change, but renames variables to use column where necessary
and uses variable for sidebar instead of a fixed 240px value.
Use a more instructive placeholder instead of "Topic" when
topic is not mandatory in a realm.
Updated placeholder:
'Enter a topic (skip for general chat)'.
Previously, the topic / direct message recipient input box was always
focused when the compose select recipient dropdown got closed, even if
the user clicked elsewhere. This resulted in unwanted trigger of
onFocus event listener etc.
This adds an early return to ensure focus updates only when an item
is clicked.
This commit adds support to show `realm_empty_topic_display_name`
value in the composebox topic typeahead for empty string topic.
The item is italicized.
The 'New' label is not shown for empty string topic.
This commit also attempts to fix a bug, present in main, where a
draft restored directly to the compose box loses its original topic
upon switching to other topic narrows.
Co-authored-by: Prakhar Pratyush <prakhar@zulip.com>
Zulip now supports empty string as a valid topic name.
For clients predating this feature, such messages appear
in "general chat" topic. Messages sent to "general chat" are
stored in the database as having a "" topic.
This commit adds a migration to rename the existing
"general chat" topic in the database to "".
Fixes parts of #32996.
Previously, the typeahead's header html used to be updated only
once -- after it is shown.
This caused stale state in compose box typeaheads -- when user
starts with an `@`, the typeahead is shown for the first time,
and the header html is rendered. Then when next character is
`_` (silent mention), the header html is no longer updated since
it is already updated once when `@` is used.
This is fixed by updating the typeahead everytime the user string
is updated.
Updates "help/manage-a-user" links that are contextually for general
information about users to go to the new "help/introduction-to-users"
article.
Adds a link to "Manage a user" in the related articles section of
the new intro to users article.
Note that the puppeteer tests only tested
copying whereas the node tests only tested
pasting, which is why the puppeteer tests
for pasting and node tests for copying are
absent after this split.