Pressing `r` to open compose box, or search via hotkey didn't work
for gear menu while it worked for other popovers. So, this is an
attempt to unify that behavior so that if the hotkeys are not
handles the navbar_menus popovers, then can be handled elsewhere.
To accommodate both keydown and keyup events, this commit updates
the function signature to accept both `JQuery.KeyDownEvent` and
`JQuery.KeyUpEvent` types. An example of using keyup event is in
`poll_widget.ts`.
This commit sets the "disabled" property of buttons using `.prop()`
method instead of `.attr()`. The `.prop()` method satisfies type
check requirements for boolean properties like "disabled", while
`.attr()` method requires string type property.
Modals like those for Read receipts, Schedule message, Message edit
history, User profile, etc would not close when the hash changed.
Now we close any active modal whenever the hash changes; we add a new
function in `modals.ts` to do this, and call it from `hashchange.js`.
This commit removes the 'development' guard and makes
the UI changes related to the 'Follow Topics' project visible
outside the development environment.
Cleans up the older UI elements related to mute and unmute topics.
This commit adds the pronouns custom profile field to the typeaheads in
the composebox along with the necessary node tests.
Details of the implementation:
- Added logic to display pronouns in ( ) next to the user's name when
the user has a non-empty pronoun-type custom profile field.
- If multiple pronoun fields exist in the organization, the
implementation selects the one earlier in the list of custom profile
fields.
- No pronouns are displayed if the selected pronoun field is empty.
Fixes#26924.
This seems to have left out in the renaming of recent view from
recent table -> recent conversations -> recent view.
`recent_view_filters_height` being `0` resulted in table having
more height than it should have, so when focus was set on a
hidden row, it somehow scrolled the whole table.
When we send a message and that causes a topic to be automatically
followed or unmuted due to the automatic visibility policy settings,
we tell the user via a post-send-message compose banner.
The "notify_unmute" banner is not shown when the topic has already
been unmuted or followed due to these policies.
Fixes part of #26900.
We did not show the streams to subscribe in dropdown in user
profile modal when user is not allowed to subscribe others
even in the user's own profile modal which is not correct.
This commit fixes it to show the streams in dropdown for
user's own profile irrespective of whether user is allowed
to subscribe others or not.
There is no need to filter down the streams returned
by get_streams_for_user to the streams for which
stream_data.can_subscribe_others is true, as
get_streams_for_user(user_id).can_subscribe only includes
the streams for which stream_data.can_subscribe_others
is true.
This commit removes the unnecessary filter call.
This commit renames "default" views to "home" views in the setting
labels, keyboard shortcuts list, help documentation and its urls.
This commit does not do changes in variable and class names, setting
field in database, API docs and changelog.
Fixes part of #27251.
Rerendering of "all messages" is slow, and by definition, not visible
to the user, so make sure the browser gets an opportunity to rerender
the content that is visible before starting that expensive
computation.
Fixes#27208. Fixes#27207.
We only process messages from all_messages_data and special data
fetched for recent view only.
This avoids us having a conversation present in recent view which is
not contiguous due to loading a random old conversation.
Also, to ensure displayed conversations are contiguous while we are
loading data, we don't show message list data until we have found the
newest message in the list.
We were using id before to increase their specificity, but
since it is possible for multiple empty_list_widget_for_list/table
to be in DOM at the same time, we should use a class here. Used
`!important` here so that we can force our padding where these
classes are used.