Commit Graph

29 Commits

Author SHA1 Message Date
Aman Agrawal
f7abffadd7 buddy_list: Make insert_or_move a bulk operation. 2025-01-10 11:17:46 -08:00
Tim Abbott
d6520a01a3 buddy_data: Don't require coverage for error logging. 2024-12-17 11:18:45 -08:00
Aman Agrawal
3e93bec936 buddy_data: Check conversation_participants against legacy data.
We expect to remove this check once we've confirmed the logic is
correct.
2024-12-17 11:03:46 -08:00
Aman Agrawal
63584f3076 people: Extract function to check if user is a narrow participant.
To be commonly used in ConversationParticipants.
2024-12-17 11:03:46 -08:00
Karl Stolley
67a67897f9 user_circles: Introduce status-based hyphenated classes. 2024-12-13 14:33:23 -08:00
Anders Kaseorg
4f297bee32 recent_view_ui: Make tooltip data compatible with buddy_data.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-12-11 12:12:07 -08:00
Anders Kaseorg
77f97762c6 eslint: Fix unicorn/explicit-length-check. (#32666)
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-12-11 09:19:46 -08:00
evykassirer
2db0a851e1 buddy_list: Fix bug where participants weren't filtered on search.
This was introduced in ebe15dcf25 where I
mistakenly had us include _all_ participants  _always_ even if there was filter
text present. This commit fixes that.
2024-11-27 16:27:40 -08:00
opmkumar
c4ad9d8e09 tooltip: Remove "last active" time from deactivated user tooltip.
Removes "last active" time from deactivated user tooltip and instead adds
"This user has been deactivated." Also, in the deactivated bot tooltip,
"This bot has been deactivated." has been added.

Fixes #32136.
2024-11-13 10:39:09 -08:00
Anders Kaseorg
ec3177c834 web: Add explicit extensions to imports.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-11-13 09:18:56 -08:00
Anders Kaseorg
52e59a9605 web: Add setters for rewired variables.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-11-08 12:38:14 -08:00
evykassirer
782fe316ca buddy_list: Support unread marker for avatar mode. 2024-11-05 15:10:29 -08:00
evykassirer
94368dcf2b buddy_list: Add option to view avatar in buddy list.
Fixes #19999.

This change adds an option to show users' avatar and
status in the buddy list. Previous options are still
available in the settings menu.
2024-11-05 10:48:15 -08:00
evykassirer
ebe15dcf25 buddy_data: Don't filter out inactive participants.
This was filtering out users that were marked as
inactive for more than a year, but we want to show
all participants, including inactive ones.

More discussion on this here:
https://chat.zulip.org/#narrow/channel/9-issues/topic/In.20this.20conversation.20and.20invisible.20mode/near/197309
2024-10-31 23:23:56 -07:00
evykassirer
205b20e7df buddy_list: Rename 'Search people' to 'Filter users' for consistancy.
This is part of #31974.
2024-10-31 16:29:49 -07:00
evykassirer
9c8cc8c333 buddy_data: Add participants to the top of sorted user list.
This was causing a bug where the participants weren't necessarily
all getting rendered, specifically when there were many subscribers
to a channel, because we render users in batches as buddy list
scrolls, and those users would only show up after some scrolling.

This fix makes sure we always load the participants first.
2024-10-02 09:33:48 -07:00
evykassirer
f5be62f60d buddy_list: Include offline users in participants list for large orgs. 2024-09-30 16:35:13 -07:00
evykassirer
9b8df679d7 buddy_list: Fetch *all* subscribers for small channels in big orgs.
Followup to #31645. I tweaked the filter in `maybe_shrink_list`, but
that function works with user ids originally fetched in
`get_filtered_user_id_list`, which was only fetching ids of users
that had been recently active.
2024-09-22 09:28:50 -07:00
evykassirer
5ddcbb8516 buddy_list: Show offline subscribed users for small channels in big orgs.
Previously, for big orgs, we hid all offline users in the buddy list to cut down
its size. But this can be weird for small channels where you might want to see
who's in the channel. This commit makes a tweak to show offline users in big
orgs for channels of size <= 50.
2024-09-19 15:43:28 -07:00
adnan-td
eaaf26e182 buddy_list: Remove deactivated users from right sidebar.
Filter out inactive people from the buddy list in the right
sidebar.
2024-09-10 14:04:26 -07:00
Mateusz Mandera
a36f906d1a presence: Add history_limit_days param to the API.
This param allows clients to specify how much presence history they want
to fetch. Previously, the server always returned 14 days of history.
With the recent migration of the presence API to the much more efficient
system relying on incremental fetches via the last_update_id param added
in #29999, we can now afford to provide much more history to clients
that request it - as all that historical data will only be fetched once.

There are three endpoints involved:
- `/register` - this is the main useful endpoint for this, used by API
clients to fetch initial data and register an events queue. Clients can
pass the `presence_history_limit_days` param here.
- `/users/me/presence` - this endpoint is currently used by clients to
update their presence status and fetch incremental data, making the new
functionality not particularly useful here. However, we still add the
new `history_limit_days` param here, in case in the future clients
transition to using this also for the initial presence data fetch.
- `/` - used when opening the webapp. Naturally, params aren't passed
here, so the server just assumes a value from
`settings.PRESENCE_HISTORY_LIMIT_DAYS_FOR_WEB_APP` and returns
information about this default value in page_params.
2024-09-10 13:15:35 -07:00
Mateusz Mandera
3ded4c2a7d presence: Frontend implementation of the last_update_id API.
Note: This involves adding presence info of unknown users to the
presence data.
With some small tweaks, we can just add the info to the presence data
structures, just making sure the buddy list correctly skips those
entries and that we redraw the user in the case where the user creation
event arrives after the presence polling loop.
2024-06-07 13:57:40 -07:00
Aman Agrawal
b2dc6f4039 people: Split search terms inside the search function.
This helps other views calling this function to not do a separate
split of the terms.
2024-05-16 09:20:43 -07:00
Anders Kaseorg
507eb4913c tsconfig: Enable exactOptionalPropertyTypes.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-05-16 08:58:20 -07:00
Anders Kaseorg
4032f9c0cb people: Fix bogus filter_people_by_search_terms type.
It actually returned Map<number, true>.  Set<number> is more
efficient.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-05-03 15:39:55 -07:00
evykassirer
231c0087a4 compose fade users: Remove fade logic in favor of buddy list split.
This also removes buddy_list.get_items which were only used
for compose_fade logic.
2024-02-22 16:05:27 -08:00
evykassirer
231aa098cb buddy list: Create section in buddy list for users from narrow.
Fixes #21285.
2024-02-22 16:05:27 -08:00
Anders Kaseorg
b9e62c7af8 page_params: Split out state data for realm.
For spectators, the chunk of page_params that originates from
do_events_register isn’t assigned until ui_init.js.  That means the
TypeScript type of page_params is mostly a lie during module load
time: reading a parameter too early silently results in undefined
rather than the declared type, with unpredictable results later on.

We want to make such an early read into an immediate runtime error,
for both users and spectators consistently, and pave the way for
runtime validation of the page_params type.  As a second step, split
out the subset of fields that pertain to the entire realm.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-02-15 10:22:52 -08:00
evykassirer
01abd96127 buddy_data: Convert module to typescript. 2023-12-27 15:53:39 -08:00