We now send "realm_user/update" (and "realm_bot/update" for bots)
events with "is_active" field when deactivating and reactivating
users, including bots.
We would want to use "remove" event for a user losing access
to another user for #10970, so it is better to use "update"
event for deactivation as we only update "is_active" field
in the user objects and the clients still have the data for
deactivated users.
Previously, we used to send "add" event for reactivation along
with complete user objects, but clients should have the data
for deactivated users as well, so an "update" event is enough
like we do when deactivating users.
Instead of using the stream name for the incoming webhook URL that is
generated in the web-app, we used the stream ID instead.
Also, limits the streams listed in the dropdown widget to streams that
the bot owner has permission to post in.
See also 69e10b4dae.
Even though opts.msg_list can be undefined, we still want to retry
loading messages for it since our code needs that data regardless
of opts.msg_list being undefined.
If the user has no messages, `message_list_data` can be empty,
so, in that case, we just use the current oldest_message_timestamp.
The bug can also be reproduced if the last 400 messages were
in a muted topic for the user and we process recent_view_message_list_data
before all messages data.
We still process the remaining logic in `set_oldest_message_date` to
update has_found_newest/oldest.
This switches to our preferred dash-separated classnames
instead of underscore-separated, and also updates the
classname to be differentiable from users that aren't
part of the current narrow.
Until the next commit that splits the buddy list, the
name is a bit inaccurate since it still contains all
the users.
This was pvreviously covered by tests for the buddy list.
We shouldn't rely on other code to complete code coverage
for this module. In the future it would be good to add
more tests to the lazy set tests to directly cover lazy
set functionality.
This commit fixes the behavior of trying to remove the selected
text when selection is made from start in stream membership
input and compose box dm using backspace button.
Previously the selected text was not removed if no typeahead
was shown for the text and it instead removed the last pill.
Now we remove the selected text and not any input pills on
pressing the backspace button irrespective whether tyepeahead
is shown or not.
This commit updated the code to remove pill only when there is no
other text or when the pointer is at start of input but its selection
length is 0, in the input and let it follow the default behavior in
cases when there is any text (other than user pills) in the input
to fix the bug.
This is a case where the use of alpha channels in HSL color values
shows its limits.
The use of an alpha channel is necessary for the background
elements for the top navbar elements, because they sit over the
top of the navbar's bottom border (actually an inset shaddow).
However, it's impossible to use the alpha-channel based color on
elements like the unread dot, where the border actually sits on
top of the element itself--meaning that the effect would be a
larger dot with an imperceptibly darker ring around it.
What this commit does is use a technique suggested by Anders
Kaseorg for using CSS's `color-mix()` functional notation to
calculate an opaque version of the alpha color for use on
elements that do not or cannot directly take the color with
the alpha channel.
See CZO discussion:
https://chat.zulip.org/#narrow/stream/6-frontend/topic/alphas.20in.20color.20definitions/near/1670102
`recent_view_focusable` class should be set on element whose
children can receive focus as per
`$topic_row.find(".recent_view_focusable").eq(col).children().trigger("focus")`
We should remove this overly defensive code and remove the `undefined`
type from the return type of this function to avoid handling unexpected
`undefined` values in the downstream code.
Now that the "new organization" form is quite tall, we were seeing
this autofocus logic causing the browser to automatically scroll to
the middle of the form (to reach the first editable input), which felt
like a pretty bad user experience.
This commit renames default_view and escape_navigates_to_default_view
settings to web_home_view and web_escape_navigates_to_home_view in
database and API to match with our recent renaming of user facing
strings related to this.
We also rename the variables, functions, comments in code and class
names and IDs for elements related to this.
The logic added in b57ebe717e introduced
a different bug, namely that if you had selected text in the input,
Backspace would delete the input pill itself, not your selected text.
Fix this, without re-introducing the old bug, by checking explicitly
if there's a range selected before inspecting anchorOffset.
Also improve the comments.
Fixes#19544.
This fixes a state where the expanded left sidebar appears under
the navbar at the smallest mobile views.
It also provides a stop-gap fix for the right sidebar's USERS
heading, making it align better (but certainly not perfectly)
with the left sidebar's.
3ac0c3c401 incorrecly removed
specificity declarations needed to prevent that CSS from applying to
the right sidebar, which hasn't been properly prepared for this
change.
This brings modern alignment methods to all vdots instances,
including in views, streams, and topic rows.
This also aligns the vdots in the condensed view row with
all the others in the left sidebar.
In the "Add a new bot" modal, there was '?' next to the bot type field
that was confusingly showing a tooltip describing incoming webhooks,
regardless of the bot type have been selected.
The tooltip is removed from the '?' and it is linked to the help center
article explaining all the different bot types.
Fixes#27047.
- Updates the `?` link on "Topic notifications" and "Topic settings"
to go to the new /help/topic-notifications page.
- Adds links to /help/follow-a-topic and /help/mute-a-topic.
Fixes#27297.
This is according to Vlad's design in figma which differs from the
style we have in `tooltip-hotkey-hint`.
I used font-weight: 500 instead of 400 as it looked nicer and since
Vlad used Source Sans Pro as font-family which we don't have.
This helps us add elements like hotkey hint which can take more
space that available for text. There are no visual changes.
Removed some duplicate properties too.
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`.