user_groups: Do not show deactivated users in members list.

This commit adds code to now show deactivated users in the
members list in "#groups" UI and the user group popover.
This commit is contained in:
Sahil Batra
2023-12-07 09:11:48 +05:30
committed by Tim Abbott
parent 381670d2b6
commit a97cf5d107
4 changed files with 17 additions and 16 deletions

View File

@@ -187,9 +187,8 @@ export function handle_member_edit_event(group_id, user_ids) {
const group = user_groups.get_user_group_from_id(group_id);
// update members list if currently rendered.
const members = [...group.members];
if (is_editing_group(group_id)) {
user_group_edit_members.update_member_list_widget(group_id, members);
user_group_edit_members.update_member_list_widget(group);
if (user_ids.includes(people.my_current_user_id())) {
update_group_membership_button(group_id);
}

View File

@@ -36,9 +36,15 @@ function get_potential_members() {
return people.filter_all_users(is_potential_member);
}
export function update_member_list_widget(group_id, member_ids) {
assert(group_id === current_group_id, "Unexpected group rerendering members list");
const users = people.get_users_from_ids(member_ids);
function get_user_group_members(group) {
const member_ids = [...group.members];
const active_member_ids = member_ids.filter((user_id) => people.is_person_active(user_id));
return people.get_users_from_ids(active_member_ids);
}
export function update_member_list_widget(group) {
assert(group.id === current_group_id, "Unexpected group rerendering members list");
const users = get_user_group_members(group);
people.sort_but_pin_current_user_on_top(users);
member_list_widget.replace_list_data(users);
}
@@ -54,8 +60,7 @@ function format_member_list_elem(person) {
});
}
function make_list_widget({$parent_container, name, user_ids}) {
const users = people.get_users_from_ids(user_ids);
function make_list_widget({$parent_container, name, users}) {
people.sort_but_pin_current_user_on_top(users);
const $list_container = $parent_container.find(".member_table");
@@ -104,7 +109,7 @@ export function enable_member_management({group, $parent_container}) {
member_list_widget = make_list_widget({
$parent_container,
name: "user_group_members",
user_ids: [...group.members],
users: get_user_group_members(group),
});
}

View File

@@ -119,11 +119,10 @@ export function register_click_handlers() {
function fetch_group_members(member_ids) {
return member_ids
.map((m) => people.maybe_get_user_by_id(m))
.filter((m) => m !== undefined)
.filter((m) => m !== undefined && people.is_active_user_for_popover(m.user_id))
.map((p) => ({
...p,
user_circle_class: buddy_data.get_user_circle_class(p.user_id),
is_active: people.is_active_user_for_popover(p.user_id),
user_last_seen_time_status: buddy_data.user_last_seen_time_status(p.user_id),
}));
}

View File

@@ -10,13 +10,11 @@
<ul class="nav nav-list member-list" data-simplebar data-simplebar-auto-hide="false">
{{#each members}}
<li>
{{#if is_active }}
{{#if is_bot}}
<i class="zulip-icon zulip-icon-bot" aria-hidden="true"></i>
{{else}}
<span class="user_circle {{user_circle_class}} popover_user_presence" title="{{user_last_seen_time_status}}"></span>
{{/if}}
{{/if}}
<span>{{full_name}}</span>
</li>
{{/each}}