settings: Include ignored deactivated users in result banner.

This introduces the ignored deactivated user messages
in the channel and user group subscription banners.
Related:
https://chat.zulip.org/#narrow/channel/101-design/topic/New.20channel.2Fgroup.20UX.20changes/near/2215785

Fixes #34347.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
This commit is contained in:
apoorvapendse
2025-07-09 11:13:57 +05:30
committed by Tim Abbott
parent 3c26086c4b
commit 0908f0ac30
4 changed files with 75 additions and 34 deletions

View File

@@ -73,9 +73,11 @@ function get_sub(stream_id: number): StreamSubscription | undefined {
function generate_subscribe_success_messages(
subscribed_users: User[],
already_subscribed_users: User[],
ignored_deactivated_users: User[],
): {
subscribed_users_message: string;
already_subscribed_users_message: string;
ignored_deactivated_users_message: string;
} {
const subscribed_user_links = subscribed_users.map(
(user) =>
@@ -85,6 +87,10 @@ function generate_subscribe_success_messages(
(user) =>
`<a data-user-id="${user.user_id}" class="view_user_profile">${Handlebars.Utils.escapeExpression(user.full_name)}</a>`,
);
const ignored_deactivated_user_links = ignored_deactivated_users.map(
(user) =>
`<a data-user-id="${user.user_id}" class="view_user_profile">${Handlebars.Utils.escapeExpression(user.full_name)}</a>`,
);
const subscribed_users_message = util.format_array_as_list_with_conjunction(
subscribed_user_links,
@@ -94,9 +100,14 @@ function generate_subscribe_success_messages(
already_subscribed_user_links,
"long",
);
const ignored_deactivated_users_message = util.format_array_as_list_with_conjunction(
ignored_deactivated_user_links,
"long",
);
return {
subscribed_users_message,
already_subscribed_users_message,
ignored_deactivated_users_message,
};
}
@@ -121,8 +132,10 @@ function show_stream_subscription_request_success_result({
}): void {
const subscribed_users_count = subscribed_users.length;
const already_subscribed_users_count = already_subscribed_users.length;
const ignored_deactivated_users_count = ignored_deactivated_users.length;
const is_total_subscriber_more_than_five =
subscribed_users_count + already_subscribed_users_count > 5;
subscribed_users_count + already_subscribed_users_count + ignored_deactivated_users_count >
5;
const $stream_subscription_req_result_elem = $(
".stream_subscription_request_result",
@@ -133,6 +146,7 @@ function show_stream_subscription_request_success_result({
subscribe_success_messages = generate_subscribe_success_messages(
subscribed_users,
already_subscribed_users,
ignored_deactivated_users,
);
}
const html = render_stream_subscription_request_result({
@@ -143,6 +157,7 @@ function show_stream_subscription_request_success_result({
already_subscribed_users_count,
is_total_subscriber_more_than_five,
ignored_deactivated_users,
ignored_deactivated_users_count,
});
scroll_util.get_content_element($stream_subscription_req_result_elem).html(html);
}

View File

@@ -195,14 +195,22 @@ function generate_members_added_success_messages(
newly_added_subgroups: UserGroup[],
already_added_users: User[],
already_added_subgroups: UserGroup[],
ignored_deactivated_groups: UserGroup[],
ignored_deactivated_users: User[],
): {
newly_added_members_message: string;
already_added_members_message: string;
ignored_deactivated_users_message: string;
ignored_deactivated_groups_message: string;
} {
const new_user_links = newly_added_users.map((user) => generate_user_link(user));
const new_group_links = newly_added_subgroups.map((group) => generate_group_link(group));
const old_user_links = already_added_users.map((user) => generate_user_link(user));
const old_group_links = already_added_subgroups.map((group) => generate_group_link(group));
const ignored_group_links = ignored_deactivated_groups.map((group) =>
generate_group_link(group),
);
const ignored_user_links = ignored_deactivated_users.map((user) => generate_user_link(user));
const newly_added_members_message = util.format_array_as_list_with_conjunction(
[...new_user_links, ...new_group_links],
@@ -212,9 +220,19 @@ function generate_members_added_success_messages(
[...old_user_links, ...old_group_links],
"long",
);
const ignored_deactivated_users_message = util.format_array_as_list_with_conjunction(
ignored_user_links,
"long",
);
const ignored_deactivated_groups_message = util.format_array_as_list_with_conjunction(
ignored_group_links,
"long",
);
return {
newly_added_members_message,
already_added_members_message,
ignored_deactivated_users_message,
ignored_deactivated_groups_message,
};
}
@@ -247,16 +265,22 @@ function show_user_group_membership_request_success_result({
const newly_added_subgroups_count = newly_added_subgroups.length;
const already_added_user_count = already_added_users.length;
const already_added_subgroups_count = already_added_subgroups.length;
const ignored_deactivated_groups_count = ignored_deactivated_groups.length;
const ignored_deactivated_users_count = ignored_deactivated_users.length;
const total_member_count_exceeds_five =
newly_added_user_count +
newly_added_subgroups_count +
already_added_user_count +
already_added_subgroups_count >
already_added_subgroups_count +
ignored_deactivated_groups_count +
ignored_deactivated_users_count >
5;
const newly_added_member_count = newly_added_user_count + newly_added_subgroups_count;
const already_added_member_count = already_added_user_count + already_added_subgroups_count;
const ignored_deactivated_member_count =
ignored_deactivated_users_count + ignored_deactivated_groups_count;
let addition_success_messages;
if (!total_member_count_exceeds_five) {
addition_success_messages = generate_members_added_success_messages(
@@ -264,6 +288,8 @@ function show_user_group_membership_request_success_result({
newly_added_subgroups,
already_added_users,
already_added_subgroups,
ignored_deactivated_groups,
ignored_deactivated_users,
);
}
@@ -278,11 +304,10 @@ function show_user_group_membership_request_success_result({
newly_added_subgroups_count,
already_added_user_count,
already_added_subgroups_count,
already_added_users,
ignored_deactivated_users,
already_added_subgroups,
ignored_deactivated_groups,
total_member_count_exceeds_five,
ignored_deactivated_groups_count,
ignored_deactivated_users_count,
ignored_deactivated_member_count,
});
scroll_util.get_content_element($user_group_subscription_req_result_elem).html(html);
}

View File

@@ -10,7 +10,9 @@
<div class="banner-wrapper">
<div class="banner banner-success">
<span class="banner-label">
{{#if (eq subscribed_users_count 0)}}
{{!-- We want to show ignored deactivated users message even when there are
no new subscribers --}}
{{#if (and (eq subscribed_users_count 0) (eq ignored_deactivated_users_count 0))}}
{{t "All users were already subscribed."}}
{{else}}
{{#if (not is_total_subscriber_more_than_five) }}
@@ -20,6 +22,9 @@
{{#if already_subscribed_users}}
{{t "Already a subscriber:" }} {{{subscribe_success_messages.already_subscribed_users_message}}}.
{{/if}}
{{#if ignored_deactivated_users}}
{{t "Ignored deactivated users:" }} {{{subscribe_success_messages.ignored_deactivated_users_message}}}.
{{/if}}
{{else}}
{{#if subscribed_users}}
{{t "{subscribed_users_count, plural,
@@ -31,6 +36,12 @@
{{t "{already_subscribed_users_count, plural,
one {Already subscribed: {already_subscribed_users_count} user.}
other {Already subscribed: {already_subscribed_users_count} users.}
}"}}
{{/if}}
{{#if ignored_deactivated_users}}
{{t "{ignored_deactivated_users_count, plural,
one {Ignored deactivated: {ignored_deactivated_users_count} user.}
other {Ignored deactivated: {ignored_deactivated_users_count} users.}
}"}}
{{/if}}
{{/if}}
@@ -39,11 +50,3 @@
</div>
</div>
{{/if}}
{{#if ignored_deactivated_users}}
{{#each ignored_deactivated_users}}
{{#if @first}}
{{t "Ignored deactivated users:" }}
{{/if}}
<a data-user-id="{{user_id}}" class="view_user_profile">{{full_name}}</a>{{#unless @last}},{{else}}.{{/unless}}
{{/each}}
{{/if}}

View File

@@ -10,7 +10,7 @@
<div class="banner-wrapper">
<div class="banner banner-success">
<span class="banner-label">
{{#if (eq newly_added_member_count 0)}}
{{#if (and (eq newly_added_member_count 0) (eq ignored_deactivated_member_count 0))}}
{{#if (and already_added_user_count already_added_subgroups_count)}}
{{t "All users and groups were already members."}}
{{else if already_added_user_count}}
@@ -26,6 +26,12 @@
{{#if addition_success_messages.already_added_members_message}}
{{t "Already a member:"}} {{{addition_success_messages.already_added_members_message}}}.
{{/if}}
{{#if addition_success_messages.ignored_deactivated_users_message}}
{{t "Ignored deactivated users:"}} {{{addition_success_messages.ignored_deactivated_users_message}}}.
{{/if}}
{{#if addition_success_messages.ignored_deactivated_groups_message}}
{{t "Ignored deactivated groups:"}} {{{addition_success_messages.ignored_deactivated_groups_message}}}.
{{/if}}
{{else}}
{{#if newly_added_member_count}}
{{t "Added:"}}
@@ -47,27 +53,19 @@
{{t "{already_added_subgroups_count, plural, one {# group.} other {# groups.}}"}}
{{/if}}
{{/if}}
{{#if ignored_deactivated_member_count}}
{{t "Ignored deactivated:"}}
{{#if (and ignored_deactivated_users_count ignored_deactivated_groups_count)}}
{{t "{ignored_deactivated_users_count, plural, one {# user} other {# users}} and {ignored_deactivated_groups_count, plural, one {# group.} other {# groups.}}"}}
{{else if ignored_deactivated_users_count}}
{{t "{ignored_deactivated_users_count, plural, one {# user.} other {# users.}}"}}
{{else if ignored_deactivated_groups_count}}
{{t "{ignored_deactivated_groups_count, plural, one {# group.} other {# groups.}}"}}
{{/if}}
{{/if}}
{{/if}}
{{/if}}
</span>
</div>
</div>
{{/if}}
{{#if ignored_deactivated_users}}
{{#each ignored_deactivated_users}}
{{#if @first}}
{{t "Ignored deactivated users:" }}
{{/if}}
<a data-user-id="{{user_id}}" class="view_user_profile">{{full_name}}</a>{{#unless @last}},{{else}}.{{/unless}}
{{/each}}
<br />
{{/if}}
{{#if ignored_deactivated_groups}}
{{#each ignored_deactivated_groups}}
{{#if @first}}
{{t "Ignored deactivated groups:" }}
{{/if}}
<a data-user-group-id="{{id}}" class="view_user_group">{{name}}</a>{{#unless @last}},{{else}}.{{/unless}}
{{/each}}
{{/if}}